數據庫主從一致性驗證

數據庫數據一致性檢驗部署文檔

 

1pt-table-checksum 安裝:

 

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

我們所需軟件下載地址:

http://www.percona.com/downloads/percona-toolkit/2.2.2/ percona-toolkit-2.2.2.tar.gz

具體的安裝步驟如下:

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:檢查時候發生錯誤和警告的數量。

DIFFS0表示一致,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

 

7Consistency.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/

 

 

註釋:涉及的IP都是主庫IP地址

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章