全部產品
Search
文件中心

PolarDB:CHANGE REPLICATION FILTER

更新時間:Dec 10, 2024

本文介紹如何使用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,返回樣本如下:

image

其中INFO列中以CTS:: 開頭的數字串即為該event對應的TSO。

跳過TSO對應的event

執行以下語句,可修改複製鏈路,跳過TSO:716669064683978758416977558623632834560000000000000000對應的binlog event,即上圖中POS=372的binlog event。

CHANGE REPLICATION FILTER REPLICATE_SKIP_TSO='716669064683978758416977558623632834560000000000000000';

更多內容請參見CHANGE REPLICATION FILTER