私はすでにこれを少し調べました。Stack Overflowにも同様の質問があることに気づき、Amazon自身もここに助言を提供する有用なドキュメントを持っています。
http://aws.amazon.com/articles/2933
私の懸念は次のとおりです。
Amazonではmysqldump
、「1 GB未満」と定義されている「少量のデータ」のみに使用することを推奨しています。移行しようとしているデータベースが20GBを超えています。
mysqldump
ただし、の良い点の1つは、--single-transaction
フラグがあることです。これにより、特定の時点と一貫したDB状態を確保できます。
大量のデータの場合、Amazonの推奨は、データベースをフラット(CSVなど)ファイルにエクスポートし、それを使用mysqlimport
してそれらをRDSにインポートすることです。ただし、これを行う方法を知る最良の方法は、SELECT ... INTO OUTFILE
一度に1つのテーブルのみを操作するコマンドを使用することです。もちろん、これの欠点は、の一貫性が保証されないことです--single-transaction
。
DB全体を一時的に停止することで一貫性を確保できると思います。でも、なるべく避けたいです。
- 大容量(> 20GB)データベースをフラットファイルにして使用できるようにする最良の方法は何
mysqlimport
ですか? - それが実際に
SELECT ... INTO OUTFILE
コマンドである場合、データベース内のすべてのテーブルをエクスポートするにはどうすればよいですか(一度に1つずつ実行する必要がないことが望ましい)。 - このすべてを通して一貫性を確保するための良い方法はありますか?
--opt
、これがデフォルトです。強力なサーバーにリロードするのに6時間かかったと思いますが、トランジションはトランジションです... :)