我已经研究了一下。我意识到在Stack Overflow上也有类似的问题,Amazon本身也提供了一个有用的文档,在此提供了建议:
http://aws.amazon.com/articles/2933
我的担忧如下:
亚马逊建议mysqldump
仅用于“少量数据”,它们定义为小于1GB。我打算迁移的数据库超过20GB。
mysqldump
但是,有一件很有趣的事,就是它具有--single-transaction
标志,这使我可以确保数据库状态与单个时间点一致。
对于大量数据,Amazon的建议是将数据库导出到平面(例如CSV)文件中,然后用于mysqlimport
将其导入RDS。但是,我知道如何执行此操作的最好方法是通过SELECT ... INTO OUTFILE
命令,该命令一次只操作一个表。当然,这样做的缺点是它不提供的一致性保证--single-transaction
。
我想我可以通过暂时关闭整个数据库来确保一致性。但我想尽可能避免这种情况。
- 将大型(> 20GB)大数据库转换为平面文件以便可以使用的最佳方法是什么
mysqlimport
? - 如果确实是
SELECT ... INTO OUTFILE
命令,那么如何导出数据库中的所有表(最好不必一次执行一个表)? - 有什么好的方法可以确保所有这些方面的一致性?
1
这可能更适合ServerFault。投票决定要迁移
您是否尝试过-只是想知道?前几天,我刚刚使用mysqldump处理了一个40G数据库-花费一些时间。但是
—
gahooa 2012年
--opt
是默认设置,它可以加快处理速度。我认为我们花了6个小时将其重新加载到强大的服务器上,但是转换是转换... :)