MySql教程

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

这篇关于【MySQL】MySQL复制过滤最佳实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!