Saya sudah melihat sedikit ini. Saya menyadari ada pertanyaan serupa tentang Stack Overflow, dan Amazon sendiri memiliki dokumen yang membantu memberi saran di sini:
http://aws.amazon.com/articles/2933
Kekhawatiran saya adalah sebagai berikut:
Amazon merekomendasikan penggunaan mysqldumphanya untuk "sejumlah kecil data", yang mereka definisikan kurang dari 1GB. Basis data yang ingin saya migrasi lebih dari 20GB.
Satu hal yang menyenangkan tentang mysqldumpitu, adalah memiliki --single-transactionbendera, yang memungkinkan saya untuk memastikan status DB yang konsisten dengan satu titik waktu.
Untuk jumlah data yang lebih besar, rekomendasi Amazon adalah mengekspor database ke file datar (mis., CSV) dan kemudian menggunakannya mysqlimportuntuk mengimpornya ke RDS. Namun, cara terbaik yang saya tahu bagaimana melakukan ini adalah melalui SELECT ... INTO OUTFILEperintah, yang hanya mengoperasikan satu tabel pada satu waktu. Kelemahan dari ini, tentu saja, adalah tidak memberikan jaminan konsistensi --single-transaction.
Saya kira saya bisa memastikan konsistensi dengan menurunkan seluruh DB sementara; tapi saya ingin menghindari itu jika memungkinkan.
- Apa cara terbaik untuk mendapatkan basis data besar saya (> 20GB) ke dalam file datar sehingga saya dapat menggunakannya
mysqlimport? - Jika itu memang
SELECT ... INTO OUTFILEperintah, bagaimana cara mengekspor semua tabel dalam database (lebih disukai tanpa harus melakukan satu per satu)? - Apakah ada cara yang baik untuk memastikan konsistensi selama ini?
--optdefault, yang mempercepat. Saya pikir kami butuh 6 jam untuk memuat ulang ke server yang kuat, tetapi transisi adalah transisi ... :)