首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MYSQL 延迟同步(Delayed Replication)

MYSQL 延迟同步(Delayed Replication)

作者头像
运维小路
发布2026-01-26 11:48:11
发布2026-01-26 11:48:11
920
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL(本章节)

PostgreSQL

MongoDB

Redis

Etcd

上个小节我们使用Binlog恢复了删除的数据,虽然恢复过程很简单,但是从Binlog日志解析数据还是一个比较难的操作,尤其是数据复杂的情况下,今天我们通过延迟同步的方法来恢复数据。

MySQL 延迟主从同步(Delayed Replication)允许从库故意滞后于主库一段时间,用于应对误操作、数据恢复等场景。以下为配置步骤。

一.新集群搭建

添加了最后一个参数用于指定延迟时间,具体根据需要选择合适的时间。其他步骤可参考历史文章。

代码语言:javascript
复制
CHANGE MASTER TO
  MASTER_HOST='master_host_name',
  MASTER_USER='replication_user',
  MASTER_PASSWORD='replication_password',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='recorded_log_file_name',
  MASTER_LOG_POS=recorded_log_position,
  MASTER_DELAY = 3600;  -- 延迟1小时(单位:秒)

二.历史主从搭建

1.检查当前主从状态

在主库和从库执行,确保主从同步正常。

代码语言:javascript
复制
SHOW MASTER STATUS;
SHOW SLAVE STATUS\G

2.停止从库复制

在从库执行。

代码语言:javascript
复制
STOP SLAVE;

3. 配置延迟时间

设置从库延迟 N 秒(示例为 1 小时)。

代码语言:javascript
复制
CHANGE MASTER TO MASTER_DELAY = 3600;

4. 验证延迟配置

检查 SHOW SLAVE STATUS 输出中的:

  • SQL_Delay: 配置的延迟时间
  • SQL_Remaining_Delay: 剩余延迟时间(执行事务时显示)

三.配置文件里面定义

代码语言:javascript
复制
[mysqld]
master-info-repository = TABLE
relay-log-info-repository = TABLE
master_delay = 3600

通过配置延迟同步,我们可以可以更好的防止误删除数据和更新,但是要注意,如果只有一个从节点是不建议设置延迟同步,因为设置了延迟同步无法将从节点提升为主节点。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档