我在 MySQL 5.1.52 上运行传统的主/从复制,我的主服务器设置为基于语句的复制。从属上的一些表缺少行(不同的行数),这些表仅使用“加载数据infile ...”在主上插入,具有自动递增的Pks。奇怪的是,从站上丢失的行在行应该在的 PK 值中有间隙。从站被标记为只读,因此没有意外删除。
我在 MySQL 5.1.52 上运行传统的主/从复制,我的主服务器设置为基于语句的复制。从属上的一些表缺少行(不同的行数),这些表仅使用“加载数据infile ...”在主上插入,具有自动递增的Pks。奇怪的是,从站上丢失的行在行应该在的 PK 值中有间隙。从站被标记为只读,因此没有意外删除。
传统的方法是使用pt-table-checksum和pt-table-sync
我喜欢做一些不同的事情。我立即
pt-table-sync
使用--sync-to-master --print
选项运行。这是 --sync-to-master 选项
这是 --print 选项
这个,如果你做这样的事情:
该文件
/root/SQLChanges.sql
将包含您需要在从站上执行的所有更改。一旦您对其内容感到满意,只需在从站上执行脚本即可。关于在复制中使用 LOAD DATA INFILE,@DTest 回答了这个问题。我进一步解释了 mysql 如何复制 LOAD DATA INFILE。