在从库设置固定延迟时间(如 1 小时),使其数据状态滞后主库指定窗口。非故障,而是刻意配置的保护机制。
-- 登录从库
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_DELAY = 3600; -- 单位:秒
mysql> START SLAVE;
-- 验证
mysql> SHOW SLAVE STATUS\G
# SQL_Delay: 3600
# SQL_Remaining_Delay: 当前剩余延迟秒数
开发/运维误执行 DROP TABLE、DELETE 无 WHERE、UPDATE 全表等破坏性操作:
SQL_Delay:配置的固定延迟秒数。SQL_Remaining_Delay:当前剩余等待秒数,0 表示正在追赶或已追平。Slave_SQL_Running_State:显示 Waiting until MASTER_DELAY seconds after master executed event 确认延迟生效。binlog_format=ROW 推荐,减少延迟复制时的冲突。主库 (实时写入)
│
├─→ 从库 A (实时同步,提供读服务)
│
└─→ 从库 B (延迟 1h,仅做闪回/审计/压测,不承担业务读流量)
延迟从库与实时从库共存,互不干扰,各司其职。