MySQL 复制:不要将失败的查询传播到从属服务器

MySQL 复制:不要将失败的查询传播到从属服务器

我有一个简单的 MySQL 复制设置,包括一个主服务器和两个从服务器。偶尔,主服务器上执行的查询会由于重复的唯一键或其他原因而失败。我看到的是,失败的查询被复制到从服务器,这也会导致那里出现错误。每次都要去修复这个问题,这很烦人,也很乏味,因为每次出现错误查询时复制都会停止。

在我看来,如果查询在主服务器上失败,那么 MySQL 就不应该费心将其传播到从服务器上。MySQL 可以这样配置吗?如何配置?我尝试过谷歌搜索并浏览 MySQL 文档,但没有找到。

答案1

MySQL 复制通过 binlog 进行。只有成功的事务才会写入 binlog,因此如果主服务器上的查询失败,则不会出现在 binlog 中。这意味着此类查询不会出现在副本服务器上。如果您遇到错误,例如由于没有更新列而导致从服务器 1 上的复制停止(等等),则意味着您的主服务器和从服务器不同。您应该安装 percona-toolkit,并使用 pt-table-checksum 检查您的表。

相关内容