使用 mysqlbinlog 实用程序时 MySQL 数据不一致

使用 mysqlbinlog 实用程序时 MySQL 数据不一致

我在 mysql 复制中遇到了问题。

我有一个 mysql 原始数据快照,我的主机有 2 个二进制日志(binlog.01、binlog.02 - 在创建快照后开始记录)

我想要做的是将原始数据快照复制到从属主机,使用 mysqlbinlog 实用程序执行 binlog.01,然后在将主主机更改为主主机时指向起始位置 1 处的 binlog.02。

当从属服务器完全处理两个二进制日志时,我使用 mk-table-checksum 来检查复制,并收到十几条不一致的消息。

但是,使用另一种方法,我尝试再次将原始数据快照复制到从属主机,将主主机更改为指向起始位置 1 的 binlog.01 的主主机 - 无需处理任何 mysqlbinlog 命令 - 我意识到使用 mk-table-checksum 时不会再收到任何不一致的消息。

我想知道为什么使用 mysqlbinlog 时数据库不一致。如能提供任何帮助我将不胜感激。

答案1

看起来你的做法是错误的。你怎么知道 是binlog.01binlog.02拍摄快照后立即创建的?

正确的做法是:

  • 停止 master 或flush tables with read lock;
  • 确定当前 binlog 文件及其位置show master status;
  • 拍摄数据快照
  • 将快照复制到从属
  • 使用主服务器的复制坐标配置从服务器 change master to
  • 启动从属线程

相关内容