热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL主从不一致检查与修复

pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,把表分块(hunk-size),生成replace语句,然后通过复制传递到从,

pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,把表分块(hunk-size),生成replace语句,然后通过复制传递到从,

pt-table-checksum 安装:

下载地址:wget

tar xf percona-toolkit-{version}.tar.gz

cd percona-toolkit-{version} # 进入解压后的目录

vim README # 查看安装手册

必备条件:

安装 yum install perl mysql perl-DBD-MySQL -y

pt-table-checksum安装步骤:

perl

Makefile.PL

make

make install

一、在master上操作:

1.在Master库上授权:

GRANT update,insert,delete,SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO checksum@'Master ip' IDENTIFIED BY '123' ;


2、手工建在制定的库下(例如pts) checksums 表,保存pt-table-checksum 检测数据:

CREATE TABLE checksums (

db char(64) NOT NULL,

tbl char(64) NOT NULL,

chunk int NOT NULL,

chunk_time float NULL,

chunk_index varchar(200) NULL,

lower_boundary text NULL,

upper_boundary text NULL,

this_crc char(40) NOT NULL,

this_cnt int NOT NULL,

master_crc char(40) NULL,

master_cnt int NULL,

ts timestamp NOT NULL,

PRIMARY KEY (db, tbl, chunk),

INDEX ts_db_tbl (ts, db, tbl)

) ENGINE=InnoDB;

a.执行pt-table-checksum 检查主从数据表:

/usr/bin/pt-table-checksum h='1.1.1.2',u='checksum',p='123',P=3306 --databases test --tables t --nocheck-replication-filters --create-replicate-table --replicate=pts.checksums --no-check-binlog-format --lock-wait-timeout=120

TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE

06-08T10:41:16 0 0 2 1 0 0.338 test.t

上面显示的参数说明:

TS :完成检查的时间。

ERRORS :检查时候发生错误和警告的数量。

DIFFS :0表示一致,1表示不一致。当指定--no-replicate-check时,,会一直为0,当指定--replicate-check-only会显示不同的信息。

ROWS :表的行数。

CHUNKS :被划分到表中的块的数目。

SKIPPED :由于错误或警告或过大,则跳过块的数目。

TIME :执行的时间。

TABLE :被检查的表名。


b.执行pt-table-sync 打印主从数据不一致的表:

/usr/bin/pt-table-sync --replicate=pts.checksums h=1.1.1.2,u=checksum,p=123 h=1.1.1.4,u=checksum,p=123 --print


c.恢复主从不一致的数据(在Master执行且以Master的结果为准)

/usr/bin/pt-table-sync --replicate=pts.checksums h=1.1.1.2,u=checksum,p=123 h=1.1.1.4,u=checksum,p=123 --execute

pt-table-checksum是一个在线验证主从数据一致性的工具,主要用于以下场景:

1. 数据迁移前后,进行数据一致性检查

2. 当主从复制出现问题,待修复完成后,对主从数据进行一致性检查

3. 把从库当成主库,进行数据更新,产生了”脏数据”

4. 定期校验

工作原理:

pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,把表分块(hunk-size),生成replace语句,然后通过复制传递到从,再通过update更新master_src的值。通过检测从上this_src和master_src的值从而判断复制是否一致。


推荐阅读
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 概述本章主要写当慢查询文件很大的时候怎样在线生成一个新的慢查询文件。测试环境:mysql5.6.2 ... [详细]
  • PHP连接MySQL的2种方法小结以及防止乱码【PHP】
    后端开发|php教程PHP,MySQL,乱码后端开发-php教程PHP的MySQL配置报错信息:ClassmysqlinotfoundinAnswer:1.在confphp.ini ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 开发笔记:MySQL数据库
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了MySQL数据库相关的知识,希望对你有一定的参考价值。 ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 【Python 爬虫】破解按照顺序点击验证码(非自动化浏览器)
    #请求到验证码base64编码json_img_datajson_raw.get(Vimage)#获取到验证码编码 #保存验证码图片到本地defbase64_to_img(bstr ... [详细]
  • k8s进阶之搭建私有镜像仓库
    企业级私有镜像仓 ... [详细]
author-avatar
majiemajiemajie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有