利用pt-table-sync進行資料不一致修復
【前言】mysql由於軟體本身的靈活性導致了可能主從資料庫已經不一致了,但是資料庫的主從監控卻是正常的,前面已經介紹過pt-table-checksum工具可以檢驗出主從表中不一致的資料。
解決問題的能力比發現問題的能力更重要。本文件將介紹透過pt-table-sync處理主從資料庫不一致的問題;
【說明】實驗的環境和上次進行校驗的環境和測試關聯,測試之前請部署好環境;
【注意事項】pt-table-sync需要在從資料庫上面進行執行
【使用說明】使用print引數,他會在螢幕顯示修復的SQL語句。然後可以手工確認並執行。
指令碼【1】 基於checksums資訊對Slave 192.168.47.165同步testdb.john表資料
pt-table-sync --print --replicate=test.checksums --databases=test --tables=john --sync-to-master h=192.168.47.165,u=root,p=123456 percona-toolkit src_db:test src_tbl:john src_dsn:P=3306,h=192.168.47.167,p=...,u=root dst_db:test dst_tbl:john dst_dsn:P=3306,h=192.168.47.165,p=...,u=root lock:1 transaction:1 changing_src:1 replicate:0 bidirectional:0 pid:28054 user:root host:mysql02*/; |
指令碼【2】 全量同步修復Slave的testdb.john表資料
[root@mysql02 bin]# pt-table-sync --print --sync-to-master h=192.168.47.165,P=3306,u=root,p=123456 --database test --tables=john REPLACE INTO `test`.`john`(`id`) VALUES ('5') /* percona-toolkit src_db:test src_tbl:john src_dsn:P=3306,h=192.168.47.167,p=...,u=root dst_db:test dst_tbl:john dst_dsn:P=3306,h=192.168.47.165,p=...,u=root lock:1 transaction:1 changing_src:1 replicate:0 bidirectional:0 pid:28054 user:root host:mysql02*/; |
指令碼【3】直接同步主從資料庫test
[root@mysql02 bin]# pt-table-sync --print --sync-to-master h=192.168.47.165,P=3306,u=root,p=123456 --database test
|
以上的指令碼中可以把--print替換成—execute,直接進行主從的資料庫修復;
【注】用pt-table-sync修復的時候,必須保證被replace的表上有主鍵或唯一鍵,否則就會報以下的錯誤
Can't make changes on the master because no unique index exists at /usr/bin/pt-table-sync line 10655. while doing test.john on 192.168.47.165 |
總結:pt-table-checksum 和 pt-table-sync 一起構成了mysql主從資料一致監控的兩把利器,pt-table-sync在進行--execute的時候需要小心,一般情況都是進行print相應的sql語句,然後再到從資料庫執行。
........................................................................................................................................................................
本文作者:JOHN,某上市公司DBA,業餘時間專注於資料庫的技術管理,從管理的角度去運用技術。
ORACLE技術部落格:ORACLE 獵人筆記 資料庫技術群:367875324 (請備註ORACLE管理 )
........................................................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29819001/viewspace-1464124/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pt-table-checksum校驗主從一致性,使用pt-table-sync修復資料不一致
- 利用undo進行資料的恢復操作
- ORACLE利用STANDBY端RMAN備份進行資料恢復Oracle資料恢復
- MySQL MGR如何修復資料不一致的節點MySql
- 利用WebClient進行資料抓取Webclient
- 利用RMAN修復資料檔案中的壞塊
- 《RedHatlinux系統修復(通過FTP進行修復)》RedhatLinuxFTP
- 資料庫修復資料恢復資料庫資料恢復
- 利用Kettle進行資料同步(下)
- 利用PCA進行資料降維PCA
- 利用Kettle進行資料同步(上)
- 利用jmeter進行資料庫測試JMeter資料庫
- 勒索病毒資料修復恢復
- 利用Tushare資料介面+pandas進行股票資料分析
- Firebird資料庫修復資料庫
- Interbase資料庫修復資料庫
- 薦書 | 《利用Python進行資料分析》Python
- 【譯文】利用dplyr包進行資料操作
- 模擬利用MV進行資料遷移
- Mysql 誤刪資料進行恢復MySql
- sql對錶資料進行復制SQL
- 利用Python Pandas進行資料預處理-資料清洗Python
- 資料庫複製方式進行資料庫恢復資料庫
- 只有.dbf資料檔案進行資料庫恢復資料庫
- 利用binlog進行資料庫的還原資料庫
- 利用Log Explorer將你已經delete,truncate,drop過的資料進行恢復delete
- 如何修復mysql資料庫MySql資料庫
- 模擬修復AD資料
- 小資料:ASPr API修復API
- mysql使用binlog進行資料恢復MySql資料恢復
- 如何利用第三方資料進行大資料分析大資料
- MySQL主從不一致的修復過程MySql
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- 【DG】利用閃回資料庫(flashback)修復Failover後的DG環境資料庫AI
- 利用mysql slave 修復master MyISAM tableMySqlAST
- Backup And Recovery User's Guide-RMAN資料修復概念-RMAN資料修復技術GUIIDE
- 利用Data Vault對資料倉儲進行建模(二)
- 利用SSIS進行SharePoint 列表資料的ETL