sync修复数据

作者: 数据库信息  发布:2019-08-22

1:下载工具包

pt-table-checksum校验与pt-table-sync修复数据,checksum校验工具

1:下载工具包 登入网站下载相应的工具包 2:安装 (1)yum安装:

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum list | grep percona-toolkit

结果集浮现以下表达安装成功:

percona-toolkit.noarch 3.0.0-rc percona-release-noarch

然后开展设置

sudo yum install percona-toolkit

(2)解压安装包:

[[email protected] home]# cd toolkit/
[[email protected] toolkit]# ls
percona-toolkit-2.2.19.tar.gz
[[email protected] toolkit]# tar -xvf percona-toolkit.tar.gz

从那之后来讲早就设置了percona 的tool基特务专门的学业人员具包,上边主要测一下pt-table-checksum校验与pt-table-sync,前边一个主要用来数据的校验,验证主从是或不是一律,前者首要用来修补数据,两者一般情况结合起来用能够修复数据不等同的题目。

pt-table-checksum是percona公司提供的一款验证主从数据一致性的工具,大家针对主库,决断从库的结果集会反馈给我们,当有捕获到分歧等难点的时候,就能回去三个非0的结果。不过他不得不寻觅数据的不均等,借使要修复数据难题将在动用pt-table-sync。 pt-table-checksum在运作的时候是基于statement复制格式的,假如我们是ROW格式,要求在进行的时候增进--no-check-binlog-format参数。 3:pt-table-checksum的实施,装完以后我们就能够直接使用了,作者那是运用的是第二种办法

[[email protected] bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format h=172.16.16.35,u=root,p=123456,P=3306
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
06-07T10:55:49 0 0 1 1 0 1.331 MAXIANGQIAN.MAXIANGQIAN
06-07T10:55:54 0 0 1 1 0 5.524 maxiangqian.test
06-07T10:55:56 0 0 4 1 0 1.208 maxiangqian.test01
06-07T10:55:57 0 0 0 1 0 1.164 mysql.columns_priv
06-07T10:55:58 0 0 5 1 0 1.216 mysql.db
06-07T10:55:59 0 0 2 1 0 1.176 mysql.engine_cost
06-07T10:56:00 0 0 0 1 0 1.178 mysql.event
06-07T10:56:01 0 0 0 1 0 1.160 mysql.func
06-07T10:56:03 0 0 1 1 0 1.154 mysql.gtid_executed
06-07T10:56:08 0 0 40 4 0 5.015 mysql.help_category
06-07T10:56:13 0 0 679 5 0 5.806 mysql.help_keyword
06-07T10:56:18 0 0 1334 4 0 4.572 mysql.help_relation
06-07T10:56:19 0 0 635 1 0 1.169 mysql.help_topic
06-07T10:56:20 0 0 0 1 0 1.163 mysql.ndb_binlog_index
06-07T10:56:22 0 0 0 1 0 1.157 mysql.plugin
06-07T10:56:23 0 1 48 1 0 1.236 mysql.proc
06-07T10:56:24 0 0 0 1 0 1.197 mysql.procs_priv
06-07T10:56:25 0 0 1 1 0 1.235 mysql.proxies_priv
06-07T10:56:26 0 0 6 1 0 1.188 mysql.server_cost
06-07T10:56:28 0 0 0 1 0 1.154 mysql.servers
06-07T10:56:34 0 0 1 1 0 6.184 mysql.tables_priv
06-07T10:56:35 0 0 0 1 0 1.198 mysql.time_zone
06-07T10:56:36 0 0 0 1 0 1.121 mysql.time_zone_leap_second
06-07T10:56:37 0 0 0 1 0 1.148 mysql.time_zone_name
06-07T10:56:38 0 0 0 1 0 1.147 mysql.time_zone_transition
06-07T10:56:40 0 0 0 1 0 1.138 mysql.time_zone_transition_type
06-07T10:56:41 0 0 8 1 0 1.336 mysql.user
06-07T10:56:42 0 0 0 1 0 1.164 open_api.ma
06-07T10:57:01 0 0 1000000 13 0 18.707 sbtest.sbtest
06-07T10:57:02 0 0 6 1 0 1.263 sys.sys_config

咱俩也得以单独检查某叁个库,那样来压缩检查范围:

[[email protected] bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format --databases=maxiangqian h=172.16.16.35,u=root,p=123456,P=3306

拿到的结果如上,看一下描述:

TS :实现检查的大运。 EMuranoROHuayraS :检查时候发出错误和警告的多少。 DIFFS :0表示一致,1表示不雷同。当钦定--no-replicate-check时,会向来为0,当内定--replicate-check-only会突显分歧的消息。 ROWS :表的行数。 CHUNKS :被剪切到表中的块的数目。 SKIPPED :由于错误或警示或过大,则跳过块的数额。 TIME :实施的日子。 TABLE :被检查的表名。 然后看一下那个首要的参数:

--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。 --replicate= :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。 --databases= :指定需要被检查的数据库,多个则用逗号隔开。
--tables= :指定需要被检查的表,多个用逗号隔开 h=127.0.0.1 :
Master的地址
u=root :用户名
p=123456 :密码
P=3306 :端口

透过点名--replicate=rep_test.checksums 参数,会自动生成三个数据库.把检查音信都写到了checksums表中。

走入SLAVE相应的库中查看checksums表的新闻,能够透过以下语句查看差别的信息:

mysql> select * from checksums where this_cnt<>master_cnt;

经过地点的 this_crc <> master_crc 更能驾驭的看来他们的差别了,通过chunk知道是以此张表的哪些块上的笔录出现差别。

4:检查实验数据区别等的图景使用pt-table-sync进行修复 大家看一下上一节大家经过以下的讲电话机品质检查实验测到有多少是差异的:

[[email protected] bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format --databases=maxiangqian h=172.16.16.35,u=root,p=123456,P=3306
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
06-07T11:13:18 0 0 1 1 0 1.220 MAXIANGQIAN.MAXIANGQIAN
06-07T11:13:19 0 1 1 1 0 1.135 maxiangqian.test
06-07T11:13:21 0 0 4 1 0 1.197 maxiangqian.test01

平复不等同数据:

[[email protected] bin]# clear
[[email protected] bin]# ./pt-table-sync --execute h=172.16.16.35,P=3306,D=maxiangqian,t=test,u=root,p=123456 h=172.16.16.34,P=3306,u=root,p=123456 --no-check-slave --print
[[email protected] bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format --databases=maxiangqian h=172.16.16.35,u=root,p=123456,P=3306
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
06-07T11:18:09 0 0 1 1 0 1.172 MAXIANGQIAN.MAXIANGQIAN
06-07T11:18:10 0 0 1 1 0 1.144 maxiangqian.test
06-07T11:18:11 0 0 4 1 0 1.282 maxiangqian.test01

本身来讲test那张表少了一整套数据,试行未来主体和别本的数额将团体带头人期以来:

接下去大家再看一下看一下pt-table-sync的一部分应用案例: (1)将host1上的数目同步到host2,只同步db.tbl表

pt-table-sync --execute h=host1,D=db,t=tbl h=host2
[[email protected] bin]# ./pt-table-sync --execute h=172.16.16.35,P=3306,D=maxiangqian,t=test,u=root,p=123456 h=172.16.16.34,P=3306,u=root,p=123456 --no-check-slave --print

(2)将host1 上的富有数据同步到host2和host3

pt-table-sync --execute host1 host2 host3
[[email protected] bin]# ./pt-table-sync --execute h=172.16.16.35,P=3306,D=maxiangqian,t=test,u=root,p=123456 h=172.16.16.34,P=3306,u=root,p=123456 h=172.16.16.35,P=3307,u=root,p=123456 --no-check-slave --print

(3)确认保证slave1上的有所数据和主库是一块的

pt-table-sync --execute --sync-to-master slave1
[[email protected] bin]# ./pt-table-sync --execute --sync-to-master h=172.16.16.34,P=3306,u=root,p=123456 --no-check-slave --print

本条需要所检查的表是必需有主键只怕说独一索引的。大家也能够依据上面内定单库的单表

[[email protected] bin]# ./pt-table-sync --execute --sync-to-master h=172.16.16.34,P=3306,D=maxiangqian,t=test01,u=root,p=123456 --no-check-slave --print

(4)依据检查生成的rep_test.checksums恢复生机全数的从库

pt-table-sync --execute --replicate test.checksum master1

也便是上面的例子:

[[email protected] bin]# ./pt-table-sync --execute --replicate rep_test.checksums h=172.16.16.35,P=3306,u=root,p=123456

(5)只修复slave1的数据

/pt-table-sync --execute --replicate rep_test.checksums --sync-to-master slave1

(6)双主格局master2修复自己数据:

pt-table-sync --execute --sync-to-master h=master2,D=db,t=tbl

鉴于双主形式有非常多题目,二个改变或许会传给另外的数据库,所以说笔者们相对不能够在双主的格局下进行以下的操作:

pt-table-sync --execute h=master1,D=db,t=tbl master2

 

1:下载工具包 登陆网址下载相应的工具包...

签到网址下载相应的工具包

2:安装

(1)yum安装:

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum list | grep percona-toolkit

结果集展示以下表明安装成功:

percona-toolkit.noarch 3.0.0-rc percona-release-noarch

接下来举办安装

sudo yum install percona-toolkit

(2)解压安装包:

[root@localhost home]# cd toolkit/
[root@localhost toolkit]# ls
percona-toolkit-2.2.19.tar.gz
[root@localhost toolkit]# tar -xvf percona-toolkit.tar.gz

迄今来讲早就安装了percona 的toolKit工具包,上边首要测一下pt-table-checksum校验与pt-table-sync,前面一个主要用于数据的校验,验证主从是还是不是一律,前面一个主要用来修复数据,两个一般景色结合起来用能够修复数据不等同的主题素材。

pt-table-checksum是percona公司提供的一款验证主从数量一致性的工具,我们本着主库,判断从库的结果集会反馈给大家,当有捕获到分裂等难点的时候,就能够回来三个非0的结果。可是她只可以找出数据的不均等,假如要修复数据难点就要动用pt-table-sync。

pt-table-checksum在运转的时候是依赖statement复制格式的,固然大家是ROW格式,要求在施行的时候加多--no-check-binlog-format参数。

3:pt-table-checksum的实施,装完以往我们就足以间接行使了,笔者那是使用的是第两种情势

[root@localhost bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format h=172.16.16.35,u=root,p=123456,P=3306
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
06-07T10:55:49 0 0 1 1 0 1.331 MAXIANGQIAN.MAXIANGQIAN
06-07T10:55:54 0 0 1 1 0 5.524 maxiangqian.test
06-07T10:55:56 0 0 4 1 0 1.208 maxiangqian.test01
06-07T10:55:57 0 0 0 1 0 1.164 mysql.columns_priv
06-07T10:55:58 0 0 5 1 0 1.216 mysql.db
06-07T10:55:59 0 0 2 1 0 1.176 mysql.engine_cost
06-07T10:56:00 0 0 0 1 0 1.178 mysql.event
06-07T10:56:01 0 0 0 1 0 1.160 mysql.func
06-07T10:56:03 0 0 1 1 0 1.154 mysql.gtid_executed
06-07T10:56:08 0 0 40 4 0 5.015 mysql.help_category
06-07T10:56:13 0 0 679 5 0 5.806 mysql.help_keyword
06-07T10:56:18 0 0 1334 4 0 4.572 mysql.help_relation
06-07T10:56:19 0 0 635 1 0 1.169 mysql.help_topic
06-07T10:56:20 0 0 0 1 0 1.163 mysql.ndb_binlog_index
06-07T10:56:22 0 0 0 1 0 1.157 mysql.plugin
06-07T10:56:23 0 1 48 1 0 1.236 mysql.proc
06-07T10:56:24 0 0 0 1 0 1.197 mysql.procs_priv
06-07T10:56:25 0 0 1 1 0 1.235 mysql.proxies_priv
06-07T10:56:26 0 0 6 1 0 1.188 mysql.server_cost
06-07T10:56:28 0 0 0 1 0 1.154 mysql.servers
06-07T10:56:34 0 0 1 1 0 6.184 mysql.tables_priv
06-07T10:56:35 0 0 0 1 0 1.198 mysql.time_zone
06-07T10:56:36 0 0 0 1 0 1.121 mysql.time_zone_leap_second
06-07T10:56:37 0 0 0 1 0 1.148 mysql.time_zone_name
06-07T10:56:38 0 0 0 1 0 1.147 mysql.time_zone_transition
06-07T10:56:40 0 0 0 1 0 1.138 mysql.time_zone_transition_type
06-07T10:56:41 0 0 8 1 0 1.336 mysql.user
06-07T10:56:42 0 0 0 1 0 1.164 open_api.ma
06-07T10:57:01 0 0 1000000 13 0 18.707 sbtest.sbtest
06-07T10:57:02 0 0 6 1 0 1.263 sys.sys_config

我们也得以独立检查某二个库,那样来压缩检查范围:

[root@localhost bin]# /home/toolkit/percona-toolkit-2.2.19/bin/pt-table-checksum --nocheck-replication-filters --replicate=rep_test.checksums --no-check-binlog-format --databases=maxiangqian h=172.16.16.35,u=root,p=123456,P=3306

获取的结果如上,看一下描述:

TS :完毕检查的光阴。 E奥迪Q5RO奥迪Q3S :检查时候发生错误和警告的数量。 DIFFS :0代表一致,1意味不雷同。当钦点--no-replicate-check时,会直接为0,当钦定--replicate-check-only会显示不相同的新闻。 ROWS :表的行数。 CHUNKS :被细分到表中的块的多少。 SKIPPED :由于错误或警示或过大,则跳过块的多寡。 TIME :实行的时间。 TABLE :被检查的表名。

接下来看一下以此重视的参数:

--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。 --replicate= :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。 --databases= :指定需要被检查的数据库,多个则用逗号隔开。
--tables= :指定需要被检查的表,多个用逗号隔开 h=127.0.0.1 :
Master的地址
u=root :用户名
p=123456 :密码
P=3306 :端口

经过点名--replicate=rep_test.checksums 参数,会自动生成多个多少库.把检查音信都写到了checksums表中。

进去SLAVE相应的库中查阅checksums表的音讯,能够经过以下语句查看不一致等的消息:

mysql> select * from checksums where this_cnt<>master_cnt;

由此地方的 this_crc <> master_crc 更能明白的见到他们的分歧了,通过chunk知道是其一张表的哪位块上的记录出现差异等。

本文由金沙澳门官网发布于数据库信息,转载请注明出处:sync修复数据

关键词: 金沙澳门官网

上一篇:Ali云 Centos7.3设置mysql5.7.18 rpm安装
下一篇:没有了