作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL**(本章节)**
PostgreSQL
MongoDB
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\G
2.停止从库复制
在从库执行。
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
通过配置延迟同步,我们可以可以更好的防止误删除数据和更新,但是要注意,如果只有一个从节点是不建议设置延迟同步,因为设置了延迟同步无法将从节点提升为主节点。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。