mysql 案例 ~ pt修复工具的使用
簡介:今天咱們來聊聊PT修復(fù)工具pt-table-sync
注意事項(xiàng):
? ?1 表要有主鍵或者唯一鍵
? ?2 針對每一個(gè)chunk加的是for update鎖
? ?3 修復(fù)過程中不能容忍從庫延遲 如果從庫延遲太多,pt-table-sync會長期持有對chunk的for update鎖,然后等待從庫的master_pos_wait執(zhí)行完畢或超時(shí)。從庫延遲越大,等待過程就越長,主庫加鎖的時(shí)間就越長,對線上影響就越大
? ?4 有觸發(fā)器和主外鍵約束的情況下要慎用
? ?5 主從數(shù)據(jù)不一致需要通過replace into來修復(fù),在主庫應(yīng)用生成binlog,并會應(yīng)用到所有從庫
? ?6 根據(jù)pt-table-checksum的表信息修復(fù)的,所以要先校驗(yàn)后修復(fù)
? ?7 pt-table-sync不會同步表結(jié)構(gòu)、索引等,只同步不一致的數(shù)據(jù)
用戶權(quán)限
? ?GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,SUPER ON db.* TO 'god'@'%' IDENTIFIED BY 'god'//修復(fù)的庫
相關(guān)參數(shù)
? ?–sync-to-master 指定一個(gè)DSN,即從的IP,他會通過show processlist或show slave status 去自動的找主。
? ?--unique-checks 唯一鍵檢測
? ?--print 進(jìn)行打印語句
? ?--execute 真正執(zhí)行
常用命令范式
? ?pt-table-sync --replicate test.checksums --sync-to-master --unique-checks h=從IP,P=3306,u=god,p=god --print 打印
? ?pt-table-sync --replicate test.checksums --sync-to-master --unique-checks h=從IP,P=3306,u=god,p=god --execute 執(zhí)行
解決思路
? 1 先用pt-table-checksum校驗(yàn)一遍,確定不一致的程度:如果不同步的很少,用pt-table-sync直接修復(fù);否則,用備份先替換它,然后用pt-table-sync修復(fù)
? 2 在用rsync工具修復(fù)的時(shí)候最好先print再execute或者手工對從庫執(zhí)行sql即可
補(bǔ)充
? 針對主從同步發(fā)生一些錯(cuò)誤的場景
? 1 pt-table-checksum 針對發(fā)生的表進(jìn)行校驗(yàn),最好采用DSNS
? 2 pt-table-sync 根據(jù)第一步的信息進(jìn)行修改,然后執(zhí)行sql
轉(zhuǎn)載于:https://www.cnblogs.com/danhuangpai/p/9178517.html
總結(jié)
以上是生活随笔為你收集整理的mysql 案例 ~ pt修复工具的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echart的进阶使用(option)
- 下一篇: 开发人员MySQL调优-理论篇