在运维的工作中,如何做主从数据一致性校验?
在运维工作中,确保 MySQL 主从数据一致性非常重要。以下是详细的主从数据一致性校验方法,结合了搜索结果中的信息。
1. 配置主从数据库
在开始校验之前,确保主从数据库已经正确配置。
-
主库配置:
- 开启二进制日志:
log_bin。 - 创建用于从库同步的用户:
CREATE USER。 - 授予从库用户必要的权限:
GRANT。
- 开启二进制日志:
-
从库配置:
- 配置从库连接主库信息:
CHANGE MASTER TO。 - 启动从库与主库的同步:
START SLAVE。
- 配置从库连接主库信息:
2. 使用 pt-table-checksum 工具
pt-table-checksum 是 Percona Toolkit 中的一个工具,用于检查主从复制的一致性。
-
安装工具:
-
下载并安装 Percona Toolkit:
wget http://www.percona.com/get/percona-toolkit.tar.gz tar zxf percona-toolkit-2.2.13.tar.gz cd percona-toolkit-2.2.13 perl Makefile.PL make && make install -
安装所需依赖:
yum install perl perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Digest perl-Digest-MD5 perl-IO-Compress perl-IO-Socket-IP perl-IO-Socket-SSL perl-Mozilla-CA perl-Net-Daemon perl-Net-LibIDN perl-Net-SSLeay
-
-
授权:
-
在主库上授权:
GRANT CREATE, INSERT, SELECT, DELETE, UPDATE, LOCK TABLES, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'root'@'从库IP' IDENTIFIED BY '密码'; FLUSH PRIVILEGES; -
在从库上授权:
GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'root'@'主库IP' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;
-
-
执行校验:
-
使用
pt-table-checksum检查主从数据一致性:pt-table-checksum --nocheck-binlog-format --nocheck-replication-filters --replicate=pt.checksums --databases=数据库名 -u用户名 -p密码 -h主库IP -P端口 -
参数说明:
--nocheck-binlog-format:不检查复制的 binlog 模式。--nocheck-replication-filters:不检查复制过滤器。--replicate=pt.checksums:将校验信息写入指定表。--databases=数据库名:指定需要检查的数据库。-u用户名、-p密码、-h主库IP、-P端口:连接主库的参数。
-
-
查看结果:
-
如果主从数据不一致,
DIFFS字段会显示为 1。 -
查看从库的
checksums表,了解具体的不一致情况:SELECT * FROM checksums;
-
3. 使用 pt-table-sync 工具修复数据
如果发现主从数据不一致,可以使用 pt-table-sync 工具修复。
-
执行修复:
-
使用
pt-table-sync同步数据:pt-table-sync --replicate=pt.checksums h=主库IP,u=用户名,p=密码 h=从库IP,u=用户名,p=密码 --execute -
参数说明:
--replicate=pt.checksums:指定通过pt-table-checksum得到的表。h=主库IP、u=用户名、p=密码:主库的连接信息。h=从库IP、u=用户名、p=密码:从库的连接信息。--execute:执行修复命令。
-
4. 注意事项
- 备份数据:在进行修复之前,建议备份相关数据,以防万一。
- 检查表结构:在修复一致性之前,确保主从库的表结构一致。
- 权限要求:使用
pt-table-sync需要一定的权限,如SELECT、PROCESS、SUPER、REPLICATION SLAVE等。
综上所述,通过以上方法,可以有效地校验 MySQL 主从数据的一致性,并在发现不一致时进行修复,确保系统的稳定性和数据的可靠性。

浙公网安备 33010602011771号