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, mysqldumpnur "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 mysqldumpist jedoch, dass es das --single-transactionFlag 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 mysqlimportin RDS zu importieren. Der beste Weg , ich weiß , wie zu tun , dies ist jedoch durch den SELECT ... INTO OUTFILEBefehl, 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 OUTFILEBefehl 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?
--optaber Standard, was die Dinge beschleunigt. Ich denke, wir haben 6 Stunden