mysql主从数据库验证_数据库主从一致性验证

数据库数据一致性检验部署文档

1、pt-table-checksum 安装:

各个版本一览地址:http://www.percona.com/downloads/percona-toolkit/

我们所需软件下载地址:

具体的安装步骤如下:

yum install    perl    mysql    perl-DBD-MySQL    -y(安装percona-toolkit所需要的软件包)

tar -zxvf percona-toolkit-2.2.2.tar.gz

cd percona-toolkit-2.2.2

perl Makefile.PL

make && make install

#vim percona-toolkit-2.2.2/README (如果安装中有问题,请查考README)

2、修改MySQL相关环境变量

rm     -rf     /usr/bin/mysql

rm     -rf     /usr/bin/mysqladmin

rm     -rf     /usr/bin/mysqlaccess

rm     -rf     /usr/bin/mysqlbinlog

rm     -rf     /usr/bin/mysqlcheck

rm     -rf     /usr/bin/mysqldump

ln     -s      /usr/local/mysql5/bin/mysql     /usr/bin/

ln     -s      /usr/local/mysql5/bin/mysqladmin    /usr/bin/

ln     -s      /usr/local/mysql5/bin/mysqlaccess    /usr/bin/

ln     -s      /usr/local/mysql5/bin/mysqlbinlog    /usr/bin/

ln     -s      /usr/local/mysql5/bin/mysqlcheck    /usr/bin/

ln     -s      /usr/local/mysql5/bin/mysqldump    /usr/bin/

3、在Master库上授权:

GRANT update,insert,delete,SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TOchecksum@'Master ip'IDENTIFIED BY '1q2w3e4r' ;

4、手动创建数据库pts并创建checksums 表,保存pt-table-checksum 检测数据:

CREATE TABLE checksums (

dbchar(64)    NOT NULL,

tblchar(64)    NOT NULL,

chunkint    NOT NULL,

chunk_timefloat    NULL,

chunk_indexvarchar(200)    NULL,

lower_boundary text    NULL,

upper_boundary text    NULL,

this_crcchar(40)    NOT NULL,

this_cntint    NOT NULL,

master_crcchar(40)    NULL,

master_cntint    NULL,

tstimestamp    NOT NULL,

PRIMARY KEY (db, tbl, chunk),

INDEX ts_db_tbl (ts, db, tbl)

) ENGINE=InnoDB;

5、执行pt-table-checksum 检查主从数据表:

/usr/bin/pt-table-checksumh='Master_IP',u='checksum',p='1q2w3e4r',P=3306--nocheck-replication-filters \

--no-create-replicate-table --replicate=pts.checksums--no-check-binlog-format--set-vars innodb_lock_wait_timeout=50

上面显示的参数说明:

TS:完成检查的时间。

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

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

ROWS:表的行数。

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

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

TIME:执行的时间。

TABLE:被检查的表名。

6、通过计划任务来定时校验数据一致性

#cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

0 8 * * * root /data/scripts/Consistency.sh

7、Consistency.sh脚本内容

#cat /data/scripts/Consistency.sh

#!/bin/sh

#set -x

DIR=/data/scripts/Consistency/

cd ${DIR}

TIME=`date -d today +%Y%m%d%H%M`

###############################################################################

/usr/bin/pt-table-checksumh='Master_ip',u='checksum',p='1q2w3e4r',P=3306--nocheck-replication-filters \

--no-create-replicate-table --replicate=pts.checksums--no-check-binlog-format--set-vars innodb_lock_wait_timeout=50 >> ${DIR}${TIME}.txt

###############################################################################

8、创建一致性检验结果文件目录

#mkdir-p/data/scripts/Consistency/

2e3e9a4299cf1d5c4f07f90809eb2692.png

注释:涉及的IP都是主库IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值