kfmfe04 Asked: 2011-12-16 16:42:44 +0800 CST2011-12-16 16:42:44 +0800 CST 2011-12-16 16:42:44 +0800 CST 在 MySQL Master/Slave 复制中,如果我写入 Slave 会发生什么? 772 几个问题 Slave 条目是否会一直保留,直到 Master 上的表有可能影响 Slave 的插入/更新/删除? 如果没有,我如何确保从站与主站同步(通过删除从站条目或手动将该条目复制到主站)? 最重要的是,如何检测表不同步? mysql replication 1 个回答 Voted Best Answer RolandoMySQLDBA 2011-12-17T04:25:33+08:002011-12-17T04:25:33+08:00 只要您不直接在 Slave 上执行任何 INSERT/UPDATE/DELETE 语句,您的 Slave 就应该没问题。否则,如果您在从站上的 mydb.mytable 中插入新行,MySQL 复制可能会中断,并且从站稍后通过复制检测到具有相同主键的 mydb.mytable 行的插入。这会产生错误 1062(重复密钥)。 您可以在不破坏 MySQL 复制的情况下写入 Slave 的唯一方法是: Master 有数据库 db1,db2,db3 从站正在从主站复制数据库 db1、db2、db3 你CREATE DATABASE db4;在奴隶上奔跑 您只对 Slave 上的 db4 执行 INSERTs/UPDATEs/DELETEs 您不会仅对 Slave 上的 db1、db2、db3 执行 INSERT/UPDATE/DELETE 要在不下载任何工具的情况下检测 Master 和 Slave 不同步,请选择任何表并针对 Master 上的表和同一表的 Slave 副本运行CHECKSUM TABLE 。 例子 如果你有一个 table mydb.mytable,对它运行命令: mysql> CHECKSUM TABLE mydb.mytable; 如果返回的值不同,则说明某些内容不同步。 如果你想批量检查一堆表,你可以下载 Percona 的 MAATKIT。您将需要两个特定的工具(Percona 也有 Percona Toolkit,他们自己从 MAATKIT 分叉出来,现在正在得到更多的推广) mk 表校验和 mk 表同步 或者 pt 表校验和 pt-表同步 pt-table-checksum将对 Master 和 Slave 上的所有表执行 CHECKSUM TABLE。您可以将其配置为仅针对特定数据库执行所有数据库。 pt-table-sync可以在 Slave 上针对任何表运行。使用 --print 和 --sync-to-master 选项,您可以看到需要在 Slave 上执行哪些 SQL 语句才能使其与 Master 完美匹配。此工具不适用于缺少 PRIMARY KEY 或 UNIQUE KEY 的表。 我已经使用 MAATKIT 多年了。我仍然。我还没有尝试过 Percona Toolkit,但我确信它应该与 MAATKIT 具有相同的质量。
只要您不直接在 Slave 上执行任何 INSERT/UPDATE/DELETE 语句,您的 Slave 就应该没问题。否则,如果您在从站上的 mydb.mytable 中插入新行,MySQL 复制可能会中断,并且从站稍后通过复制检测到具有相同主键的 mydb.mytable 行的插入。这会产生错误 1062(重复密钥)。
您可以在不破坏 MySQL 复制的情况下写入 Slave 的唯一方法是:
CREATE DATABASE db4;
在奴隶上奔跑要在不下载任何工具的情况下检测 Master 和 Slave 不同步,请选择任何表并针对 Master 上的表和同一表的 Slave 副本运行CHECKSUM TABLE 。
例子
如果你有一个 table
mydb.mytable
,对它运行命令:如果返回的值不同,则说明某些内容不同步。
如果你想批量检查一堆表,你可以下载 Percona 的 MAATKIT。您将需要两个特定的工具(Percona 也有 Percona Toolkit,他们自己从 MAATKIT 分叉出来,现在正在得到更多的推广)
或者
pt-table-checksum
将对 Master 和 Slave 上的所有表执行 CHECKSUM TABLE。您可以将其配置为仅针对特定数据库执行所有数据库。pt-table-sync
可以在 Slave 上针对任何表运行。使用 --print 和 --sync-to-master 选项,您可以看到需要在 Slave 上执行哪些 SQL 语句才能使其与 Master 完美匹配。此工具不适用于缺少 PRIMARY KEY 或 UNIQUE KEY 的表。我已经使用 MAATKIT 多年了。我仍然。我还没有尝试过 Percona Toolkit,但我确信它应该与 MAATKIT 具有相同的质量。