percona-toolkit-2.2.20-1.noarch
mysql 5.6.29-log
master:192.168.166.129
slave:192.168.166.131

一、创建数据库校验存放库

CREATE DATABASE IF NOT EXISTS percona CHARACTER SET utf8;

二、建立数据校验用户

GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'checksums'@'192.168.166.129' IDENTIFIED BY 'checksums';
GRANT ALL ON percona.* TO 'checksums'@'192.168.166.129';

三、建立dsn信息存放表,解决从库端口为非3306的问题,如果是多个slave添加多条记录即可

use percona;
CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );
INSERT INTO dsns (parent_id,dsn) values(1, "h=192.168.166.131,P=3306");

四、数据一致性校验检查

pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P=3306 --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns --no-check-binlog-format
--replicate #把checksum的信息写入到指定表中
--nocheck-replication-filters #不检查复制过滤器,建议启用
--no-check-binlog-format #只支持statment格式,不检查binlog格式,忽略二进制格式检查
--recursion-method #检查从库的方法,默认是processlist,如果端口为非3306,会无法连接从库,推荐使用dsn方法

五、查看不一致数据

pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P= --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns  --no-check-binlog-format --replicate-check-only
-- 或者在从库执行下面语句,获取不一致数据结果
select * from percona.checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)

6、修复不一致数据

pt-table-sync --execute --replicate percona.checksums --sync-to-master h=192.168.166.131,P=,u=root,p=xxxxxx

修复数据,需要有update权限,我这里使用root用户,这里的主机为需要修复的从机

7、如果修复了不一致数据,需要再次校验,对比是否已修复

pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P= --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns  --no-check-binlog-format
pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P= --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns --no-check-binlog-format --replicate-check-only

mysql数据一致性检查及修复的更多相关文章

  1. 生产环境使用 pt-table-checksum 检查MySQL数据一致性【转】

    公司数据中心从托管机房迁移到阿里云,需要对mysql迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum 成为了绝佳也是唯一的检查工 ...

  2. MySQL Errno : 1062 错误修复

    网站突然出现如下错误: MySQL Error : Duplicate entry '1' for key 'views' MySQL Errno : 1062 Message : Duplicate ...

  3. 掘地三尺搞定 Redis 与 MySQL 数据一致性问题

    Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求,点我 -> 解密 Redis 为什么这么快的秘密. 把 Redis 作 ...

  4. 【干货】分享总结:MySQL数据一致性 罗小波 星辉天拓

    [干货]分享总结:MySQL数据一致性  罗小波  星辉天拓 http://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653928966&a ...

  5. 阿里云ECS(linux)磁盘满触发的mysql的表异常修复案例

    阿里云ECS(linux)磁盘满触发的mysql的表异常修复案例 阿里云技术支持:完颜镇江 问题现象: 磁盘空间满了,第一想到的就是删除无用的服务日志或者升级数据盘. 通常是使用du –sh去分析目录 ...

  6. fsck 工具 ——检查 与修复 Linux系统上的文件系统

    可能由于昨天关电脑断电源的问题, 后来开机,直接出现如下界面: 心里想,不会吧,电脑怎么又出问题了吧(上周的时候,手贱,把装系统的硬盘分区设为了非活动分区,电脑就启动不来了,后来手动引导起来的:): ...

  7. [转]Windows 7自带很好用的磁盘检查与修复的环境

    大家可能都知道Windows 7自带很好用的检查与修复的环境.在启动系统前按F8(就是进入安全模式的方法),Windows 7会有一个修复计算机的选项.选择进入,装载一些必要的文件之后,选择语言.登陆 ...

  8. 高并发架构系列:Redis缓存和MySQL数据一致性方案详解

    一.需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景, ...

  9. keepalived健康检查及双主MySQL健康检查脚本

    一.http检查 HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除:此外还可以指定http返回码来判断 ...

随机推荐

  1. leetcode[105] Construct Binary Tree from Inorder and Postorder Traversal

    代码实现:给定一个中序遍历和后序遍历怎么构造出这颗树!(假定树中没有重复的数字) 因为没有规定是左小右大的树,所以我们随意画一颗数,来进行判断应该是满足题意的. 3 / \ 2 4 /\ / \1 6 ...

  2. 封装ReaderWriterLockSlim

    封装ReaderWriterLockSlim ReaderWriterLockSlim 类 表示用于管理资源访问的锁定状态,可实现多线程读取或进行独占式写入访问. 使用 ReaderWriterLoc ...

  3. HttpClient 检索与获取过程数据

    使用 HttpClient 检索与获取过程数据   对于System.Net.Http的学习(一)——System.Net.Http 简介 对于System.Net.Http的学习(二)——使用 Ht ...

  4. jquery 实现飘落效果

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

  5. ASP.NET MVC 使用MSBuild生成的几个注意事项

    做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发布,Admin Area会丢失. 研究了下NopCommerc ...

  6. C add

    C++学习--应用篇(Windows/Linux)(书籍推荐及分享) 我将以平台划分,分别介绍Windows和Linux下个人认为的好书(与基础篇一样,大部分网络上都有电子版): 对于C++基础类的图 ...

  7. 不容易理解的 lock 和 merge

    Hibernate:不容易理解的 lock 和 merge 目录 背景Lock官方的注释LockMode.NONELockMode.READLockMode.UPGRADEMerge官方注释detac ...

  8. c语言,求字符数组的长度

    练手代码,适用初级码农: #include<stdlib.h> #include<stdio.h> #include<assert.h> int count(con ...

  9. C语言的一些常见细节

    C语言的一些常见细节 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个 ...

  10. Exchange 2016 创建日程,远程服务器返回错误: (401) 未经授权

    背景:在测试环境中一切正常,使用的是Exchange2013,上生产环境Exchange2016,部署后产生如下错误: Microsoft.Exchange.WebServices.Data.Serv ...