1.
概述与前期准备
说明站群架构:多个域名/站点分布在几台或多租户服务器上。
准备清单:资产清单(服务器、IP、存储)、数据分类(静态文件、数据库、配置)、备份目标(RPO/RTO)。
2.
确定备份策略与分类
为不同数据定策略:静态文件每日增量+每周全量;数据库事务关键站点使用二进制日志+每小时增量。
定义保留策略:短期(7-30天)、中期(90天)、长期(1年或按合规)。
3.
备份技术选型
文件层:rsync/rsnapshot/lsyncd用于近实时或增量同步;块层:使用LVM快照或ZFS快照做一致性备份。
对象存储/异地:Restic、Borg、Rclone同步至HK外/内地S3兼容对象存储或别的机房。
4.
数据库备份实操(MySQL举例)
全量:mysqldump --single-transaction --master-data=2 -u root -p dbname > full.sql。
物理热备:xtrabackup --backup --target-dir=/data/backup/xbk。设置binlog并配置binlog定期归档。
5.
保证一致性步骤
对文件+数据库:先flush tables with read lock,并记录binlog位置,然后进行文件快照或rsync,最后解除锁。
采用LVM/ZFS快照可先创建快照再备份快照,从而避免长时间锁表。
6.
异地与加密传输
在香港托管时考虑跨境复制:使用SSH+rsync或rclone加密传输。
对敏感数据启用Restic/Borg的端对端加密并管理好密钥和KMS策略。
7.
自动化与调度
使用cron/Ansible/ Rundeck编排:示例cron:0 2 * * * /usr/local/bin/backup_daily.sh >> /var/log/backup.log 2>&1。
CI/CD将备份脚本纳入版本控制并在变更时自动测试。
8.
验证与演练流程
备份完成后自动校验:restic check 或 sha256sum 对比。每月演练:恢复一台镜像服务器并验证业务可用性。
记录演练结果并优化恢复步骤。
9.
恢复实操:单站点文件恢复
步骤:停掉目标站点服务 -> 从备份存储拉取指定日期的文件(rsync/restore命令)-> 校验权限与SELinux上下文 -> 启动服务并验证日志。
示例:rsync -avz /backup/siteA/ /var/www/siteA/。
10.
恢复实操:整机/多站点恢复
步骤:准备同等或更大的目标主机,恢复快照或物理备份(xtrabackup/restore) -> 恢复binlog到指定位置 -> 恢复负载均衡和DNS切换(TTL提前降低)。
演练时记录RTO与数据丢失量,调整策略。
11.
监控与告警
监控备份任务成功率、备份大小、带宽、备份窗口,使用Prometheus+Alertmanager或Zabbix告警。
关键告警示例:连续失败3次、备份数据异常增大或可用空间低于阈值。
12.
合规与日志保存
根据香港与目标客户地的法规确定日志与备份保存周期与加密要求。
备份访问控制:使用最小权限原则与MFA、密钥轮换策略。
13.
常见故障与应急步骤
场景:备份损坏或密钥丢失:准备备份副本与密钥备份(离线冷存)。
场景:网络不可达:切换到异地备份点或利用公网对象存储恢复。
14.
Q1:如何快速恢复单个站点的数据库到指定时间点?
答:先从最近全量备份恢复,再按binlog位置应用二进制日志:mysqlbinlog --start-position=... binlog.* | mysql -u root -p。
若用xtrabackup,按官方restore流程先准备备份,再按需要应用binlog。
15.
Q2:如何验证备份可用性,避免“以为备了其实恢复不了”?
答:采用自动化校验脚本(校验和、restic check),并至少每月做一次完整恢复演练(单节点与整站恢复),把演练结果记录进变更管理系统。
16.
Q3:在香港站群托管有什么网络和延迟方面的注意事项?
答:考虑跨境备份延迟和带宽成本,优先把热备放在香港或近似区域;冷备可以异地存储以降低成本。设置合理的备份窗口并监控网络抖动,必要时分片并并行上传。
来源:从运维角度看香港站群服务器托管的备份与恢复策略