pt-table-sync常用参考
pt-table-sync是解決主從數據不一致的絕佳工具,也可也用于兩個不是主從數據庫之間數據同步,不能同步ddl,只能同步數據,以下為常用例子:
其中h=192.168.56.101為源端,h=192.168.56.102為目標端:
1.sync兩個獨立數據庫,無主從復制關系,同步數據庫中所有的表,并排除特定數據庫:
pt-table-sync --charset=utf8 --ignore-databases=mysql,sys u=admin,p=admin,h=192.168.56.101,P=3306 dsn=u=admin,p=admin,h=192.168.56.103,P=3306 --execute --print
如果為主從可以使用--no-check-slave 忽略主從關系,建議先使用--print查看有哪些不一致,然后使用--execute進行同步:
打印出不一致數據:
pt-table-sync --charset=utf8 --ignore-databases=mysql,sys --no-check-slave u=admin,p=admin,h=192.168.56.101,P=3306 dsn=u=admin,p=admin,h=192.168.56.102,P=3306 --print
同步數據并打印出同步語句:
pt-table-sync --charset=utf8 --ignore-databases=mysql,sys --no-check-slave u=admin,p=admin,h=192.168.56.101,P=3306 dsn=u=admin,p=admin,h=192.168.56.102,P=3306 --execute --print
只對指定的庫進行數據sync:
pt-table-sync --charset=utf8 --ignore-databases=mysql,sys --databases=data u=admin,p=admin,h=192.168.56.101,P=3306 dsn=u=admin,p=admin,h=192.168.56.102,P=3306 --execute --print
只對指定的表進行數據sync,多個表用逗號隔開:
pt-table-sync --charset=utf8 --ignore-databases=mysql,sys --databases=data --tables=t_shop_order,t_shop_order_detail u=admin,p=admin,h=192.168.56.101,P=3306 dsn=u=admin,p=admin,h=192.168.56.102,P=3306 --execute --print
--tables也可以使用數據庫名和表:
--tables=database_name.table_name
忽略某些庫或者忽略某些表
--ignore-databases=指定要忽略的庫
--ignore-tables=database_name.table_name 指定要忽略的表
3.如果是主從復制,可以加上--sync-to-master參數進行數據sync:
需要同步的表有主鍵或者唯一鍵,其中192.168.56.102為備庫:
pt-table-sync --sync-to-master --charset=utf8 --ignore-databases=mysql,sys u=admin,p=admin,h=192.168.56.102,P=3306 --execute --print
sync同步多個slave備庫,其中h=192.168.56.102,P=3306, h=192.168.56.103為備庫:
pt-table-sync --sync-to-master --charset=utf8 --ignore-databases=mysql,sys u=admin,p=admin,h=192.168.56.102,P=3306 , u=admin,p=admin,h=192.168.56.103,P=3306 --execute --print
4.pt-table-sync 幫助說明:
pt-table-sync --help
轉載于:https://blog.51cto.com/1937519/2332953
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的pt-table-sync常用参考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ECharts Tooltip
- 下一篇: java程序打包成exe安装包总结