![主從一致性檢查修復(fù)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/9bea3cda-ae5b-492f-9a6a-16fb153cdbde/9bea3cda-ae5b-492f-9a6a-16fb153cdbde1.gif)
![主從一致性檢查修復(fù)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/9bea3cda-ae5b-492f-9a6a-16fb153cdbde/9bea3cda-ae5b-492f-9a6a-16fb153cdbde2.gif)
![主從一致性檢查修復(fù)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/9bea3cda-ae5b-492f-9a6a-16fb153cdbde/9bea3cda-ae5b-492f-9a6a-16fb153cdbde3.gif)
![主從一致性檢查修復(fù)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/9bea3cda-ae5b-492f-9a6a-16fb153cdbde/9bea3cda-ae5b-492f-9a6a-16fb153cdbde4.gif)
![主從一致性檢查修復(fù)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/9bea3cda-ae5b-492f-9a6a-16fb153cdbde/9bea3cda-ae5b-492f-9a6a-16fb153cdbde5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 主從一致性檢查已經(jīng)修復(fù)作者:zuoyuezong1 簡介:該軟件是由由領(lǐng)先的MySQL咨詢公司Percona發(fā)布的Percona的很多軟件我只能說是強!超越MYSQL 自身因此不用懷疑這個公司開發(fā)的軟件會不會帶來什么風(fēng)險pt-table-checksum是著名的percona-toolkit工 具集的工具之一。它通過在主庫執(zhí)行基于statement的sql語句來生成主庫數(shù)據(jù)塊的checksum,把相同的sql語句傳遞到從庫,并在從庫上計 算相同數(shù)據(jù)塊的checksum,最后,比較主從庫上相同數(shù)據(jù)塊的checksum值,由此判斷主從數(shù)據(jù)是否一致。這種校驗是分表進(jìn)行的,在每個表內(nèi)部又 是分塊進(jìn)行
2、的,而且pt工具本身提供了非常多的限流選項,因此對線上服務(wù)的沖擊較小2 環(huán)境主 38 rootmysql2 從40 rootdbserver1 3 安裝(1) .安裝相關(guān)依賴包:rootmysql2 opt# yum -y install perl-DBI perl-DBD-MySQL perl-TermReadKey(2) .安裝percona-toolkit可以rpm 方式也可以源代碼編譯我這里用源代碼編譯rootmysql2 opt# tar -xf percona-toolkit-2.2.2.tar.gz rootmysql2 per
3、cona-toolkit-2.2.2# perl Makefile.PLrootmysql2 percona-toolkit-2.2.2# make && make install 四:授權(quán)主機(jī)mysql 上授權(quán)mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'opt''38' IDENTIFIED BY '123'Query OK, 0 rows affected (0.03 sec)mysql> flush
4、privileges;Query OK, 0 rows affected (0.00 sec)5 檢測rootmysql2 local# pt-table-checksum h='38',u='opt',p='123',P=3306 -d lisi -nocheck-replication-filters -no-check-binlog-format -replicate=test.wocaoDiffs cannot be detected because no slaves were found. Please re
5、ad the -recursion-method documentation for information. TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE07-20T18:41:58 0 0 655360 10 0 4.498 lisi.bookChecksumming lisi.haowutest: 52% 00:27 remainChecksumming lisi.haowutest: 92% 00:04 remain07-20T18:43:05 0 0 7676940 70 0 66.694 lisi.haowutest07-20T18:
6、43:05 0 0 2 1 0 0.118 lisi.j07-20T18:43:05 0 0 2 1 0 0.099 lisi.l07-20T18:43:05 0 0 0 1 0 0.145 lisi.lisi07-20T18:43:05 0 0 3 1 0 0.134 lisi.o07-20T18:43:05 0 0 0 1 0 0.057 lisi.wanger07-20T18:43:06 0 0 7 1 0 0.166 lisi.wanger107-20T18:43:06 0 0 0 1 0 0.144 lisi.ww07-20T18:43:06 0 0 38 1 0 0.171 lis
7、i.yb_account_log07-20T18:43:06 0 0 35 1 0 0.059 lisi.yb_ad07-20T18:43:06 0 0 0 1 0 0.066 lisi.yb_ad_custom07-20T18:43:06 0 0 28 1 0 0.172 lisi.yb_ad_position07-20T18:43:06 0 0 109 1 0 0.076 lisi.yb_admin_action07-20T18:43:06 0 0 9587 1 0 0.182 lisi.yb_admin_log在這里還引申出了一個知識點我本來想在從上刪除lisi.haowutest表的一
8、部分?jǐn)?shù)據(jù) 然后跳過錯誤 再做一次檢查 既然發(fā)現(xiàn)他妹的 slave_skip_errors =1045 沒有用 這是怎么回事呢原來myql 表授權(quán)表變了 rootdbserver1 data# cat 所以我建議mysql數(shù)據(jù)庫還是不要同步的好 省的發(fā)生亂起八糟 不可思議的問題實驗繼續(xù)現(xiàn)在haowu.test表數(shù)據(jù)時不一致的情況下檢測rootmysql2 data# pt-table-checksum h='38',u='opt',p='123',P=3306 -d lisi -nocheck-re
9、plication-filters -no-check-binlog-format -replicate=test.wocao TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE07-20T21:04:44 0 0 655360 10 0 7.600 lisi.bookChecksumming lisi.haowutest: 74% 00:10 remain07-20T21:05:28 0 1 7676940 58 0 43.484 lisi.haowutest07-20T21:05:28 0 0 2 1 0 0.069 lisi.j07-20T21:
10、05:28 0 0 2 1 0 0.061 lisi.l07-20T21:05:28 0 0 0 1 0 0.083 lisi.lisi07-20T21:05:28 0 0 3 1 0 0.063 lisi.o07-20T21:05:28 0 0 0 1 0 0.074 lisi.wanger07-20T21:05:28 0 0 7 1 0 0.064 lisi.wanger107-20T21:05:28 0 0 0 1 0 0.063 lisi.ww07-20T21:05:28 0 0 38 1 0 0.070 lisi.yb_account_log07-20T21:05:28 0 0 35
11、 1 0 0.071 lisi.yb_ad07-20T21:05:28 0 0 0 1 0 0.143 lisi.yb_ad_custom07-20T21:05:29 0 0 28 1 0 0.065 lisi.yb_ad_position07-20T21:05:29 0 0 109 1 0 0.039 lisi.yb_admin_action07-20T21:05:29 0 0 9587 1 0 0.375 lisi.yb_admin_log可以看出lisi.haowutest 有記錄數(shù)不一致 上去看看是不是這樣rootmysql2 data# mysql -phaowu123mysql&g
12、t; select count(*) from lisi.haowutest;+-+| count(*) |+-+| 7676940 |+-+1 row in set (10.35 sec)rootdbserver1 data# mysql -phaowu123mysql> select count(1) from lisi.haowutest;+-+| count(1) |+-+| 7676632 |+-+1 row in set (7.22 sec)果然不一致6 修復(fù)rootmysql2 data# pt-table-sync -print -sync-to-master h=192
13、.168.186.140,D=lisi,t=haowutest -uopt -p123 查看下解釋:pt-table-sync -print -sync-to-master h=,D=test,t=test1 -uxxx -p123(其中這個xxx用戶密碼要機(jī)能登錄到master也能登錄到slave,需要的權(quán)限select,super,replication client,process) 修復(fù)從庫上test庫的test表上的數(shù)據(jù) 如果把-print換成-execute則是直接執(zhí)行 建議先用-print保存下看看再-exec
14、ute 這樣看到sql執(zhí)行比較放心可以打開gengral log很容易看到master和slave上執(zhí)行的操作,分別去一段段的數(shù)據(jù)做對比校驗 ,有不同的立刻用replace into在master去執(zhí)行rootmysql2 data# pt-table-sync -execute -sync-to-master h=40,D=lisi,t=haowutest -uopt -p123 這就是修復(fù)了話雖如此但是要是不行的話 還是在兩邊都授個全部權(quán)限吧mysql> grant all on *.* to we'%' identified b
15、y '123'Query OK, 0 rows affected (0.03 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> qByerootmysql2 data# pt-table-sync -execute -sync-to-master h=38,h=40,D=lisi,t=haowutest -uwe -p123OK 至此結(jié)束rootdbserver1 data# mysql -phaowu123mysql>
16、; select count(*) from lisi.haowutest;+-+| count(*) |+-+| 7676940 |+-+1 row in set (7.25 sec)rootmysql2 data# mysql -phaowu123mysql> select count(*) from lisi.haowutest;+-+| count(*) |+-+| 7676940 |+-+1 row in set (7.25 sec)修復(fù)完成7 命令詳解不指定任何參數(shù),會直接對本地的所有數(shù)據(jù)庫的表進(jìn)行檢查。pt-table-checksum S /tmp/mysqld.sock
17、 u=root,p=123456注意:1、 根據(jù)測試,需要一個既能登錄主庫,也能登錄從庫,而且還能同步數(shù)據(jù)庫的賬號;2、 只能指定一個host,必須為主庫的IP;3、 在檢查時會向表加S鎖;4、 運行之前需要從庫的同步IO和SQL進(jìn)程是YES狀態(tài)。GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO checksumsx.x.x.x IDENTIFIED BY xxxx;執(zhí)行檢測(MASTER上):pt-table-checksum -nocheck-replication-filte
18、rs -replicate=test.checksum -databases=test h=35,u=root,p=123 -empty-replicate-table -create-replicate-table TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE09-18T12:03:16 0 1 5 1 0 0.018 test.t1參數(shù)說明:TS :完成檢查的時間。ERRORS
19、 :檢查時候發(fā)生錯誤和警告的數(shù)量。DIFFS :0表示一致,1表示不一致。當(dāng)指定-no-replicate-check時,會一直為0,當(dāng)指定-replicate-check-only會顯示不同的信息。ROWS :表的行數(shù)。CHUNKS :被劃分到表中的塊的數(shù)目。SKIPPED :由于錯誤或警告或過大,則跳過塊的數(shù)目。TIME :執(zhí)行的時間。TABLE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年五股東共同投資協(xié)議文本
- 2025年新型可控氣氛爐項目申請報告模稿
- 2025年醫(yī)療行業(yè)信息共享合同樣式
- 2025年創(chuàng)意企業(yè)合作協(xié)議標(biāo)準(zhǔn)文本
- 2025年分期付款合同服務(wù)全方位指南
- 2025年供應(yīng)商與采購商海鮮交易合同
- 2025年酸堿平衡調(diào)節(jié)藥項目規(guī)劃申請報告
- 2025年廢棄土地資源化合同
- 2025年專利申請買賣雙方協(xié)議
- 2025年人才選拔與委托合作協(xié)議標(biāo)準(zhǔn)文本
- 教科版小學(xué)科學(xué)五年級【上冊】全冊教案
- 車間消防安全知識培訓(xùn)課件
- 勞動法概述勞動法與新經(jīng)濟(jì)業(yè)態(tài)的結(jié)合
- 孤殘兒童護(hù)理員兒童護(hù)理工作基礎(chǔ)知識課件
- 九年級短跑2 公開課教學(xué)設(shè)計
- 美學(xué)原理全套教學(xué)課件
- 平衡計分卡-化戰(zhàn)略為行動
- 腦卒中后認(rèn)知障礙的護(hù)理課件
- 課堂精練九年級全一冊數(shù)學(xué)北師大版2022
- 著衣母嬰臥像教學(xué)設(shè)計
- 維克多高中英語3500詞匯
評論
0/150
提交評論