一个客户的备份做得很规范,每日全量加日志,保留一个月。机房所在区域停电三天,服务器和备份一起失联。这时候才发现,所有备份都在同一个机房里,一份也拿不出来。
容灾分几个层级
最低一层是异地备份:数据复制到另一个城市,但系统不运行,出事时重建,恢复时间可能按天算。时间留足。中间一层是温备:另一地有环境但不承接流量,切换要几小时。最高一层是双活,两边同时跑。笔者跟同行聊过,做法大同小异。
选择哪一层取决于业务能承受多久中断。核心交易系统可能要双活,内部管理系统异地备份就够。全上双活的成本极高。多数企业并不需要。先想清楚能停多久,再决定花多少钱。纸面方案最坑的地方是没演练。
切换要能真的切过去
真正出事时,DNS怎么改以及数据库怎么提升为主跟缓存怎么清和证书是否有效,每一步都可能卡住。演练就是把这些坑提前踩掉。建议半年到一年做一次切换演练,选低峰时段,真的把流量切到备用环境跑一段时间再切回。接口谁来对?
演练记录要写下每一步的耗时和问题,逐步优化。第一次演练通常很狼狈,这很正常。异地同步最大的隐患是延迟。网络抖动、带宽不足跟复制中断。都会让两端数据不一致。切换时如果直接用了落后的数据,损失可能比不切还大。所以同步延迟要监控,超阈值要报警。
数据同步要盯着延迟
还要注意脑裂。两端都以为自己是主库,写入各自的数据,恢复时无法合并。所以切换要有明确的决策机制:谁有权决定切换、切换前必须确认原端已停止写入。末了提醒:容灾的可靠性不在方案文档里,在演练记录里。没跑过的切换,只能算设想。自己人学得会吗?
异地容灾的常见疑问
备份和容灾有什么区别
备份解决数据可恢复,容灾解决系统能继续运行,两者目标和恢复时间不同。
容灾必须做双活吗
不必。按业务可承受的中断时间选择异地备份、温备或双活,双活成本最高。
多久演练一次
建议半年到一年一次实际切换演练,记录各步骤耗时并持续优化。
另外要把切换权限写清楚。慌乱中谁都以为别人在决策,结果半小时没人拍板,损失一直在扩大。预案里必须有明确的责任人。
总结:容灾要按业务定层级。异地存数据、切换能跑通以及同步盯延迟,才叫有容灾。