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 mysqldump
hanya untuk "sejumlah kecil data", yang mereka definisikan kurang dari 1GB. Basis data yang ingin saya migrasi lebih dari 20GB.
Satu hal yang menyenangkan tentang mysqldump
itu, adalah memiliki --single-transaction
bendera, 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 mysqlimport
untuk mengimpornya ke RDS. Namun, cara terbaik yang saya tahu bagaimana melakukan ini adalah melalui SELECT ... INTO OUTFILE
perintah, 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 OUTFILE
perintah, 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?
--opt
default, yang mempercepat. Saya pikir kami butuh 6 jam untuk memuat ulang ke server yang kuat, tetapi transisi adalah transisi ... :)