mysql 表 checksum_利用 mk-table-checksum 监测 MySQL主从数据一致性操作记录

本文介绍了如何使用Maatkit工具中的mk-table-checksum和mk-table-sync进行MySQL主从数据一致性检查和修复。详细步骤包括Maatkit的安装、创建具有相应权限的账号、数据一致性检查以及在发现不一致时的数据修复操作。提醒注意,该工具已不再维护,推荐使用Percona Toolkit。
摘要由CSDN通过智能技术生成

前面已经提到了mysql主从环境下数据一致性检查:mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

今天这里再介绍另一种Mysql数据一致性自动检测工具:Maatkit。(不过Maatkit工具现在已经不维护了,推荐还是使用percona-toolkit工具吧!)

Maatkit是一个开源的工具包,为mySQL日常管理提供了帮助,它包含很多工具,这里主要说下面两个:

1)mk-table-checksum                     用来检测master和slave上的表结构和数据是否一致的;

2)mk-table-sync                             在主从数据不一致时,用来修复数据的;先主后从有效保证表一致的工具,不必重载从表而能够保证一致。

上面两个perl脚本在运行时都会锁表,表的大小取决于执行的快慢,勿在高峰期间运行,可选择凌晨。

-----------------------------------------------------------------------------------------------------

下面记录了这一操作过程:

基本信息:

master:192.168.1.101

slave:192.168.1.102

版本:mysql5.6

同步的库:huanqiu、huanpc

Maatkit安装过程:(主库和从库服务器上都可以安装,因为数据一致性检查操作在主库或从库机器上都可以运行;建议主从机器上都安装)

1)安装该工具依赖的软件包

[root@master-server src]# yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl perl-DBI -y

vbi1)

[root@master-server ~]# tar -zvxf maatkit-7540.tar.gz  && cd maatkit-7540

[root@master-server maatkit-7540]# perl Makefile.PL

Checking if your kit is complete...

Looks good

Writing Makefile for maatkit

------------------------------------------------------------------------------------------------------------

如有报错:

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.

BEGIN failed--compilation aborted at Makefile.PL line 1.

解决办法:

[root@slave-server maatkit-4334]# yum install perl-ExtUtils-Embed perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

------------------------------------------------------------------------------------------------------------

[root@master-server maatkit-4334]# make && make install

[root@master-server ~]# mk-               //按TAB键补全,可以查看到Maatkit的所有命令

mk-archiver mk-find mk-parallel-dump mk-show-grants mk-table-sync

mk-checksum-filter mk-heartbeat mk-parallel-restore mk-slave-delay mk-table-usage

mk-config-diff mk-index-usage mk-profile-compact mk-slave-find mk-tcp-model

mk-deadlock-logger mk-kill mk-purge-logs mk-slave-move mk-upgrade

mk-duplicate-key-checker mk-loadavg mk-query-advisor mk-slave-prefetch mk-variable-advisor

mk-error-log mk-log-player mk-query-digest mk-slave-restart mk-visual-explain

mk-fifo-split mk-merge-mqd-results mk-query-profiler mk-table-checksum

安装完成后,一定要在被校验的主从服务器上创建只有SELECT权限的帐号(最好保持主从上创建的账号和密码一样,方便操作)

mysql> GRANT SELECT ON *.* TO 'data_check'@'%' IDENTIFIED BY 'check@123';

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

使用mk-table-checksum检查主从数据一致性

1)在主库服务器上运行数据一致性检查操作(也可以在从库服务器上进行数据一致性检查操作,命令跟下面一样)

[root@master-server ~]# mk-table-checksum h=192.168.1.101,u=data_check,p=check@123,P=3306 h=192.168.1.102,u=data_check,p=check@123,P=3306

DATABASE TABLE CHUNK HOST ENGINE COUNT CHECKSUM TIME WAIT STAT LAG

mysql columns_priv 0 192.168.1.101 MyISAM NULL 0 0 0 NULL NULL

mysql columns_priv 0 192.168.1.102 MyISAM NULL 0 0 0 NULL NULL

mysql db 0 192.168.1.101 MyISAM NULL 4197331717 0 0 NULL NULL

mysql db 0 192.168.1.102 MyISAM NULL 4197331717 0 0 NULL NULL

mysql event 0 192.168.1.101 MyISAM NULL 0 0 0 NULL NULL

mysql event 0 192.168.1.102 MyISAM NULL 0 0 0 NULL NULL

mysql func 0 192.168.1.101 MyISAM NULL 0 0 0 NULL NULL

mysql func 0 192.168.1.102 MyISAM NULL 0 0 0 NULL NULL

mysql general_log 0 192.168.1.101 CSV NULL 0 0 0 NULL NULL

mysql general_log 0 192.168.1.102 CSV NULL 0 0 0 NULL NULL

mysql help_category 0 192.168.1.101 MyISAM NULL 2621154011 0 0 NULL NULL

mysql help_category 0 192.168.1.102 MyISAM NULL 2621154011 0 0 NULL NULL

mysql help_keyword 0 192.168.1.101 MyISAM NULL 2791798352 0 0 NULL NULL

mysql help_keyword 0 192.168.1.102 MyISAM NULL 578891347 0 0 NULL NULL

mysql help_relation 0 192.168.1.101 MyISAM NULL 3733405838 0 0 NULL NULL

mysql help_relation 0 192.168.1.102 MyISAM NULL 1649042165 0 0 NULL NULL

mysql help_topic 0 192.168.1.101 MyISAM NULL 1795841156 0 0 NULL NULL

mysql help_topic 0 192.168.1.102 MyISAM NULL 2642710534 0 0 NULL NULL

mysql innodb_index_stats 0 192.168.1.101 InnoDB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值