Ich habe das schon ein bisschen untersucht. Mir ist klar, dass es ähnliche Fragen zu Stack Overflow gibt, und Amazon selbst hat hier ein hilfreiches Dokument mit Ratschlägen:
http://aws.amazon.com/articles/2933
Meine Bedenken sind folgende:
Amazon empfiehlt, mysqldump
nur "kleine Datenmengen" zu verwenden, die als weniger als 1 GB definiert sind. Die Datenbank, die ich migrieren möchte, ist über 20 GB groß.
Eine nette Sache mysqldump
ist jedoch, dass es das --single-transaction
Flag hat, mit dem ich einen DB-Status sicherstellen kann, der mit einem einzelnen Zeitpunkt übereinstimmt.
Für größere Datenmengen empfiehlt Amazon, die Datenbank in flache (z. B. CSV) Dateien zu exportieren und diese dann mysqlimport
in RDS zu importieren. Der beste Weg , ich weiß , wie zu tun , dies ist jedoch durch den SELECT ... INTO OUTFILE
Befehl, der eine Tabelle nur zu einem Zeitpunkt arbeitet. Der Nachteil dabei ist natürlich, dass es nicht die Konsistenzgarantie von bietet --single-transaction
.
Ich nehme an, ich könnte die Konsistenz sicherstellen, indem ich die gesamte Datenbank vorübergehend herunterfahre. aber ich würde das gerne vermeiden, wenn es überhaupt möglich ist.
- Was ist der beste Weg, um meine große Datenbank (> 20 GB) in flache Dateien umzuwandeln, damit ich sie dann verwenden kann
mysqlimport
? - Wenn es sich tatsächlich um den
SELECT ... INTO OUTFILE
Befehl handelt, wie exportiere ich alle Tabellen in der Datenbank (vorzugsweise ohne jeweils eine ausführen zu müssen)? - Gibt es eine gute Möglichkeit, die Konsistenz zu gewährleisten?
--opt
aber Standard, was die Dinge beschleunigt. Ich denke, wir haben 6 StundenAntworten:
Ich habe erst kürzlich viel Zeit damit verbracht, einen 15-GB-Übergang zu RDS herauszufinden. Am Ende fand ich ein Skript in einem der Amazon-Foren, das ich an meine eigenen Zwecke angepasst habe und das anscheinend gut funktioniert. Ich bin nicht sicher, ob Sie eine einzelne Transaktion durchführen können, aber der Speicherauszug selbst ist im Vergleich zur tatsächlichen Übertragung sehr schnell. Ich glaube, 15 GB haben nur 12 Minuten für den Speicherauszug benötigt. Selbst wenn es keine einzelne Transaktionsoption gibt, haben Sie wahrscheinlich keine sehr lange Zeitspanne, bis Inkonsistenzen auftreten. Ich bin mir nicht sicher, ob das für Sie gut genug ist, aber ich fand die Lösung viel eleganter als die Flatfile-Methode.
quelle