中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)

發布時間:2020-08-11 12:19:03 來源:ITPUB博客 閱讀:122 作者:Jiang_beyond 欄目:MySQL數據庫
percona-toolkit-2.2.8-1.noarch.rpm有兩個工具可以驗證MySQL主從數據的一致性

安裝tookkit需要一些依賴包
  1. yum install perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes -y
實驗環境
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)

在Master上初始化實驗數據
  1. create database mvbox;
  2. use mvbox;
  3. create table test(id int primary key,name varchar(20));
  4. insert into test values(1,'a'),(2,'b'),(3,'c'),(4,'d');
因為主從環境已經搭建,這些數據會自動同步到Slave上。

在Slave從庫添加一個數據,模擬主從數據不一致的場景。
  1. insert into test values(5,'e');
在Master主庫執行pt-table-checksum命令。
它會使用concat_ws函數將數據合并為一行,然后使用crc32函數生成校驗碼,最后將其插入percona庫的checksums表中。
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)
因為主從環境,這個數據會復制到Slave
也就是說Slave的percona.checksums表,存放的是主庫數據的校驗碼。
所以在Slave對數據執行同樣的校驗,然后比對checksums表中的數據,就可以驗證主從是否一致。

所以執行pt-table-checksum命令的帳號,至少需要有全庫的只讀權限和percona庫的讀寫權限。
  1. create user xx;
  2. GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO'xx'@'%' IDENTIFIED BY 'xx';
  3. grant all privileges on percona.* TO'xx'@'%' IDENTIFIED BY 'xx';

查看主從一致的情況
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)
  1. TS :完成檢查的時間。
  2. ERRORS :檢查時候發生錯誤和警告的數量。
  3. DIFFS :0表示一致,1表示不一致。當指定--no-replicate-check時,會一直為0,當指定--replicate-check-only會顯示不同的信息。
  4. ROWS :表的行數。
  5. CHUNKS :被劃分到表中的塊的數目。
  6. SKIPPED :由于錯誤或警告或過大,則跳過塊的數目。
  7. TIME :執行的時間。
  8. TABLE :被檢查的表名。
常用參數
  1. --nocheck-replication-filters :不檢查復制過濾器,建議啟用。后面可以用--databases來指定需要檢查的數據庫。
  2. --no-check-binlog-format : 不檢查復制的binlog模式,要是binlog模式是ROW,則會報錯。
  3. --replicate-check-only :只顯示不同步的信息。
  4. --replicate= :把checksum的信息寫入到指定表中,建議直接寫到被檢查的數據庫當中。
  5. --databases= :指定需要被檢查的數據庫,多個則用逗號隔開。
  6. --tables= :指定需要被檢查的表,多個用逗號隔開
  7. h=127.0.0.1 :Master的地址
  8. u=root :用戶名
  9. p=123456:密碼
  10. P=3306 :端口
可以看到這個工具已經檢測到了主從不一致的情況。

如果發生不一致,可以使用pt-table-sync命令修復。
需要注意的是這個命令需要在Slave從庫執行。
使用print參數,他會在屏幕顯示修復的SQL語句。然后可以手工確認并執行。
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)

也可以通過這個命令自動執行,不過這樣會修改從庫的數據,感覺不是太安全。
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)
驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)

需要特別注意的是這兩個命令執行的過程中,會對表上共享鎖,所以生產環境要慎重選擇執行時間。

參考:
http://nettedfish.sinaapp.com/blog/2013/06/04/check-replication-consistency-by-pt-table-checksum/
http://www.cnblogs.com/zhoujinyi/archive/2013/05/09/3067045.html
http://blog.chinaunix.net/uid-16844903-id-3360228.html
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通渭县| 百色市| 无极县| 讷河市| 上犹县| 襄樊市| 庆安县| 博客| 山阳县| 祁连县| 谷城县| 广宗县| 郴州市| 永宁县| 乐安县| 达孜县| 三门县| 中山市| 隆尧县| 青冈县| 金溪县| 崇阳县| 金川县| 双柏县| 白银市| 方山县| 龙游县| 鲁山县| 济宁市| 新蔡县| 六安市| 武安市| 嘉峪关市| 博罗县| 扎赉特旗| 乡宁县| 拉萨市| 高安市| 玛多县| 鹤壁市| 华坪县|