MySQL管理工具MySQL Utilities — mysqlrplsync(46)

  • A+
所属分类:MySQL

mysqlrplsync 对复制同步进行检查,检查主从或从从之间的数据是否一致,并报告丢失的对象以及数据。

可以对活动的复制拓扑进行操作,应用同步进程进行数据检查。对不活动的复制也可以检查但是同步进程会被跳过。在这种情况下,需要手动进行同步。

必需提供链接服务器的参数。主需要使用--master选项,从需要使用--slaves选项,仅仅比较从,就只需--slaves选项。

该工具还提供了一个自动发现从的功能,需要使用--discover-slaves-login 和 --master 选项。为了使用这一功能,在启动从时,必需使用 --report-host 和 --report-port 选项来指定正确的主机名和端口号。如果没有使用这两个参数或报告不正确的信息,从可能不被发现,也就不会同步校验了。不可连接从发现从功能将忽略。

默认情况下,所有的数据都要比较的。要检查特定的数据库或表,使用全名称列出每个元素。还可以使用--exclude选项排除某些数据库或表。

该工具也提供了一些重要的功能,允许用户针对自己的系统调整一致性检查的执行。如用户希望减少执行的同步进程。使用--rpl-timeout 选项定义每个从同步的最大时间。更具体的说,为了比较数据让从尽可能的赶上主。在这个等待中,从状态根据预定的时间间隔周期性的轮询。可以使用--interval选项调整此轮询间隔以验证是否从是否同步。校验查询用来比较服务器之间每个表的数据。如果校验查询执行超过了预定的时间,该步骤将被跳过,避免给系统带来不良的影响如果执行耗时长。可以使用 --checksum-timeout  选项来指定校验超时。

如果要查看更多的其他信息可以使用--verbose选项。

该工具是专门为支持全局事务标识符(GTIDs)而设计的, gtid_mode=ON。服务器GTID被禁用将会跳过。更多信息可以查看全局事务标识符复制

该工具考虑到复制过滤规则来跳过过滤的数据库和表的检查。然而,使用复制过滤仍然可能导致数据一致性的问题,取决于语句的评估。更多信息可以查看下如何评估服务器的复制过滤规则

选项

注意

使用校验表对每个表进行数据的一致性检查。如果计算出的校验和不同,则表示该表不同步。然而,由于校验操作并不是完全不冲突的,两个不同的表可以产生一个相同的校验和,不过概率是非常小的。

IP地址和主机名混合使用不推荐。涉及到反向解析的问题。

同样也要避免混合使用 '127.0.0.1' 和'localhost',所有的'127.0.0.1'将被内部转换成localhost。

MySQL客户端工具的路径需要包含在PATH环境变量中,以便使用login-paths验证机制。允许使用my_print_defaults 来从登陆配置文件(.mylogin.cnf)读取login-path值。

限制

该工具是专为支持全局事务标识符(GTIDs并gtid_mode= ON设计的。由于一些在同步过程中发生的已知问题,只有MySQL Server 5.6.14或更高的版本支持。

由于服务器端的已知问题,replicate_do_db, replicate_ignore_db, replicate_wild_do_table 复制过滤项不支持。如果检测到不支持这些复制项,该工具将发出错误信息并退出。在工具启动前将执行这些检测的。

实例

检测明确指定的活动的主从数据一致性,如下所示:

在活动的复制系统使用从发现检测数据一致性,如下所示:

在从从之间检测数据的一致性,如下所示:

对特定的数据库和表进行数据一致性检查,如下所示:

排除某些特定的数据库和表,进行数据一致性检查,如下所示:

下面是数据不一致的复制检查,如下所示:

对有过滤的复制进行检查,如下所示:

权限

对于主需要有锁定表、进行校验和获取主状态信息的权限。具体来说,需要有SUPER 或 REPLICATION CLIENT, LOCK TABLES 和 SELECT 权限。

对于从需要启动/停止从、进行校验和获取从状态信息的权限。具体来说,需要有SUPER 和 SELECT 权限。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: