MySQL主从忽略某个库

2017-07-21 10:32:17来源:oschina作者:庆沉人点击



忽略某个库的复制有两个参数:binlog_ignore_db,replicate-ignore-db
区别:
binlog_ignore_db参数是设置在主库上的,例如,binlog_ignore_db=test,那么针对test库下的所有操作都不会记录下来,
这样slave在接收主库的binlog时文件量就会减少,这样可以减少网络I/O,减少slave端I/O线程的I/O量,从而最大幅度优化复制性能,有隐患。
隐患:create table test.number3 like test.number;没有binlog日志记录,必须use test,然后再执行就可以了
replicate-ignore-db参数是设置在从库上的,例如,replicate-ignore-db=test,那么针对test库下的所有操作都不会被SQL线程执行,
在安全上可以保证master和slave数据的一致性。
如果想在slave上忽略一个库的复制,最好不要用binlog_ignore_db这个参数,使用replicate-ignore-db = yourdb取代之。
replicate_ignore_db也有隐患:原因是设置replicate_ignore_db后,MySQL执行sql前检查的是当前默认数据库,所以跨库更新语句在Slave上会被忽略。
可以在Slave上使用 replicate_wild_do_table 和 replicate_wild_ignore_table 来解决跨库更新的问题,如:
replicate_wild_do_table=test.%或replicate_wild_ignore_table=mysql.% 这样就可以避免出现上述问题了

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台