【MySQL】MySQL复制过滤最佳实践


MySQL为复制提供了三个级别的过滤设置:binary log级别、数据库级别、表级别。

binary log级别过滤在应用在master端,控制了日志的变更。因为MySQL复制是基于binarylog的,索引binarylog是第一级别过滤,具有最高的优先级。而数据库级别和表级别是应用在slave端,因为每个表都属于一个schema,所以数据库级别过滤的优先级大于表级别。

优先级比较:

binarylog级别>数据库级别>表级别

  

表级别过滤涉及的参数有:

–replicate-do-table, –replicate-ignore-table , –replicate-wild-do-table , –replicate-wild-ignore-table

  

以下是复制过滤设置的建议:
1.不要在binarylog级别做复制过滤,除非你真的需要,且能承受数据丢失的风险。
2.数据库级别复制过滤,要么使用–replicate-do-db和–replicate-ignore-db其中一个选项,要么都不用使用;千万不要同时使用这两个选项
3.当binlog_format设置成statement或者mixed,且在slave端使用了–replicate-do-db和–replicate-ignore-db其中一个选项,要确保不要在master端跨越default database修改表,否则可能会丢失数据
4.在表级别过滤时,只是用–replicate-do-db和–replicate-ignore-db其中一个选项,或者使用–replicate-ignore-table和—replicate-wild-do-table来避免冲突和混淆

对于MariaDB replication Galera cluster中的过滤,要谨慎使用。

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/274264.html

(0)
上一篇 2022年7月14日
下一篇 2022年7月14日

相关推荐

发表回复

登录后才能评论