Monday, January 4, 2010

maatkit mk-table-sync note

@ECHO OFF

echo [START] %DATE% %TIME%

:: To sync db.tbl1 from host1 to host2:

::  mk-table-sync --execute u=user,p=pass,h=host1,D=db,t=tbl host2

:: Sync all tables in host1 to host2 and host3:

::  mk-table-sync --execute host1 host2 host3

:: 語法上基本上有幾種
:: 第一種: u=,p=h=,D=DB_NAME,t=TABLE_NAME
:: - 兩邊的 database name 可以不一樣。
:: - 但 一次 只能 指定 一個 table name.

:: 第二種: --databases db1,db2,db3,dbMore
:: - 要確定兩邊的 database name MUST be the same. 因為它沒有辦法 指定 別的 database name.
:: - 要確定兩邊的 table structure 要一模一樣。如果說,你後來在主資料庫有新增 table,或 alter table 的話,你得確保要在要 sync 的 server 做同樣的 table 改動。
:: - 範例: mk-table-sync u=myName,p=myPass,h=192.168.1.15 u=myName,p=myPass,h=localhost --charset utf8 --execute --verbose --databases test3,test2 

:: 第三種: --databases test3 --tables member,asdf,asdf2
:: - 要確定兩邊的 database name MUST be the same. 因為它沒有辦法 指定 別的 database name.
:: - 這一種的話,可以讓你 指定 哪些 tables 要 sync.
:: - 範例: mk-table-sync u=myName,p=myPass,h=192.168.1.15 u=myName,p=myPass,h=localhost --charset utf8 --execute --verbose --databases test3 --tables tb1,tb2,tb3 

:: Useful parameters:
:: --print
:: --verbose
:: --execute
:: --databases
:: --tables
:: --ignore-columns
:: --ignore-databases
:: --ignore-engines
:: --ignore-tables
:: --charset utf8 

perl C:\maatkit-5240\bin\mk-table-sync u=myName,p=myPass,h=192.168.100.156 u=myName,p=myPass,h=localhost --print --verbose --databases db_name

:: perl C:\maatkit-5240\bin\mk-table-sync u=myName,p=myPass,h=111.83.37.224 u=myName,p=myPass,h=localhost --charset utf8 --execute --verbose --databases db_name

echo [END] %DATE% %TIME%

PAUSE

No comments: