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 Stunden