MySQL主从复制是逻辑复制,基于Binlog进行主从数据传输,MySQL提供了丰富的参数来配置主从复制过滤条件。在主库可以设置对于库的数据写入是否写入binlog,在从库可以设置对某些库或者表的binlog是否忽略。本文将简单描述MySQL主从复制过滤的相关参数和常见用法。
原文地址:
https://mytecdb.com/blogDetail.php?id=88
- MySQL版本:5.7.19
- binlog_format:ROW
1. 是否写入binlog
MySQL通过以下两个参数来控制某些库是否写入binlog。
- –binlog-do-db=db_name
- –binlog-ignore-db=db_name
–binlog-do-db 指定的库名,其内部表数据修改都会写入binlog。
–binlog-ignore-db 指定的库名,其内部表数据修改将不会写入binlog。
这两个参数修改需要重启MySQL,无法动态修改,另外在show global variables 的结果中也无法显示这两个参数。
2. SQL线程过滤日志
从库复制的SQL线程从relay log里读日志,并应用日志,通过设置如下参数,可以控制SQL线程根据库名或表名过滤日志。
- –replicate-ignore-db=db_name
- –replicate-ignore-table=db_name.tbl_name
- –repli