MYSQL 复制数据过滤

今天公司有个需求:就是对指定的数据表做主从复制,但是这个表每周都会生成一个

在主库上每周生成一个表名:money_change_20191021 这样的格式。然后需求只对:money_change 开头的表进行复制,其它表不复制。

办法一:不支持通配符:

replicate-do-db    设定需要复制的数据库(多数据库使用逗号,隔开) 不支持通配符

replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table  设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表 

replicate-do-table=ios_logs.money_change_%   

可以支持,但是不能识别通配符,只支持全名表名称 像:replicate-do-table=ios_logs.money_change_1

办法二:支持通配符

replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符
replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符

replicate-wild-do-table=ios_logs.money_change_%

可以支持,能很好的识别。

办法三:

支持热修改:CHANGE REPLICATION FILTER  replicate_wild_do_table=('ios_logs.money_change_%');

猜你喜欢

转载自www.cnblogs.com/webnginx/p/11772937.html