1、基本环境:

Mysql版本:5.6.12-log

Percona-toolkit:2.2.18

Linux:centos6.5

2、安装

源码安装:

# 一些依赖包

yum install perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes -y

# 下载安装percona-toolkit

wget https://www.percona.com/downloads/percona-toolkit/2.2.18/tarball/percona-toolkit-2.2.18.tar.gz

tar -xvf percona-toolkit_2.2.18.tar.gz

cd percona-toolkit-2.2.18/

yum install perl-DBD-MySQL -y

perl Makefile.PL

make

make test

make install

cp /usr/local/bin/pt* /bin/

Rpm包安装:

wget https://www.percona.com/downloads/percona-toolkit/2.2.18/RPM/percona-toolkit-2.2.18-1.noarch.rpm

报错记录:

07-21T11:36:38 Error checksumming table business_db.SHOP_BARGAIN_RANGE: DBD::mysql::st execute failed: Unknown column 'db' in 'where clause' [for Statement "DELETE FROM `test`.`dsns` WHERE db = ? AND tbl = ?" with ParamValues: 0='business_db', 1='SHOP_BARGAIN_RANGE'] at /usr/local/bin/pt-table-checksum line 10085.

需要安装perl源组件:

yum -y install perl-devel

yum -y install perl-CPAN

3、建立check账号

赋予权限:

mysql> grant SUPER on *.* to repl@'192.168.%';

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> grant PROCESS on *.* to repl@'192.168.%';

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> grant select,create,drop,insert,delete,update,alter on percona.* to repl@'192.168.%';

Query OK, 0 rows affected (0.00 sec)

mysql>

在主库建库建表:

# 默认的check库

Create database percona;

# 准备测试库数据

Create database bg;

Use bg;

CREATE TABLE `t1` (

`id` int(1) NOT NULL AUTO_INCREMENT,

`cname` varchar(3) NOT NULL DEFAULT '',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

insert into t1 select 1,’abc’;

# 然后单独在从库录入数据,那么主从数据不一致了,从库多了一条数据

Insert into t1 select 2,’ab2’;

开始使用pt-table-checksum检查:

# 执行checksum操作

[root@hch_test_dbm1_121_62 mysql]# pt-table-checksum  --host=192.168.121.62 --port 3306 --databases=bg -urepl -pPlcc0805@replication   --no-check-binlog-format

[root@hch_test_dbm1_121_62 mysql]#

# 没有check出来数据不一致的,why?

去执行select * from checksums;也没有记录。

mysql> select * from percona.checksums;

Empty set (0.00 sec)

mysql>

换个mysql主从环境进行测试:

pt-table-checksum  --host=110.251.13.11 --port 3307 --databases=test-u check_user -pPlcc0805@replication  --no-check-binlog-format

执行报错:

Diffs cannot be detected because no slaveswere found.  Please read the--recursion-method documentation for information.

从字面意思上看是,主库找不到从数据库。只需要在从库配置文件 my.cnf中添加

report_host=slave_ip

report_port=slave_port

即可。

如果slave从库有表t3,master主库没有t3表,那么结果集上不会显示出来说从库多了个表t3,它以主master库为基准来判断验证的。

4、Test库能check,enrolment_db不能check

# 开始检查test库的所有表

[root@azure_zhitian_dbm1_13_11 ~]# pt-table-checksum  --host=110.251.13.11 --port 3307 --databases=test --user=check_user --password="Plcc0805@replication"   --no-check-binlog-format

TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

07-28T16:34:23      0      0        1       1       0   0.358 test.JBPM4_EXECUTION

07-28T16:34:23      0      1        2       1       0   0.038 test.t1

[root@azure_zhitian_dbm1_13_11 ~]#

n  看到test.t1表的DIFFS为1,表示关于test.t1表的主从数据不一致,需要修复

# 再检查 enrolment_db库,没有记录,这是为啥?

[root@azure_zhitian_dbm1_13_11 ~]# pt-table-checksum  --host=110.251.13.11 --port 3307 --databases=enrolment_db  --user=check_user --password="Plcc0805@replication"  --chunk-size=100  --no-check-binlog-format

[root@azure_zhitian_dbm1_13_11 ~]#

MySQL 使用pt-table-checksum 检查主从数据一致性 (实例转)的更多相关文章

  1. pt-table-checksum 检查主从数据一致性

    http://www.cnblogs.com/xiaoyanger/p/5584554.html http://www.cnblogs.com/gomysql/p/3662264.html https ...

  2. 利用mk-table-checksum监测Mysql主从数据一致性操作记录

    前面已经提到了mysql主从环境下数据一致性检查:mysql主从同步(3)-percona-toolkit工具(数据一致性监测.延迟监控)使用梳理今天这里再介绍另一种Mysql数据一致性自动检测工具: ...

  3. MySQL主从数据一致性问题修复

    MySQL主从数据一致性问题修复 前面,我们使用pt-table-checksum 可以检测出主从数据是否一致的问题.发现问题后,我们怎么解决这些问题,也是我们必须要会的技能. 修复主从数据一致性问题 ...

  4. pt工具校验主从数据一致性之dsns方式

    mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了.主要说一下通过dsns方式发现从库的一种方式. p ...

  5. MySQL 主主同步配置和主从配置步骤

    ★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...

  6. 使用pt-table-checksum检查主从一致性

    使用 percona 工具检查主从不一致 可以使用 pt-table-checksum  工具检查主从数据的一致性,检查完之后默认会生成一个 percona 库以及一个 checksums 表,记录了 ...

  7. MySQL 出现 The table is full 的解决方法【转】

    [MySQL FAQ]系列 — 你所不知的table is full那些事 时间 2014-08-21 12:18:56  MySQL中文网 原文  http://imysql.com/2014/08 ...

  8. sqoop import mysql to hive table:GC overhead limit exceeded

    1. Scenario description when I use sqoop to import mysql table into hive, I got the following error: ...

  9. MYSQL - database 以及 table 的增删改查

    MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...

随机推荐

  1. Nagios 服务安装

    Nagios 环境部署 安装服务包 操作系统:Linux Centos 6.4 32位 安装包:nagios-3.4.3.tar.gz 安装包:nagios-plugins-1.4.13.tar.gz ...

  2. 大话设计模式之PHP篇 - 适配器模式

    定义将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作. 角色Target适配目标,该角色定义把其他类转换为何种接口,也就是我们的期望接口.Adapte ...

  3. INSPIRED启示录 读书笔记 - 第15章 特约用户

    产品开发伙伴 为了解决两个问题——既深入洞察目标用户的需求,又赢得用户对产品的推荐,建议征集特约用户协助完成产品研发 在项目的开始阶段物色至少六位积极.活跃.乐于分享的目标户,要求是他们在产品的目标用 ...

  4. Harbor 镜像管理专家

    Harbor是一个企业级的镜像管理仓库,是VMware主导的一个开源项目(github地址:https://github.com/vmware/harbor). Harbor提供了以下功能特性: Cl ...

  5. 【2039】checker(Dp)

    我今天脑子貌似又好使了一点,可以做一做DP中的水题了. 这个题难度蓝色,纯属是做的人太少了虚高. 这个题很显然的是可以用一个顺序一个逆序这两个大水转移方程轻松转移出到达这个地方最少需要的棋子数量,然后 ...

  6. Elasticsearch Suggester 学习

    suggester搜索就像百度搜索框中的提示类似. Elasticsearch 中提供类似的搜索功能. 答案就在Suggesters API. Suggesters基本的运作原理是将输入的文本分解为t ...

  7. JavaScript -- 节点操作, 事件触发, 表单伸缩

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. EXCEL中,怎样查看一个工作簿中有几个工作表?

    EXCEL中,怎样查看一个工作簿中有几个工作表 有几个EXCEL文件,每个文件(工作簿)中都有上百个工作表, 怎样可以一次性查看一个簿包含几个表? 目前好像没有直接可以看到有多少张工作表的按钮,这就需 ...

  9. Android框架之路——GreenDao3.2.2的使用

    一.简介 GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发时间. SQLite是一个令人敬畏的内嵌的关系数据库,编 ...

  10. jquery下json数组的操作用法实例

    jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove( ...