CHANGE REPLICATION FILTER

本文介绍如何使用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