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