我们都知道,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
备份/恢复单个表/数据库