![当 pt-online-schema-change、pt-table-sync、xtrabackup 不起作用时,修复不同步的 mysql 从属的最佳方法是什么?](https://linux22.com/image/693221/%E5%BD%93%20pt-online-schema-change%E3%80%81pt-table-sync%E3%80%81xtrabackup%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E6%97%B6%EF%BC%8C%E4%BF%AE%E5%A4%8D%E4%B8%8D%E5%90%8C%E6%AD%A5%E7%9A%84%20mysql%20%E4%BB%8E%E5%B1%9E%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我们都知道,mysql master 向slave同步数据有好几种方法,看了很多博客讲这个问题,最后总会提到两种常用的工具:
- pt-在线-架构更改
- pt-表同步
- 备份
就我而言,我无法使用它们,因为:
- pt-online-schema-change(仅适用于没有任何触发器的表)
- pt-table-sync(仅适用于 master 的 binglog 日志格式不是排)
- xtrabackup(仅适用于整个服务器,我需要同步单个数据库)
因此,如果我不使用这些工具的理由没有错误的话,我正在寻找最佳解决方案,在将所有数据从主服务器同步到从服务器时,减少或消除停机时间。
也许简单mysqldump
就是最好的解决方案,也许不是。
答案1
pt-table-sync(仅当主服务器的 binglog 日志格式不是 ROW 时才有效)
不完全正确。如果 pt-table-sync 的格式与 STATEMENT 不同,它将在其会话中设置 binlog 格式
xtrabackup(仅适用于整个服务器,我需要同步单个数据库)
如果XtraBackupinnodb_file_per_table
可以ON
备份/恢复单个表/数据库