1.
目标与总体架构规划
- 明确RPO(数据可接受丢失时间)与RTO(恢复时间目标):例如RPO=5分钟、RTO=30分钟。
- 定义主备模式(主在香港/备在台湾或双主多活):根据业务读写模式选定同步(低延迟短距离)或异步(跨域长距离)。
2.
资产盘点与分级定位
- 列出需备援的系统:数据库、文件存储、对象存储、配置/证书、应用镜像等。
- 按重要性分级(A:关键,B:重要,C:次要),为不同等级指定不同策略(例如A类采用实时复制,C类定时Rsnapshot)。
3.
网络互联与链路设计
- 选择专线或VPN:优先考虑专线/ MPLS / SD-WAN 或云厂商互联,保证带宽和稳定性。
- 配置BGP或动态路由,设置双路径冗余;启用QoS,确保复制流量优先级;测量RTT与抖动并记录基线值。
4.
存储同步:块与文件级最佳实践
- 块存储(数据库或虚拟机磁盘):若支持,启用存储层的复制(例如SAN复制、云盘跨区复制),配置一致性快照周期。
- 文件/共享:对小文件多变场景用rsync+inotify或rsync --delete定时任务;对大量对象推荐rclone或对象存储跨区复制(S3 Replication)。
5.
数据库复制实操 (以MySQL为例)
- 备份前准备:在主库执行一致性快照(FLUSH TABLES WITH READ LOCK 或使用Xtrabackup)。记录当前binlog位置或GTID。
- 配置从库:恢复快照到
台湾机房,从库配置replica设定(CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_LOG_FILE='xxx', MASTER_LOG_POS=1234 或使用MASTER_AUTO_POSITION=1)。
- 验证复制:SHOW SLAVE STATUS\G,确认Slave_IO_Running/Slave_SQL_Running均为Yes,延迟在可接受范围内;设置监控报警(延迟>RPO触发)。
6.
数据库复制实操 (PostgreSQL/其他)
- PostgreSQL:启用wal_level=replica,配置archive_mode和wal_log_hints(如需要)。在主库创建replication user,配置standby.signal并使用pg_basebackup初始化备库。
- 对于分布式DB(MongoDB/Cassandra)使用官方跨机房复制或Geo-Replication插件,注意写入冲突和一致性级别设置。
7.
跨机房DNS与流量切换策略
- 缩短DNS TTL(例如60秒)以便迅速切换;使用带健康检查的GSLB或DNS提供商(例如Cloudflare, AWS Route53、NS1)。
- 准备自动化切换脚本:当监控检测主站不可达且故障确认后,通过API更新DNS或触发流量切换;保留回滚路径并记录切换时间点。
8.
自动化与Runbook(演练预案)
- 编写详细Runbook:故障判定条件、执行人、命令序列、回滚步骤、业务降级方案。
- 自动化工具:用Ansible/Terraform管理配置和部署步骤;把关键步骤脚本化(例如切换VIP、启动DB为读写、重新同步)。
9.
演练与验证流程
- 定期演练:季度全流程Failover演练(含数据验证),小规模模拟切换每月一次。
- 验证数据一致性:对关键表进行校验(行数校验、checksum或应用层对账),记录差异并修正复制策略。
10.
监控、告警与SLA保证
- 监控项:复制延迟、链路丢包率、磁盘IO、快照成功率、应用错误率。
- 设置等级告警与自动化响应:P1告警直接通知值班并触发自动快照;P2触发运维排查脚本。
11.
安全与合规注意点
- 数据传输加密:数据库复制通道启用TLS,VPN/专线加密,存储快照加密。
- 合规要求:根据香港/台湾与公司合规检查跨境数据传输限制,必要时做沙箱或脱敏策略。
12.
成本优化与带宽控制
- 异步复制或压缩传输:对非关键数据采用异步复制并启用压缩,节省跨境流量费用。
- 分级备份保留策略:关键数据多副本短期保留,归档数据转为冷存储降低成本。
13.
常见问题:部署初期遇到复制延迟如何处理?
- 回答:先判断网络带宽与RTT是否满足同步要求;临时把关键表设为异步复制并调整业务写入速率;在主库侧开启压缩、批量提交减少日志写入频率;必要时提升链路带宽或改为异步复制并增加恢复窗口。
14.
常见问题:如何做切换后的数据回流(Failback)?
- 回答:先在先前主站做增量备份或基于binlog/wal的增量同步,确认差异并在低峰时段把旧主切换为从库,逐步倒流并验证一致性,最后再切回双活或原主。
15.
常见问题:我如何验证跨机房备援真正可用?
- 回答:通过定期演练(完全切换)、使用自动化一致性校验(checksum、对账脚本)、并在演练中测量RTO/RPO指标;仅测试网络可达不够,必须包含数据库写入/读写切换与应用流量验证。
来源:企业如何在香港与台湾机房之间实现高效数据备援布局