dgi*_*gig 5 mysql replication binlog percona-toolkit pt-table-checksum
我使用的设置是主从复制配置中的 MySQL 5.5,但我们必须使用“混合”复制(基于语句和行),因为我们使用需要它的应用程序,并且它恰好在我们的同一台上服务器。
我们最近停止了复制,我想确保我们已正确恢复。
我下载并安装了 Percona Toolkit,但在这种情况下我似乎无法使用 pt-table-checksum,特别是因为基于行的复制:
2.27.5 限制使用基于行的复制 pt-table-checksum 的副本需要基于语句的复制,并且它在主服务器上设置 binlog_format=STATEMENT,但由于 MySQL 限制,副本不支持此更改。因此,校验和不会使用基于行的复制来复制任何副本,这些副本是进一步副本的主副本。该工具会自动检查所有服务器上的 binlog_format。请参阅 --[no]check-binlog-format 。(错误 899415)
是否有其他选项可以对基于行的复制表进行校验和?
我在 Percona 论坛上发现了这个,它说它可以工作,但我不能让它改变我的 cnf 文件,因为它声称它可以。当我尝试运行它时,它还会发出以下警告:
副本 mysql-b.example.com 具有 binlog_format MIXED,这可能会导致 pt-table-checksum 中断复制。请阅读该工具文档的限制部分中的“使用基于行的复制的副本”。如果您了解风险,请指定 --no-check-binlog-format 以禁用此检查。
我不明白为什么应用程序需要MIXED
复制格式,因为MIXED
等于STATEMENT
基于 -,但ROW
在执行“不安全”查询时更改为格式。因此,MIXED
兼容的应用程序应该与STATEMENT
和兼容ROW
。
正如您在此处看到的,如果检测到的格式(服务器端)是ROW
或MIXED
,它会尝试仅针对会话动态更改它。就您而言,它抱怨这里的一名奴隶(它需要SUPER
特权)。
假设您没有 3 节点链式复制,或者您使用从站的 binlog 进行任何操作,则可以忽略带有 的警告--no-check-binlog-format
。无需更改 my.cnf。问题是,仅会话更改语句会影响您的“需要 MIXED 的应用程序”吗?pt-table-checksum
需要自己的计算作为语句完成,因为哈希必须在主站和从站上独立且同步地计算(不是及时的,而是与其他查询相关)。
归档时间: |
|
查看次数: |
3666 次 |
最近记录: |