mysqlrplsync 对复制同步进行检查,检查主从或从从之间的数据是否一致,并报告丢失的对象以及数据。
可以对活动的复制拓扑进行操作,应用同步进程进行数据检查。对不活动的复制也可以检查但是同步进程会被跳过。在这种情况下,需要手动进行同步。
必需提供链接服务器的参数。主需要使用–master选项,从需要使用–slaves选项,仅仅比较从,就只需–slaves选项。
该工具还提供了一个自动发现从的功能,需要使用–discover-slaves-login 和 –master 选项。为了使用这一功能,在启动从时,必需使用–report-host 和 –report-port 选项来指定正确的主机名和端口号。如果没有使用这两个参数或报告不正确的信息,从可能不被发现,也就不会同步校验了。不可连接从发现从功能将忽略。
默认情况下,所有的数据都要比较的。要检查特定的数据库或表,使用全名称列出每个元素。还可以使用–exclude选项排除某些数据库或表。
该工具也提供了一些重要的功能,允许用户针对自己的系统调整一致性检查的执行。如用户希望减少执行的同步进程。使用–rpl-timeout 选项定义每个从同步的最大时间。更具体的说,为了比较数据让从尽可能的赶上主。在这个等待中,从状态根据预定的时间间隔周期性的轮询。可以使用–interval选项调整此轮询间隔以验证是否从是否同步。校验查询用来比较服务器之间每个表的数据。如果校验查询执行超过了预定的时间,该步骤将被跳过,避免给系统带来不良的影响如果执行耗时长。可以使用–checksum-timeout 选项来指定校验超时。
如果要查看更多的其他信息可以使用–verbose选项。
该工具是专门为支持全局事务标识符(GTIDs)而设计的,gtid_mode=ON。服务器GTID被禁用将会跳过。更多信息可以查看全局事务标识符复制。
该工具考虑到复制过滤规则来跳过过滤的数据库和表的检查。然而,使用复制过滤仍然可能导致数据一致性的问题,取决于语句的评估。更多信息可以查看下如何评估服务器的复制过滤规则。