目标:在台湾与美国两地服务器间实现可靠的跨区备份与容灾,满足业务指定的RPO(数据丢失窗口)与RTO(恢复时间目标)。小分段:1) 明确关键数据(数据库、用户上传、配置);2) 设定RPO/RTO(例如RPO=15min,RTO=30min);3) 决定主备模式(主动/被动或多主)。
小分段:1) 建立安全通道:在两端配置SSH密钥并限制来源IP;2) 时钟同步:安装并启用ntpd或chrony,确保时间一致;3) 防火墙:只开放备份所需端口(SSH 22或指定端口、数据库复制端口);4) 带宽评估:测算初次全量与日常增量带宽,计划窗口。
小分段:1) 分类:文件(静态文件/日志)、关系型数据库、对象存储/镜像;2) 备份策略:文件采用增量+周期全量,数据库用物理或逻辑复制并保留binlog/WAL;3) 保留策略与合规:设置保留周期、加密与归档策略。
小分段:1) 推荐工具:rsync(简单可靠)、borg/restic(去重加密);2) rsync示例(单向增量到美国服务器):
sudo rsync -avz --delete --numeric-ids -e "ssh -i /root/.ssh/id_rsa -p 2222" /data/ backupuser@us.example:/backups/tw-to-us/;3) borg示例初始化与备份:
BORG_REPO=ssh://backup@us.example:/srv/borg/tw-bak borg init --encryption=repokey
borg create -v --stats $BORG_REPO::$(date +%F) /data
小分段:MySQL:1) 配置主从replication:设置server-id、开启binlog;2) 创建replication账号并授权:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
3) 启动从库并指定master_host/master_log_file/master_log_pos。PostgreSQL:1) 使用pg_basebackup建立基础备份;2) 配置主库wal_level=replica、archive_mode=on并设置archive_command指向远程对象存储;3) 启用streaming replication并测试延迟。
小分段:1) 推荐把大对象存到S3兼容存储(例如AWS S3或MinIO),使用rclone/restic同步并加密:rclone copy /uploads remote:bucket --transfers=8;2) VM/磁盘快照:若使用云主机,利用云提供商的快照API做周期化快照并复制到另一区域;3) 设置生命周期策略(冷归档、过期规则)。
小分段:1) 使用cron或systemd-timers安排备份任务,示例cron:0 */4 * * * /usr/local/bin/backup_full.sh;2) 把备份脚本写成幂等、带错误处理并产生日志;3) 集成告警:通过邮件/Slack/Prometheus Alertmanager上报失败与延迟。
小分段:1) DNS+健康检查:使用带健康检查的DNS(如Route53)并设置低TTL;2) 自动/手动切换:自动化脚本检测主站不可用后切换DNS或启动备用服务;3) 演练:定期做演练并记录恢复时间与问题清单。
小分段:1) 传输加密(SSH/TLS)、静态加密(borg/restic/encrypted S3);2) 密钥管理:避免把密钥放脚本中,使用KMS或Vault管理;3) 访问控制与审计:最小权限、操作审计、定期轮换凭证。
答:根据业务重要性分级:关键业务设RPO分钟级、RTO十分钟到一小时;次要服务可放宽到数小时。先列出关键数据、评估变更频率与恢复影响,再选技术(同步replication实现近零RPO,异步备份实现较长RPO)。
答:建立定期恢复演练(每季度或每月),步骤:1) 在隔离环境还原一份最新备份;2) 执行数据库一致性检查(校验表、索引);3) 验证业务流(登陆、上传、读写);4) 记录耗时并修正流程中发现的问题。
答:采用分层存储(热数据保留本地,冷数据归档到低成本对象存储)、使用增量与去重工具(borg/restic)、合理设置保留策略与压缩,并通过带宽窗口(夜间)传输以避免高峰费用。