1.
目标与前提说明
a) 目标:在台湾境内托管或云主机上实现文件与数据库的备份、跨可用区复制与自动故障切换。
b) 前提:两台或以上位于不同可用区(AZ)的服务器、SSH访问权限、对象存储或备份服务器、DNS或浮动IP权限、root或sudo权限。
2.
准备工作:SSH 与密钥同步
a) 在主节点生成密钥:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_backup
b) 同步到备份节点:ssh-copy-id -i ~/.ssh/id_rsa_backup.pub user@backup-az2;测试免密登录:ssh user@backup-az2 'echo ok'
3.
文件级备份:rsync + 压缩存档
a) 实时或定时同步:rsync -aH --delete /var/www/ user@backup-az2:/data/www/;把--delete慎重使用于镜像场景。
b) 按日归档并上传对象存储:tar -czf /tmp/www-$(date +%F).tar.gz /var/www && rclone copy /tmp/www-$(date +%F).tar.gz remote:backup/www/
4.
卷级快照(LVM/云盘快照)操作流程
a) LVM示例:lvcreate -L1G -s -n snap-www /dev/vg/www && mount /dev/vg/snap-www /mnt/snap;复制/压缩后lvremove /dev/vg/snap-www。
b) 云盘快照:使用云厂商API或控制台创建快照(示例:openstack volume snapshot-create),并在备份AZ中按需创建卷恢复验证。
5.
MySQL 数据库备份(mysqldump 与 XtraBackup)
a) 逻辑备份(简单):mysqldump -u root -p --single-transaction --databases dbname > /backup/dbname-$(date +%F).sql
b) 物理备份(热备,高效):xtrabackup --backup --target-dir=/backup/xtrabackup && xtrabackup --prepare --target-dir=/backup/xtrabackup;将备份传到跨AZ对象存储或备份服务器。
6.
实时复制:MySQL 主从配置步骤
a) 主库设置:在my.cnf启用server-id、binlog_format=row, bind-address=0.0.0.0;重启并创建复制账号:GRANT REPLICATION SLAVE ON *.* TO 'repl'@'备份IP' IDENTIFIED BY 'pwd'; FLUSH PRIVILEGES; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS。
b) 从库配置:CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_LOG_FILE='file', MASTER_LOG_POS=pos; START SLAVE; 检查SHOW SLAVE STATUS\G,确保Seconds_Behind_Master稳定。
7.
跨可用区同步策略与带宽控制
a) 建议在非高峰时段做大容量同步,使用rsync --bwlimit=5000或tc限速。
b) 对数据库使用二进制日志复制,减少全量传输;同时保留7~30天的备份快照。
8.
高可用:浮动IP / DNS + 健康检查
a) 浮动IP方案:云厂商提供漂移IP或BGP路由;配置Keepalived + VRRP在主备间漂移VIP,示例keepalived.conf设置优先级与脚本。
b) DNS切换:使用低TTL(<60s)的A记录,结合监控系统触发API更新,实现跨AZ的DNS切换(注意DNS传播延迟)。
9.
负载均衡与会话保持
a) 在多AZ部署中,使用HAProxy或云负载均衡器分发流量;配置健康检查路径、超时与重试策略。
b) 对于需要会话保持的应用,建议使用Redis集群或共享会话存储(数据库/对象存储)。
10.
自动化:备份脚本与定时任务(cron/systemd)
a) 示例cron(每日2点):0 2 * * * /usr/local/bin/backup_full.sh >> /var/log/backup.log 2>&1;脚本包含快照、打包、上传与日志轮转。
b) 用systemd-timer替代cron可获得更精细控制与依赖管理,便于在系统启动后延迟执行。
11.
演练与恢复(RTO/RPO 验证)
a) 定期演练:每月至少一次在备份AZ上挂载快照并启动服务,验证数据一致性与应用可用性。
b) 恢复步骤简要:1) 挂载快照或恢复卷;2) 恢复数据库(xtrabackup或mysql恢复);3) 切换VIP或更新DNS;4) 验证业务正常。
12.
运维检查表与日志审计
a) 日常检查项:备份任务执行状态、快照完整性、复制延迟、磁盘与网络利用率、报警清单。
b) 建议保存备份日志与操作记录(至少90天),并对关键操作做变更审批与回滚计划。
13.
问:在台湾多可用区部署时如何选择数据同步方式?
答:优先选择逻辑/二进制日志复制(数据库)与rsync增量或块级快照(文件/卷),结合对象存储用于长期归档;实时性高的业务用主从复制或主主复制,非实时大量数据用离峰快照+传输。
14.
问:发生单AZ故障,如何最小化停机?
答:平时保持主/备的同步与健康检查;故障时立即切换浮动IP或调整负载均衡/ DNS 指向备节点,若数据库为主从则提升从为主并回放二进制日志,最后修正写权限与应用配置。
15.
问:备份策略的RPO/RTO如何设定?
答:根据业务重要性设定等级:关键业务RPO < 1 小时、RTO < 30 分钟(采用同步复制+自动切换);一般业务RPO 24 小时、RTO 数小时(快照+离线恢复)。结合成本与带宽折中配置。
来源:台湾服务器托管云主机备份容灾与多可用区部署方案解析