mysql校驗工具

1、主從數(shù)據(jù)庫上安裝pt-table-checksum工具:

wget https://www.percona.com/downloads/percona-toolkit/2.2.17/RPM/percona-toolkit-2.2.17-1.noarch.rpm 
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm #若存在依賴,可yum安裝

2、主從數(shù)據(jù)庫分別進(jìn)行授權(quán):

GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,UPDATE,INSERT,DELETE ON ptcheck.* TO 'checksums'@'master_ip' IDENTIFIED BY 'check';

3、主庫上創(chuàng)建庫ptcheck,寫明對應(yīng)需要校驗的從庫及連接信息:

create database ptcheck;use ptcheck;
CREATE TABLE `dsns` (`id` int(11) NOT NULL AUTO_INCREMENT,`parent_id` int(11) DEFAULT NULL,`dsn` varchar(255) NOT NULL,PRIMARY KEY (`id`) );
INSERT INTO dsns (parent_id,dsn) values(1, "h=slave_ip,u=checksums,p=check,P=3306");

4、創(chuàng)建校驗結(jié)果存放表:

 CREATE TABLE `checksums` (
 `db` char(64) NOT NULL,
 `tbl` char(64) NOT NULL,
 `chunk` int(11) NOT NULL,
 `chunk_time` float DEFAULT NULL,
 `chunk_index` varchar(200) DEFAULT NULL,
 `lower_boundary` text,
 `upper_boundary` text,
 `this_crc` char(40) NOT NULL,
 `this_cnt` int(11) NOT NULL,
 `master_crc` char(40) DEFAULT NULL,
 `master_cnt` int(11) DEFAULT NULL,
 `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`db`,`tbl`,`chunk`),
 KEY `ts_db_tbl` (`ts`,`db`,`tbl`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5、開始主從數(shù)據(jù)校驗(注意ptcheck庫需要是主從能同步的庫,且校驗時主從數(shù)據(jù)庫需要同步無延遲)

pt-table-checksum h='master_ip',u='checksums',p='check',P=3306  --nocheck-replication-filters --replicate=ptcheck.checksums  --databases=voole_vrm --tables=vrm_cpmovieinfo  --no-check-binlog-format --recursion-method=dsn=D=ptcheck,t=dsns

6、如果DIFFS顯示非零,則主從數(shù)據(jù)不一致,可在從庫上進(jìn)行數(shù)據(jù)差異打印:

pt-table-sync --replicate=ptcheck.checksums --databases=voole_vrm --sync-to-master  h='slave_ip',u='checksums',p='check' --charset=utf8 --print

7、對于從庫與主庫不一致的數(shù)據(jù),通過判斷確認(rèn)需要使從庫和主庫這些數(shù)據(jù)一致時,可在從庫上執(zhí)行如下命令恢復(fù)從庫上差異數(shù)據(jù),使主從數(shù)據(jù)實現(xiàn)一致(修復(fù)數(shù)據(jù)時請注意賬號是否有修改權(quán)限):

pt-table-sync --replicate=ptcheck.checksums --databases=voole_vrm --sync-to-master  h='slave_ip',u='checksums',p='check' --charset=utf8 --execute
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容