我有一份200GB / 400M行的mysql/innodb数据库,这已经远远超出了合理范围,我发现其中一个令人惊讶的问题是还原备份。mysqldump生成了巨大的sql文件,将其导入到新数据库中需要大约一周的时间(尝试通过更大/更小的事务、在导入期间关闭键、网络压缩等方法来加快速度,但都失败了,myisam导入似乎快2倍,但就没有事务)。更糟糕的是,如果在一周的时间内传输>200GB的网络连接出现故障,则无法以任何非平凡的方式继续进行sql导入过程。如何处理这个问题呢?目前,如果我注意到连接断开,我会手动尝试通过检查最后导入表的最高主键来确定何时结束,然后使用perl脚本执行以下操作:
这真的不是最好的选择,那么什么才是最佳方案呢?
perl -nle 'BEGIN{open F, "prelude.txt"; @a=<F>; print @a; close F;}; print if $x; $x++ if /INSERT.*last-table-name.*highest-primary-key/'
这真的不是最好的选择,那么什么才是最佳方案呢?