MySQL数据库快速迁移方法
如果要保证数据的完整性, 最好的做法就是停服, 不在向数据库中写入数据了, 全备然后在新的DB上恢复。 但是这样的话大量的数据可能会消耗几个小时的时间来备份和恢复数据, 停止几个小时的时间会让人觉得崩溃! 所以比较好的方案是提前做一个全备, 并且新开始一个二进制日志, 然后在迁移的时候把二进制日志转移过去, 在全备的基础上做增量。
迁移第一步: 先将DB做全备, 并转移大部分数据
很幸运的是 mysqldump 提供了这样的功能!
mysqldump -F --lock-tables -u root -p db > /tmp/mysql_full_bak.sql
-F 参数的目的是启用一个新的二进制日志文件, 这样的话在第二步的时候就可以对全备之后的二进制日志进行增量恢复了
--lock-tables 这个很重要, 在备份的过程中锁表, 保证数据的完整性
-u 用户名 - p 要输入密码 db 要备份的数据库
备份完了之后就会开启一个新的二进制日志
迁移第二部: 将增量的数据转移到新机房
mysqlbinlog ./mysql-bin.000016 > mysql -u root -p db