通過上面pt-table-checksums找到了這些不一致的數據表
(https://blog.51cto.com/li02yu/2340403)
,如何同步數據呢?即如何修復MySQL主從不一致的數據,讓他們保持一致性呢?利用另外一個工具 pt-table-sync。
使用方法:
瑤海網站建設公司創新互聯,瑤海網站設計制作,有大型網站制作公司豐富經驗。已為瑤海成百上千提供企業網站建設服務。企業網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的瑤海做網站的公司定做!
pt-table-sync [OPTIONS] DSN [DSN]
pt-table-sync: 高效的同步MySQL表之間的數據,他可以做單向和雙向同步的表數據。他可以同步單個表,也可以同步整個庫。它不同步表結構、索引、或任何其他模式對象。所以在修復一致性之前需要保證他們表存在。
通過(--print)打印出來修復一個表數據的sql語句
[lxh@MySQL-01 ~]# pt-table-sync --print --databases=test --table=test1 --sync-to-master h='172.31.153.164',u='lxh',p='Mysql.163',P=3306
通過(--print)打印出來修復一個庫數據的sql語句
[lxh@MySQL-01 ~]# pt-table-sync --print --databases=test --sync-to-master h='172.31.153.164',u='lxh',p='Mysql.163',P=3306
通過(--print)打印出來修復所有數據庫的sql語句(不建議這樣使用)
[lxh@MySQL-01 ~]# pt-table-sync --print --sync-to-master h='172.31.153.164',u='lxh',p='Mysql.163',P=3306
參數的意義:
復制代碼
--replicate= :指定通過pt-table-checksum得到的表,這2個工具差不多都會一直用。不指定,則使用默認的
--databases= : 指定執行同步的數據庫,多個用逗號隔開。
--tables= :指定執行同步的表,多個用逗號隔開。
--sync-to-master :指定一個DSN,即從的IP,他會通過show processlist或show slave status 去自動的找主。
h=172.31.153.164 :服務器地址,Slave的地址。
u=lxh :帳號。
p=Mysql.163 :密碼。
--print :打印,但不執行命令。
--execute :執行命令。
一起解釋下執行的效果:通過(--print)打印出來了修復數據的sql語句,可以手動的去從行執行,讓他們數據保持一致性。那能否直接執行?當然可以,通過(--execute)
[lxh@MySQL-01 ~]# pt-table-sync h=172.31.153.164,u=lxh,p=Mysql.163 --execute
沒發現任何異常,然后檢查主從數據的一致性:
[lxh@MySQL-01 ~]# pt-table-checksum -u'lxh' -p'Mysql.163' -h272.31.153.163 --databases=test --nocheck-binlog-format --nocheck-plan --nocheck-replication-filters --recursion-method=processlist
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
04-13T16:27:28 0 0 3 1 0 0.097 test.test1
OK,數據已經保持一致了。不過建議還是用--print 打印出來的好,這樣就可以知道那些數據有問題,可以人為的干預下。不然直接執行了,出現問題之后更不好處理??傊€是在處理之前做好數據的備份工作。
注意:要是表中沒有唯一索引或則主鍵則會報錯:
Can't make changes on the master because no unique index exists at /usr/local/bin/pt-table-sync line 10591.
需要給表添加主鍵或唯一索引即可
網頁題目:percona-toolkit之pt-table-sync
分享網址:http://vcdvsql.cn/article32/podcpc.html
成都網站建設公司_創新互聯,為您提供靜態網站、面包屑導航、企業建站、網站設計、電子商務、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯