MySQL进阶运维与架构复制过滤器

举报
Ustinian_2022 发表于 2022/07/27 18:04:54 2022/07/27
【摘要】 31.7 添加复制过滤器在搭建MySQL的复制环境时,可以添加过滤器来指定复制哪些数据库和忽略哪些数据库,本节就简单介绍下如何为MySQL的复制过程添加过滤器。31.7.1 复制指定的数据库例如,只复制MySQL的goods数据库和order数据库。1.在主数据库过滤在主数据库的MySQL命令行执行如下命令。mysql> SET GLOBAL binlog-do-db=goods,order...

31.7 添加复制过滤器

在搭建MySQL的复制环境时,可以添加过滤器来指定复制哪些数据库和忽略哪些数据库,本节就简单介绍下如何为MySQL的复制过程添加过滤器。


31.7.1 复制指定的数据库

例如,只复制MySQL的goods数据库和order数据库。

1.在主数据库过滤

在主数据库的MySQL命令行执行如下命令。


mysql> SET GLOBAL binlog-do-db=goods,order;

也可以在my.cnf配置文件中进行配置。


binlog-do-db=goods,order

2.在从数据库过滤

在从数据库的命令行执行如下命令:


mysql> SET GLOBAL replicate-do-db=goods,order;

或者执行如下命令:


mysql> CHANGE REPLICATION FILTER REPLICATE-DO-DB=(goods, order);

也可以在my.cnf文件中进行如下配置:


replicate-do-db=goods,order;


31.7.2 忽略指定的数据库

例如,忽略MySQL中的goods数据库和order数据库。

1.在主数据库过滤

在主数据库的MySQL命令行执行如下命令:


mysql> SET GLOBAL binlog-ignore-db=goods,order;

也可以在my.cnf配置文件中进行如下配置:


binlog-ignore-db =goods,order

2.在从数据库过滤

在从数据库的命令行执行如下命令:


mysql> SET GLOBAL replicate-ignore-db=goods,order;

或者执行如下命令:


mysql> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(goods, order);

也可以在my.cnf文件中进行如下配置:


replicate-ignore-db =goods,order;


31.7.3 复制指定的数据表

例如,复制goods数据库下的t_goods数据表和t_goods_category数据表。

在从数据库的MySQL命令行执行如下命令:


mysql> SET GLOBAL replicate-do-table=goods.t_goods,goods.t_goods_category;

也可以执行如下命令:


mysql> CHANGE REPLICATION FILTER REPLICATE_DO_TABLE=( goods.t_goods,goods.t_goods_category);

在my.cnf文件中进行如下配置:


replicate-do-table=goods.t_goods,goods.t_goods_category

还可以使用replicate-wild-do-table选项指定复制的数据表,replicate-wild-do-table选项支持使用正则表达式来指定需要复制的数据表。


mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE =( goods.t_goods%);


31.7.4 忽略指定的数据表

例如,忽略goods数据库下的t_goods数据表和t_goods_category数据表。

在从数据库的MySQL命令行执行如下命令:


mysql> SET GLOBAL replicate-ignore-table=goods.t_goods,goods.t_goods_category;

也可以执行如下命令:


mysql> CHANGE REPLICATION FILTER REPLICATE_ IGNORE_TABLE=( goods.t_goods,goods.t_goods_category);

在my.cnf文件中进行如下配置:


replicate-ignore-table =goods.t_goods,goods.t_goods_category

还可以使用REPLICATE-WILD-IGNORE-TABLE选项指定忽略的数据表,该选项支持使用正则表达式来指定需要忽略的数据表。语法格式如下:


mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE =( goods.t_goods%);

注意:可以为过滤器指定通道。例如:


mysql> CHANGE REPLICATION FILTER REPLICATE-DO-DB=(goods, order) FOR CHANNEL ‘channel-name’;

关于MySQL复制过滤器的内容,读者也可以参考MySQL的如下官方地址,这里不再赘述。

·https://dev.mysql.com/doc/refman/8.0/en/using-system-variables.html

·https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html

·https://dev.mysql.com/doc/refman/8.0/en/change-replication-filter.html

·https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html

·https://dev.mysql.com/doc/refman/8.0/en/replication-rules.html

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。