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

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL(本章节)
PostgreSQL
Redis
Etcd
上个小节我们使用Binlog恢复了删除的数据,虽然恢复过程很简单,但是从Binlog日志解析数据还是一个比较难的操作,尤其是数据复杂的情况下,今天我们通过延迟同步的方法来恢复数据。
MySQL 延迟主从同步(Delayed Replication)允许从库故意滞后于主库一段时间,用于应对误操作、数据恢复等场景。以下为配置步骤。
一.新集群搭建
添加了最后一个参数用于指定延迟时间,具体根据需要选择合适的时间。其他步骤可参考历史文章。
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.检查当前主从状态
在主库和从库执行,确保主从同步正常。
SHOW MASTER STATUS;
SHOW SLAVE STATUS\G2.停止从库复制
在从库执行。
STOP SLAVE;3. 配置延迟时间
设置从库延迟 N 秒(示例为 1 小时)。
CHANGE MASTER TO MASTER_DELAY = 3600;4. 验证延迟配置
检查 SHOW SLAVE STATUS 输出中的:
SQL_Delay: 配置的延迟时间SQL_Remaining_Delay: 剩余延迟时间(执行事务时显示)三.配置文件里面定义
[mysqld]
master-info-repository = TABLE
relay-log-info-repository = TABLE
master_delay = 3600通过配置延迟同步,我们可以可以更好的防止误删除数据和更新,但是要注意,如果只有一个从节点是不建议设置延迟同步,因为设置了延迟同步无法将从节点提升为主节点。