MySQL复制过滤:Linux-Tutorial中的binlog_do_db配置

MySQL复制过滤:Linux-Tutorial中的binlog_do_db配置

【免费下载链接】Linux-Tutorial Linux-Tutorial是一个Linux系统教程,适合用于学习和掌握Linux命令行操作和系统管理技能。特点:内容详细、实例丰富、适合入门。 【免费下载链接】Linux-Tutorial 项目地址: https://gitcode.com/gh_mirrors/li/Linux-Tutorial

数据库同步是业务高可用架构的核心环节,但生产环境中常面临"全库同步导致资源浪费"的痛点。本文基于Linux-Tutorial项目中的my-for-master.cnf配置文件,详解如何通过binlog_do_db参数实现精准数据同步,解决"只同步核心业务库"的实际需求。

复制过滤的应用场景

在电商系统中,订单库与商品库通常需要实时同步,但日志库和测试库则无需同步。若采用全库复制,会导致从库存储占用增加40%以上,且同步延迟风险升高。通过binlog_do_db配置可实现:

  • 核心业务库实时同步
  • 非关键数据过滤传输
  • 从库资源定向分配

配置文件解析

Linux-Tutorial提供的主库配置文件位于favorite-file/MySQL-Settings/MySQL-5.6/1G-Memory-Machine/my-for-master.cnf,其中与复制相关的核心参数包括:

# 主库唯一标识
server-id = 1
# 开启二进制日志
log-bin = /usr/program/mysql/data/mysql-bin
# 二进制日志格式
binlog-format = mixed
# 日志自动过期时间
expire_logs_days = 30

binlog_do_db参数配置

基础语法

在[mysqld]模块添加:

# 只记录指定数据库的binlog
binlog_do_db = order_db
binlog_do_db = product_db

配置注意事项

  1. 多库配置:需为每个数据库单独添加一行配置
  2. 大小写敏感:Linux系统下数据库名区分大小写
  3. 优先级规则:binlog_ignore_db优先级高于binlog_do_db

配置验证与生效

查看当前配置

登录MySQL执行:

show variables like 'binlog_do_db';

配置重载

修改配置后无需重启服务,执行:

flush privileges;
flush logs;

从库过滤配置补充

虽然项目中未提供从库过滤配置示例,但可在从库my.cnf中添加:

# 从库只同步指定数据库
replicate_do_db = order_db
replicate_do_db = product_db

常见问题排查

同步异常排查流程

  1. 检查主库binlog生成:show master status;
  2. 验证从库IO线程状态:show slave status\G
  3. 查看过滤规则应用:show variables like '%do_db%'

典型错误案例

问题现象:配置binlog_do_db后从库仍同步全库
原因分析:未重启MySQL服务或未刷新日志
解决方案:执行service mysql restartflush logs

配置文件完整路径

通过合理配置binlog_do_db参数,可使数据库同步效率提升30%以上,同时降低从库存储压力。建议结合业务实际需求定期审查过滤规则,确保数据同步的精准性和高效性。

【免费下载链接】Linux-Tutorial Linux-Tutorial是一个Linux系统教程,适合用于学习和掌握Linux命令行操作和系统管理技能。特点:内容详细、实例丰富、适合入门。 【免费下载链接】Linux-Tutorial 项目地址: https://gitcode.com/gh_mirrors/li/Linux-Tutorial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值