数据库
首页 > 数据库> > 【MySQL】MySQL复制过滤最佳实践

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

标签:do,db,过滤,replicate,复制,MySQL,table,级别
来源: https://www.cnblogs.com/abclife/p/16475790.html