【Mysql】主從不同的埠使用pt-table-checksum校驗一致性

小亮520cl發表於2017-08-28

背景

  1. 主:10.32.7.113 3306
  2. 從:10.32.7.112 3307


step 1:建立從庫資訊

  1. 主庫test庫下建立表
  2. CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );
  3. mysql> INSERT INTO dsns (parent_id,dsn) values(1,'h=10.32.7.112,u=ptuser,p=ptpass,P=3307');    --插入從庫資訊


step 2:校驗

  1. 校驗主從otter庫
  2. [root@DB-23 ~]# pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksum --databases=otter u=ptuser,p=ptpass,P=3306,h=10.32.7.113 --empty-replicate-table --create-replicate-table --recursion-method=dsn=h=10.32.7.113,D=test,t=dsns --set-vars innodb_lock_wait_timeout=50


step3:從庫執行

  1. [root@DB-22 ~]# pt-table-sync --replicate test.checksum --sync-to-master h=10.32.7.112,P=3307,u=ptuser,p=ptpass --database=otter --print
  2. REPLACE INTO `otter`.`testtab`(`id`) VALUES ('2') /*percona-toolkit src_db:otter src_tbl:testtab src_dsn:P=3306,h=10.32.7.113,p=...,u=ptuser dst_db:otter dst_tbl:testtab dst_dsn:P=3307,h=10.32.7.112,p=...,u=ptuser lock:1 transaction:1 changing_src:test.checksum replicate:test.checksum bidirectional:0 pid:22358 user:root host:DB-22*/;

  3. [root@DB-22 ~]# pt-table-sync --replicate test.checksum --sync-to-master h=10.32.7.112,P=3307,u=ptuser,p=ptpass --database=otter --execute
mysql> select * from testtab;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)   --差異資料已被修復


參考:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2144213/,如需轉載,請註明出處,否則將追究法律責任。

相關文章