MySQL 延时从库
简介:
MySQL 延时从库 (Delayed Replica) 是 MySQL 5.6 之后引入的特性。
它可以用于减轻主库的负担,以及处理那些对延迟敏感的任务,如 schema 变更或其它的数据操作。Delayed Replica 会在主库执行完数据变更后延迟一段时间再将这些变更同步到从库,以达到降低主库压力、放大数据时效性或优化从库性能的目的。
延迟从库常见用途有:
隔离主库写压力
在一些场景下,主库的写压力过大,导致主库负载不均衡,延迟从库可以将部分读流量转移到从库,从而优化整个系统的读写负载均衡。
针对读优化应用,提供极高的查询性能
有些数据系统对读操作具有更高的频率和复杂度,这时候通过延迟从库可以提供更快速的查询响应时间。
支持故障恢复
如果出现错误,延迟从库提供了回退到过去时间的独特方法,并能够在主库遭受攻击的情况下,帮助保持数据的完整性和可用性。
配置延时从库
# 停服务
mysql>stop slave;
# 设置延时时间
mysql>CHANGE MASTER TO MASTER_DELAY = 300;
# 启动服务
mysql>start slave;
# 查看详情
mysql>show slave status \G
SQL_Delay: 300
SQL_Remaining_Delay: 288
# 注
SQL_Delay是最大延时时间
SQL_Remaining_Delay是当前还剩多少延时时间(类似倒计时)
最大延时时间一般建议在3-6小时,具体看公司对于故障的反应以及业务方面相关的设置
注意:
使用延迟从库可能会安全性上的隐患,这时候需要对该数据进行严格的监控,以使操作尽可能的在可控之内。
与传统的 MySQL 从库相比,MySQL 延时从库是一个非常有用的工具,可以在某些情况下提高读写性能和更好地管理数据库。但是需要注意的是,如果使用不当,可能会导致数据不一致和安全性问题。因此,它应该只在必要时使用,并根据实际情况进行谨慎调整和监控。