本文介紹如何使用CHANGE REPLICATION FILTER語句修改主從複製鏈路的過濾配置文法。
文法
CHANGE REPLICATION FILTER option [, option] ... [ channel_option ]
option: {
REPLICATE_DO_DB = (do_db_list)
| REPLICATE_IGNORE_DB = (ignore_db_list)
| REPLICATE_DO_TABLE = (do_table_list)
| REPLICATE_IGNORE_TABLE = (ignore_table_list)
| REPLICATE_WILD_DO_TABLE = (wild_do_table_list)
| REPLICATE_WILD_IGNORE_TABLE = (wile_ignore_table_list)
| REPLICATE_SKIP_TSO = 'tso_num'
| REPLICATE_SKIP_UNTIL_TSO = 'tso_num'
| REPLICATE_ENABLE_DDL = {TRUE|FALSE}
}
channel_option:
FOR CHANNEL channel注意事項
PolarDB-X的5.4.19及以上版本的執行個體支援該SQL。
執行CHANGE REPLICATION FILTER需要為當前執行個體的高許可權帳號。
帶channel_option表示只對名字為 'channel' 的主從複製鏈路生效,不帶channel option表示對該執行個體所有的主從複製鏈路生效。
執行上述SQL需要對應生效的主從複製鏈路處於非運行狀態,可先使用STOP SLAVE語句暫停對應的鏈路。
參數說明
REPLICATE_SKIP_TSO:跳過該TSO對應的binlog event,TSO相關介紹請參見分散式交易。
REPLICATE_SKIP_UNTIL_TSO:跳過該TSO之前所有的binlog event(不包含該TSO)。
REPLICATE_ENABLE_DDL:是否同步DDL,預設為TRUE。
以下參數說明請參見CHANGE REPLICATION FILTER。
REPLICATE_DO_DB
REPLICATE_IGNORE_DB
REPLICATE_DO_TABLE
REPLICATE_IGNORE_TABLE
REPLICATE_WILD_DO_TABLE
REPLICATE_WILD_IGNORE_TABLE
樣本1
執行以下語句,可修改複製鏈路,只同步庫TEST內的變更。
CHANGE REPLICATION FILTER REPLICATE_DO_DB=(TEST);樣本2
TSO擷取
執行SHOW BINLOGS EVENTS語句擷取對應binlog event的TSO,返回樣本如下:

其中INFO列中以CTS:: 開頭的數字串即為該event對應的TSO。
跳過TSO對應的event
執行以下語句,可修改複製鏈路,跳過TSO:716669064683978758416977558623632834560000000000000000對應的binlog event,即上圖中POS=372的binlog event。
CHANGE REPLICATION FILTER REPLICATE_SKIP_TSO='716669064683978758416977558623632834560000000000000000';更多內容請參見CHANGE REPLICATION FILTER。