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/
注釋:涉及的IP都是主庫IP地址
總結
以上是生活随笔為你收集整理的mysql主从数据库验证_数据库主从一致性验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 存guid类型_从C#在My
- 下一篇: mysql生产环境运维方案_[MySQL