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. beanutils获取带参数get方法

    public Employee getEmployee(int index) {        return new Employee();    } 1.PropertyUtils.getIndex ...

  2. ASP.NET MVC应用程序使用异步及存储过程

    ASP.NET MVC应用程序使用异步及存储过程 是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译 ...

  3. 如何使用MacVim

    如何使用MacVim 如何使用MacVim 如何使用MacVim呢? 命令模式 按下ESC 高效率移动 1.在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就 ...

  4. 长乐集训2012.7.11 happy(指针技巧的运用)

    题1  Noip的快乐 (happy.pas/c/cpp) [问题描述] 终于到了一年一度的Noip比赛了,多么令人期待和兴奋的一天!其实,人们最高兴的还不是遇见老朋友,而是结交新朋友.可是结交新的朋 ...

  5. Html Agility Pack解析HTML页

    文章来源:Html Agility Pack解析HTML页 现在,在不少应用场合中都希望做到数据抓取,特别是基于网页部分的抓取.其实网页抓取的过程实际上是通过编程的方法,去抓取不同网站网页后,再进行分 ...

  6. IOC and DI

    Spring.Net 技术简介 IOC and DI   一 简单介绍            IOC 控制转移,就是将创建放到容器里,从而达到接耦合的目的,DI是 在容器创建对象的时候,DI读取配置文 ...

  7. [原]iOS Makefile Template

    export DEVELOPER_DIR := $(shell xcode-select --print-path) PLATFORM="$(DEVELOPER_DIR)/Platforms ...

  8. C#5.0支持的await格式

    C#5.0支持的await格式 C#5.0引入了编译器支持的 async 和 await 关键字,这就为开发者提供了使用同步思想写异步代码的方便. 但是有些传统函数仅提供了异步回调实现,如何对其封装, ...

  9. LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)

    there are several procedure which include: 1. Install the packages sudo apt-get install php5 php5-gd ...

  10. http学习笔记(3)

    几乎所有的http通信都是由TCP/IP承载的.http好比一辆汽车,而TCP是一条公路,所有的汽车都要在公路上跑,看看http是如何在tcp这条公路上往返的. 首先简单地看看tcp,TCP连接是通过 ...