mysql数据一致性检查及修复
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数据一致性检查及修复的更多相关文章
- 生产环境使用 pt-table-checksum 检查MySQL数据一致性【转】
公司数据中心从托管机房迁移到阿里云,需要对mysql迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum 成为了绝佳也是唯一的检查工 ...
- MySQL Errno : 1062 错误修复
网站突然出现如下错误: MySQL Error : Duplicate entry '1' for key 'views' MySQL Errno : 1062 Message : Duplicate ...
- 掘地三尺搞定 Redis 与 MySQL 数据一致性问题
Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求,点我 -> 解密 Redis 为什么这么快的秘密. 把 Redis 作 ...
- 【干货】分享总结:MySQL数据一致性 罗小波 星辉天拓
[干货]分享总结:MySQL数据一致性 罗小波 星辉天拓 http://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653928966&a ...
- 阿里云ECS(linux)磁盘满触发的mysql的表异常修复案例
阿里云ECS(linux)磁盘满触发的mysql的表异常修复案例 阿里云技术支持:完颜镇江 问题现象: 磁盘空间满了,第一想到的就是删除无用的服务日志或者升级数据盘. 通常是使用du –sh去分析目录 ...
- fsck 工具 ——检查 与修复 Linux系统上的文件系统
可能由于昨天关电脑断电源的问题, 后来开机,直接出现如下界面: 心里想,不会吧,电脑怎么又出问题了吧(上周的时候,手贱,把装系统的硬盘分区设为了非活动分区,电脑就启动不来了,后来手动引导起来的:): ...
- [转]Windows 7自带很好用的磁盘检查与修复的环境
大家可能都知道Windows 7自带很好用的检查与修复的环境.在启动系统前按F8(就是进入安全模式的方法),Windows 7会有一个修复计算机的选项.选择进入,装载一些必要的文件之后,选择语言.登陆 ...
- 高并发架构系列:Redis缓存和MySQL数据一致性方案详解
一.需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景, ...
- keepalived健康检查及双主MySQL健康检查脚本
一.http检查 HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除:此外还可以指定http返回码来判断 ...
随机推荐
- Android AES加密算法,现在实际上
昨天,老板让我来看看android加密算法.于是在网上找了找,发现AES加密算法.(当然,MD5,BASE64什么http://snowolf.iteye.com/blog/379860这篇文章列举了 ...
- Mysql高级之权限检查原理
原文:Mysql高级之权限检查原理 用户进行数据库操作分为两步: 1 是否有权限连接,根据host,name,password: 2 是否有权限进行CURD: 图示解说: 关于用户权限在哪里进行存放? ...
- SignalR 2.0 入门与提高
SignalR 2.0 入门与提高 SignalR 2.0 最近整理了SignalR2.0 部分知识点,原文翻译,由于自己是土鳖,翻译得不好的地方,欢迎指正!仅供各位初学者学习! 第一节. 入门ASP ...
- ASP.NET WebApi 增删改查
本篇是接着上一篇<ASP.NET WebApi 入门>来介绍的. 前言 习惯说 CRUD操作,它的意思是"创建. 读取. 更新和删除"四个基本的数据库操作.许多 HTT ...
- Essential C#读书笔记
Essential C#读书笔记 这是一个多变的时代,一次又一次的浪潮将不同的人推上了巅峰.新的人想搭上这一波,同时老的人也不想死在沙滩上.这些年新的浪潮又一次推开,历史不停地重复上演,那便是移动互联 ...
- NUnit使用方法
单元测试是一个成熟项目必不可少的一个环节,NUnit很好的提供了测元测试的一些方法,以下是我得出的一点点经验以及NUnit的一点点实际应用中用到的内容.写的有点儿乱,不懂下面留言.谢谢~ 准备NUni ...
- Dynamics CRM 提示“操作无效”
今天打开一个许久没用的CRM学习环境发现出现下面的错误.顿时感觉到莫名其妙.(貌似CRM的所有错误都让人感觉到莫名其妙) 于是查看系统日志,错误如下: Current key (KeyType : C ...
- delphi中设置系统时间方法
procedure TMainFrm.Timer1Timer(Sender: TObject); var systemtime:Tsystemtime; dt:TDateTime; begin ...
- MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 一
本人系新接触MongoDB不久,属于MongoDB的菜鸟范畴.在使用MongoDB的过程中,总结了一些认识,在此总结跟大家分享.欢迎拍砖. 关于MongoDB的内容,在此就不做介绍了,网上有浩如烟海的 ...
- [转]UIWebView的Javascript运行时对象
An alternative, that may get you rejected from the app store, is to use WebScriptObject. These APIs ...