MySQL 使用pt-table-checksum 检查主从数据一致性 (实例转)
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 检查主从数据一致性 (实例转)的更多相关文章
- pt-table-checksum 检查主从数据一致性
http://www.cnblogs.com/xiaoyanger/p/5584554.html http://www.cnblogs.com/gomysql/p/3662264.html https ...
- 利用mk-table-checksum监测Mysql主从数据一致性操作记录
前面已经提到了mysql主从环境下数据一致性检查:mysql主从同步(3)-percona-toolkit工具(数据一致性监测.延迟监控)使用梳理今天这里再介绍另一种Mysql数据一致性自动检测工具: ...
- MySQL主从数据一致性问题修复
MySQL主从数据一致性问题修复 前面,我们使用pt-table-checksum 可以检测出主从数据是否一致的问题.发现问题后,我们怎么解决这些问题,也是我们必须要会的技能. 修复主从数据一致性问题 ...
- pt工具校验主从数据一致性之dsns方式
mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了.主要说一下通过dsns方式发现从库的一种方式. p ...
- MySQL 主主同步配置和主从配置步骤
★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...
- 使用pt-table-checksum检查主从一致性
使用 percona 工具检查主从不一致 可以使用 pt-table-checksum 工具检查主从数据的一致性,检查完之后默认会生成一个 percona 库以及一个 checksums 表,记录了 ...
- MySQL 出现 The table is full 的解决方法【转】
[MySQL FAQ]系列 — 你所不知的table is full那些事 时间 2014-08-21 12:18:56 MySQL中文网 原文 http://imysql.com/2014/08 ...
- 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: ...
- MYSQL - database 以及 table 的增删改查
MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...
随机推荐
- Docker容器技术-第一个容器
一.第一个容器 1.Docker版本 A.community-edition社区版 Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员 ...
- crm销售管理系统一
一.环境配置 1.首先配置pip,环境变量配置 pip 9.0.1 from c:\users\administrator\envs\crm\lib\site-packages (python 3.6 ...
- cocos2dx打飞机项目笔记七:各种回调:定时器schedule、普通回调callFunc、菜单回调menu_selector、事件回调event_selector
各种回调函数的定义: typedef void (CCObject::*SEL_SCHEDULE)(float); typedef void (CCObject::*SEL_CallFunc)(); ...
- 数据结构与算法分析:C语言描述(原书第2版 简体中文版!!!) PDF+源代码+习题答案
转自:http://www.linuxidc.com/Linux/2014-04/99735.htm 数据结构与算法分析:C语言描述(原书第2版中文版!!!) PDF+源代码+习题答案 数据结构与算法 ...
- Java Junit5 Annotations
@BeforeEach 在方法上注解,在每个测试方法运行之前执行 @AfterEach 在方法上注解,在每个测试方法运行之后执行 @BeforeAll 该注解方法会在所有测试方法之前运行,该方法必须是 ...
- Jquery 获取地址位置
直接在浏览器地址 输入: http://pv.sohu.com/cityjson?ie=utf-8 可以查看数据格式 引入一个搜狐的js库: <script src="http://p ...
- Openfire部署和配置说明
一.程序部署 1.1 程序和脚本 将文件拷贝到对应目录下,文件包括:Openfire.tar和setup.sh脚本.Openfire.tar为可执行文件库.配置等的压缩包,setup.sh为解压和部署 ...
- 使用iframe,注销以后,点击某个标签,跳转到的登录页面位于标签中
当使用iframe时,要么会话过期,要么手动注销,如果此时再进行操作,可能遇到跳转到登录页面,可是登录页面会位于标签执行,并没有全屏显示,即位于当前的iframe中,此时的解决方式很简单,只需要在登录 ...
- 【codevs1028】花店橱窗布置(费用流)
这几天刚学了费用流,找到了这道题来练一练手. 题目: 题目描述 Description 假设以最美观的方式布置花店的橱窗,有F束花,V个花瓶,我们用美学值(一个整数)表示每束花放入每个花瓶所产生的美学 ...
- springboot+mybatis+springSecurity+thymeleaf
配置步骤: .pom <dependencies> <dependency> <groupId>org.springframework.security</g ...