MySQL复制过滤器的两种过滤方式是什么?
这篇文章我们来了解MySQL复制过滤器的相关内容,下文介绍了MySQL复制过滤器的两种过滤方式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
复制过滤器:仅复制有限一个或几个数据库相关的数据,而非所有;由复制过滤器进行;
有两种过滤方式,在主云服务器上进行过滤或者是在从服务器上进行过滤
(1) 主服务器上过滤
实现有选择的复制,只复制主节点上的一部分,从源头上选择几个库主节点过滤,写入二进制日志的时候有选择,影响其他库的时间点还原主服务器仅向二进制日志中记录有关特定数据库相关的写操作;
问题:其它库的time-point recovery将无从实现,影响其他库的时间点还原;
主节点上使用以下的选项,以下是黑白名单,同一库二者选其一即可
binlog_do_db= #白名单,向binlog中写入哪些库的二进制log,多个库名用逗号分隔
binlog_ignore_db=#黑名单,此处写入的库不记录二进制log,多个库用逗号隔开
但是这里有个问题是,如果某个库故障,要还原的时候就会出问题,所以一般不在主节点上过滤,主节点建议将所有的库都写入二进制日志。
(2) 从服务器上过滤
从服务器的SQL THREAD仅重放关注的数据库或表相关的事件,并将其应用于本地;
问题:会消耗更多的网络IO和磁盘IO;
重放库的选择:
Replicate_Do_DB=
Replicate_Ignore_DB=
重放表的选择:
Replicate_Do_Table=
Replicate_Ignore_Table=
这两个和上面两个类似,下面的表可以使用通配符
Replicate_Wild_Do_Table=
Replicate_Wild_Ignore_Table=
如果同一库既被允许,又被拒绝,则该库将被复制
例子
假设主服务器上有一个库为sunnydb,但是从服务器重放时不重放该数据库,因此在从服务器73上设定如下,
注意,设定前要先关闭slave进程
MariaDB [test2]> stop slave;
MariaDB [test2]> set @@global.Replicate_ignore_DB=sunnydb; #该参数建议写入配置文件,否则下次重启就会失效
那么在主服务器71上创建数据库sunnydb,该库的所有二进制信息都会被复制到从服务器的slave_log,但是都不会被从服务器73上的sql线程重放sunnydb库的数据。
看了以上关于Mysql复制过滤器简析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
以上就是关于MySQL复制过滤器的介绍,希望大家阅读完这篇文章能有所收获。最后,想要了解更多MySQL数据库的内容,大家可以继续浏览网络其他相关的文章。
文本转载自网络
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MySQL复制过滤器的两种过滤方式是什么?
本文地址: https://pptw.com/jishu/652011.html