亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 數據庫 Mysql 查看內容

利用percona-toolkit檢查并修復mysql集群的數據統一性

2023-3-16 15:30| 查看: 1912 |來源: 互聯網

percona-toolkit是一組高級命令行工具的集合,用來執行各種通過手工執行非常復雜和麻煩的mysql任務和系統任務,這些任務包括: · 檢查master和slave數據的一 ...

percona-toolkit是一組高級命令行工具的集合,用來執行各種通過手工執行非常復雜和麻煩的mysql任務和系統任務,這些任務包括:

      ·  檢查master和slave數據的一致性

      ·  有效地對記錄進行歸檔

      ·  查找重復的索引

      ·  對服務器信息進行匯總

      ·  分析來自日志和tcpdump的查詢

      ·  當系統出問題的時候收集重要的系統信息

在這里只介紹一下mysql主從復制+MHA架構下最常用到數據一致性檢測及修復,當master宕機后,其中一個slaver被推舉為主節點,宕機節點重新加入集群后,需根據bin log同步數據,為了保險起見還是要檢查一遍集群的數據一致性,percona-toolkit就派上用場了

一、pt-table-checksum檢查主從庫數據的一致性

pt-table-checksum在MASTER上校驗指定庫、表,將結果存在一個庫表里,復制進程將檢驗sql傳遞到slave上再執行一次。通過比較M/S的檢驗值確定數據是否一致。利用主從復制做檢驗,不需要在檢驗期間對主從數據庫同時鎖表,可以控制校驗的數據和速度,不影響到正常服務。

安裝:

#依賴包

yum  –y  perl-DBI  perl-DBD-MySQL  perl-TermReadKey

#percona-toolkit包

wget http://www.percona.com/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.4.tar.gz

tar xzvf percona-toolkit-2.2.4.tar.gz ;  cd percona-toolkit-2.2.4 ;  perl Makefile.pl && make && make install

使用方法:

pt-table-checksum [OPTIONS] [DSN]

pt-table-checksum:在主上通過執行校驗的查詢對復制的一致性進行檢查,對比主從的校驗值,從而產生結果。DSN指向的是主的地址,該工具的退出狀態不為零,如果發現有任何差別,或者如果出現任何警告或錯誤,更多信息請見官網。

不指定任何參數,會直接對本地的所有數據庫的表進行檢查。

pt-table-checksum –S /tmp/mysqld.sock u=root,p=123456

環境:

#主庫:

mysql> select * from t1;

+----+------+

| id | name |

+----+------+

|  1 | aa   |

|  2 | bb   |

|  3 | cc   |

|  4 | dd   |

|  5 | ee   |

+----+------+

5 rows in set (0.00 sec)

#從庫:

mysql> select * from t1;

+----+------+

| id | name |

+----+------+

|  1 | aa   |

|  2 | bb   |

|  3 | cc   |

|  4 | dd   |

+----+------+

4 rows in set (0.00 sec)

注意:

1、  根據測試,需要一個技能登錄主庫,也能登錄從庫,而且還能同步數據庫的賬號;

2、  只能指定一個host,必須為主庫的IP;

3、  在檢查時會向表加S鎖;

4、  運行之前需要從庫的同步IO和SQL進程是YES狀態。

可以用該語句授權用戶,這里為了方便直接用root用戶了

GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO ‘checksums’@’x.x.x.x’ IDENTIFIED BY ‘xxxx’;

執行檢測(MASTER上):

pt-table-checksum --nocheck-replication-filters --replicate=test.checksum --databases=test h=192.168.68.235,u=root,p=123 --empty-replicate-table --create-replicate-table

            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

09-18T12:03:16      0      1        5       1       0   0.018 test.t1

參數說明:

TS            :完成檢查的時間。

ERRORS        :檢查時候發生錯誤和警告的數量。

DIFFS         :0表示一致,1表示不一致。當指定--no-replicate-check時,會一直為0,當指定--replicate-check-only會顯示不同的信息。

ROWS          :表的行數。

CHUNKS        :被劃分到表中的塊的數目。

SKIPPED       :由于錯誤或警告或過大,則跳過塊的數目。

TIME          :執行的時間。

TABLE         :被檢查的表名。

參數意義:

--nocheck-replication-filters :不檢查復制過濾器,建議啟用。后面可以用--databases來指定需要檢查的數據庫。

--no-check-binlog-format      : 不檢查復制的binlog模式,要是binlog模式是ROW,則會報錯。

--replicate-check-only :只顯示不同步的信息。

--replicate=   :把checksum的信息寫入到指定表中,建議直接寫到被檢查的數據庫當中。

--databases=   :指定需要被檢查的數據庫,多個則用逗號隔開。

--tables=      :指定需要被檢查的表,多個用逗號隔開

h=127.0.0.1    :Master的地址

u=root         :用戶名

p=123456       :密碼

P=3306         :端口

更多的參數請見官網,上面指出來的是常用的,對該場景夠用的參數。

通過DIFFS是1可以看出主從的表數據不一致。通過查看從庫上的test.checksum表可以看到主從庫的檢驗信息。

 mysql> select * from checksumG;

*************************** 1. row ***************************

            db: test

           tbl: t1

         chunk: 1

    chunk_time: 0.001604

   chunk_index: NULL

lower_boundary: NULL

upper_boundary: NULL

      this_crc: 13fa7d9d    #從的校驗值

      this_cnt: 4            #從的行數

    master_crc: aa7a56c3    #主的校驗值

    master_cnt: 5            #主的行數

            ts: 2013-09-18 12:03:16

1 row in set (0.00 sec)

通過上面的 this_crc <> master_crc 更能清楚的看出他們的不一致了,通過chunk知道是這個張表的哪個塊上的記錄出現不一致。要是主的binlog模式是Row 則會報錯:

Replica db2 has binlog_format ROW which could cause pt-table-checksum to break replication.

Please read "Replicas using row-based replication" in the LIMITATIONS section of the tool's documentation.

If you understand the risks, specify --no-check-binlog-format to disable this check.

從錯誤信息得出,要是不改binlog模式的話,則在執行上面的命令時候要指定:--no-check-binlog-format,即:

pt-table-checksum  --nocheck-replication-filters --no-check-binlog-format --replicate-check-only --replicate=test.checksum --databases=test --tables=t1  h=127.0.0.1,u=root,p=123,P=3306

指定--replicate-check-only參數會在前一次pt-table-checksum檢驗的數據之上比較(不會再執行計算),顯示出數據不一致的SLAVE主機名:

[root@host125 ~]# pt-table-checksum  --nocheck-replication-filters --no-check-binlog-format --replicate-check-only --replicate=test.checksum --databases=test --tables=t1  h=127.0.0.1,u=root,p=123456,P=3306

[root@host125 ~]# pt-table-checksum --nocheck-replication-filters --replicate=test.checksum --databases=test h=192.168.68.235,u=root,p=123 --empty-replicate-table --create-replicate-table --replicate-check-only

Differences on host122

TABLE CHUNK CNT_DIFF CRC_DIFF CHUNK_INDEX LOWER_BOUNDARY UPPER_BOUNDARY

test.t1 1 -1 1

數據不一致的SLAVE和表都找出來了,下面就用pt-table-sync來修補數據。

二、pt-table-sync修復從庫不一致的數據

使用方法:

pt-table-sync [OPTIONS] DSN [DSN]

pt-table-sync: 高效的同步MySQL表之間的數據,他可以做單向和雙向同步的表數據。他可以同步單個表,也可以同步整個庫。它不同步表結構、索引、或任何其他模式對象。所以在修復一致性之前需要保證他們表存在。

繼續上面的復制環境,主和從的t1表數據不一致,需要修復,

執行:

[root@host125 ~]# pt-table-sync --print --replicate=test.checksum h=192.168.68.235,u=root,p=123,P=3306 h=192.168.68.232,u=root,p=123,P=3306

#先MASTER的IP,再SLAVE的IP

REPLACE INTO `test`.`t1`(`id`, `name`) VALUES ('5', 'ee')

/*percona-toolkit src_db:test src_tbl:t1 src_dsn:P=3306,h=192.168.68.235,p=...,u=root dst_db:test dst_tbl:t1 dst_dsn:P=3306,h=192.168.68.232,p=...,u=root lock:1 transaction:1 changing_src:test.checksum replicate:test.checksum bidirectional:0 pid:24763 user:root host:host125*/;

參數的意義:

--replicate=  :指定通過pt-table-checksum得到的表,這2個工具差不多都會一直用。

--databases=  : 指定執行同步的數據庫,多個用逗號隔開。

--tables=     :指定執行同步的表,多個用逗號隔開。

--sync-to-master :指定一個DSN,即從的IP,他會通過show processlist或show slave status 去自動的找主。

h=127.0.0.1   :服務器地址,命令里有2個ip,第一次出現的是M的地址,第2次是Slave的地址。

u=root        :帳號。

p=123456      :密碼。

--print       :打印,但不執行命令。

--execute     :執行命令。

更多的參數請見官網,上面指出來的是常用的,對該場景夠用的參數。

和上面的命令一樣效果的命令:

[root@host125 ~]# pt-table-sync --print --sync-to-master h=192.168.68.232,u=root,p=123,P=3306 --databases test --tables t1

#用一個IP (SLAVE)就可以了。

REPLACE INTO `test`.`t1`(`id`, `name`) VALUES ('5', 'ee') /*percona-toolkit src_db:test src_tbl:t1 src_dsn:P=3306,h=192.168.68.235,p=...,u=root dst_db:test dst_tbl:t1 dst_dsn:P=3306,h=192.168.68.232,p=...,u=root lock:1 transaction:1 changing_src:1 replicate:0 bidirectional:0 pid:24798 user:root host:host125*/;

還可以讓它自己執行修復數據的SQL語句,但是這樣就沒有輸出了:

[root@host125 ~]# pt-table-sync --execute --sync-to-master h=192.168.68.232,u=root,p=123,P=3306 --databases test --tables t1

數據已經修復完成了:

mysql> select * from t1;

+----+------+

| id | name |

+----+------+

|  1 | aa   |

|  2 | bb   |

|  3 | cc   |

|  4 | dd   |

|  5 | ee   |

+----+------+

5 rows in set (0.00 sec)

建議還是用--print 打印出來的好,這樣就可以知道那些數據有問題,可以人為的干預下。不然直接執行了,出現問題之后更不好處理。總之還是在處理之前做好數據的備份工作。

注意:要是表中沒有唯一索引或則主鍵則會報錯:

Can't make changes on the master because no unique index exists at /usr/local/bin/pt-table-sync line 10591.

補充:

要是從庫有的數據,而主庫沒有,那這個數據怎么處理?會給出刪除SLAVE多余數據,和修復SLAVE缺失數據的SQL語句。

如果在shell窗口不想顯示輸入密碼則可以添加:--ask-pass 參數,如:

[root@host125 ~]# pt-table-sync --print --ask-pass --sync-to-master h=192.168.68.232,u=root,P=3306 --databases test --tables t1

Enter password for 192.168.68.232:

如果使用--ask-pass,報錯:

Cannot read response; is Term::ReadKey installed? Can't locate Term/ReadKey.pm in @INC

安裝Term/ReadKey.pm模塊:

[root@host125 ~]# perl -MCPAN -e "shell"

cpan[1]> install Term::ReadKey

總結:

該工具執行檢查表動作,檢查連接的帳號需要有很高的權限,在一般權限上需要加SELECT, PROCESS, SUPER, REPLICATION SLAVE等權限。pt-table-checksm 配合pt-table-sync使用,在執行pt-table-sync數據同步之前,一定要執行pt-table-checksm命令檢查。

本文最后更新于 2023-3-16 15:30,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
        欧美色图第一页| 中文字幕在线不卡一区| 99久久伊人久久99| 国产精品一区在线| 国产九色精品成人porny| 国内精品自线一区二区三区视频| 日韩黄色在线观看| 日韩福利电影在线| 精品亚洲国内自在自线福利| 加勒比av一区二区| 成人亚洲精品久久久久软件| 成人av资源网站| 在线中文字幕一区| 欧美精品久久一区| 666欧美在线视频| 欧美成人三级在线| 中文字幕欧美日本乱码一线二线| 国产精品人成在线观看免费 | 亚洲综合免费观看高清完整版在线 | 亚洲精品精品亚洲| 午夜国产精品影院在线观看| 精品一区二区三区欧美| 91麻豆国产福利在线观看| 欧美日韩一卡二卡| 精品国产乱码久久久久久影片| 国产欧美日韩精品一区| 一级日本不卡的影视| 国内国产精品久久| 欧美日本在线一区| 综合久久给合久久狠狠狠97色| 日精品一区二区三区| 国产精品一色哟哟哟| 欧美日韩精品免费观看视频| 国产日韩一级二级三级| 五月婷婷综合激情| 91视频一区二区| 国产亚洲精品aa午夜观看| 亚洲一区二区三区小说| 懂色av噜噜一区二区三区av| 宅男噜噜噜66一区二区66| 中文字幕一区二区日韩精品绯色| 美女脱光内衣内裤视频久久网站| 色婷婷av一区二区三区之一色屋| 精品播放一区二区| 人人狠狠综合久久亚洲| 欧美午夜视频网站| 亚洲女子a中天字幕| 菠萝蜜视频在线观看一区| 欧美精品一区二区蜜臀亚洲| 亚洲va在线va天堂| 欧美四级电影在线观看| 亚洲欧美日韩中文字幕一区二区三区| 国产一区视频导航| 欧美tk—视频vk| 久久国产精品第一页| 欧美一级艳片视频免费观看| 亚洲图片自拍偷拍| 欧美日韩高清一区二区不卡 | 国产精品久线在线观看| 成人激情黄色小说| 亚洲同性gay激情无套| 成人动漫一区二区| 亚洲视频一区二区免费在线观看| 本田岬高潮一区二区三区| 国产精品美女久久久久高潮| 成人理论电影网| 亚洲欧美另类久久久精品| 色av综合在线| 日韩高清在线电影| 久久先锋影音av鲁色资源| 国产成人在线免费| 亚洲男同性视频| 欧美精品久久久久久久久老牛影院| 日本中文字幕不卡| 国产亚洲人成网站| 91麻豆国产香蕉久久精品| 五月天网站亚洲| 26uuu亚洲综合色欧美| 成人少妇影院yyyy| 亚洲国产精品一区二区久久恐怖片 | 福利一区二区在线| 玉足女爽爽91| 91精品国产综合久久精品图片| 狠狠色狠狠色综合系列| 亚洲天堂久久久久久久| 欧美一区二区三区在线观看视频| 国内精品久久久久影院薰衣草| 中文字幕一区二区在线播放| 7777精品伊人久久久大香线蕉的 | 97精品国产97久久久久久久久久久久| 亚洲免费在线看| 欧美精品一区二区三区视频| 91蝌蚪porny九色| 精油按摩中文字幕久久| 一区二区三区在线视频免费| 精品国产91乱码一区二区三区| 91麻豆国产福利在线观看| 国产精品资源网| 日本免费新一区视频 | 国产精品久久久久影院老司| 欧美日产国产精品| 日本久久电影网| 不卡欧美aaaaa| 九九热在线视频观看这里只有精品| 亚洲女子a中天字幕| 中文字幕一区二区三区在线播放| 日韩精品中文字幕在线一区| 在线国产电影不卡| 91网站最新网址| 成人美女在线观看| 成人午夜大片免费观看| 国产一区二区福利| 九色综合狠狠综合久久| 免费xxxx性欧美18vr| 亚洲18女电影在线观看| 一区二区三区不卡视频在线观看| 国产精品免费看片| 中文字幕不卡在线| 欧美激情一区不卡| 国产欧美一二三区| 国产清纯白嫩初高生在线观看91 | 久久综合999| 欧美日韩色一区| 一本久久综合亚洲鲁鲁五月天| 成人av免费在线播放| 国产成人免费视频一区| 狠狠狠色丁香婷婷综合激情 | 国产成人精品免费看| 国产精品一区免费视频| 国产高清在线观看免费不卡| 懂色一区二区三区免费观看| 国产成人精品午夜视频免费| 国产suv精品一区二区三区| 成人黄色国产精品网站大全在线免费观看 | 91麻豆国产香蕉久久精品| 91在线你懂得| 欧美精品乱人伦久久久久久| 日韩欧美国产一区二区在线播放 | 91精品国产入口| 精品日韩一区二区| 国产欧美日韩精品在线| 一区二区三区四区不卡视频| 日韩电影在线免费| 成人免费观看视频| 欧美精品粉嫩高潮一区二区| 26uuuu精品一区二区| 亚洲精品伦理在线| 老司机精品视频一区二区三区| 国产98色在线|日韩| 欧美日韩国产大片| 中文字幕制服丝袜成人av| 日韩电影在线免费| 色久优优欧美色久优优| 久久这里都是精品| 亚洲国产精品一区二区久久| 国v精品久久久网| 欧美一区午夜视频在线观看| 国产午夜精品一区二区三区嫩草| 亚洲综合视频在线| 成人美女视频在线观看| 欧美大片拔萝卜| 午夜精品福利一区二区蜜股av | 亚洲精品中文字幕在线观看| 另类调教123区| 欧美午夜寂寞影院| 国产精品成人免费在线| 国内精品伊人久久久久av一坑| 91久久久免费一区二区| 国产精品三级久久久久三级| 韩国视频一区二区| 91麻豆精品国产自产在线| 亚洲黄色免费电影| 色婷婷狠狠综合| 亚洲丝袜美腿综合| av亚洲产国偷v产偷v自拍| 久久久av毛片精品| 精品一区二区免费看| 日韩精品一区二区三区在线观看 | 在线观看日韩精品| 自拍偷拍欧美激情| 色94色欧美sute亚洲线路二| 中文字幕一区二区三区蜜月| 成人美女在线视频| 亚洲日本电影在线| 色系网站成人免费| 性做久久久久久久久| 欧美日韩一区二区三区在线看| 亚洲愉拍自拍另类高清精品| 欧洲视频一区二区| 三级久久三级久久久| 91精品久久久久久蜜臀| 国内一区二区在线| 国产欧美日产一区| 91啪亚洲精品| 性感美女久久精品| www亚洲一区| 91丨porny丨中文| 日韩vs国产vs欧美| 中文字幕 久热精品 视频在线 | 日韩欧美国产精品|