mysql主從同步驗證工具

(1)、pt-table-checksum 工具名稱

(2)、安裝pt-table-checksum
#:wget www.percona.com/downloads/percona-toolkit/2.2.2/percona-toolkit-2.2.2.tar.gz
#:tar -xvf percona-toolkit-2.2.2.tar.gz
#:perl Makefile.PL 
# make && make install

(3)、授權
GRANT update,insert,delete,SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* to 'tugeadmin'@'192.168.100.206' identified by 'peshome0716';
創建一個表
CREATE TABLE checksums (
   db             char(64)     NOT NULL,
   tbl            char(64)     NOT NULL,
   chunk          int          NOT NULL,
   chunk_time     float            NULL,
   chunk_index    varchar(200)     NULL,
   lower_boundary text             NULL,
   upper_boundary text             NULL,
   this_crc       char(40)     NOT NULL,
   this_cnt       int          NOT NULL,
   master_crc     char(40)         NULL,
   master_cnt     int              NULL,
   ts             timestamp    NOT NULL,
   PRIMARY KEY (db, tbl, chunk),
   INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB;

(4)、開始驗證
pt-table-checksum  --nocheck-replication-filters --databases=tuge --replicate=tuge.checksums --create-replicate-table -h192.168.100.206  --port 3306  -utugeadmin -ppeshome0716 --set-vars innodb_lock_wait_timeout=120 --no-check-binlog-format

(5)、驗證說明
--nocheck-replication-filters :不檢查複製過濾器,建議啓用。後面可以用--databases來指定需要檢查的數據庫。
--no-check-binlog-format      : 不檢查複製的binlog模式,要是binlog模式是ROW,則會報錯。
--replicate-check-only :只顯示不同步的信息。
--replicate=   :把checksum的信息寫入到指定表中,建議直接寫到被檢查的數據庫當中,(這裏寫入了tuge庫的checksums) 如果沒有checksums庫.需要手工創建一個.每次監測完成之後幹掉它.
這個庫表可以隨意指定.個人建議把它,放到test 裏面去.在test裏面建立一個checksums表.  --replicate=test.checksums 
--databases=   :指定需要被檢查的數據庫,多個則用逗號隔開。
--tables=      :指定需要被檢查的表,多個用逗號隔開
h=127.0.0.1    :Master的地址
u=root         :用戶名
p=123456       :密碼
P=3306         :端口

(6)、常見出錯誤
常見錯誤:
--set-vars innodb_lock_wait_timeout=120
使用timeout跳過這個錯誤提示.


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