微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【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中的过滤,要谨慎使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐