1.
迁移前准备与风险评估
- 清单:记录当前实例规格、公网/内网IP、存储卷(挂载点)、安全组规则、负载均衡配置、证书与域名。
- 验证访问:用 curl、浏览器测试所有对外接口并记录响应与错误率。
- 突发预案:确认回滚点(快照/镜像)和回退窗口,准备沟通窗口与勿扰时间段。
2.
在广达云创建快照/镜像(备份)
- 创建磁盘快照:在控制台选择实例磁盘,点击“创建快照/备份”。建议先做完整快照,再做增量。
- 导出/下载:如需离线保存,可将镜像导出至对象存储(按广达云控制台指引)。
- 验证快照:在控制台用快照创建临时测试实例,确认系统能启动并且服务可用。
3.
数据库备份与一致性策略
- MySQL:推荐先执行 mysqldump --single-transaction --routines --triggers -u root -p dbname > dump.sql,或使用 Percona XtraBackup 进行热备份以保证一致性。
- PostgreSQL:使用 pg_dump 或 basebackup,或 pg_basebackup 做基线备份。
- 备份验证:在目标测试机导入并用应用连接测试查询、写入正确性。
4.
文件与静态资源同步(rsync 实战)
- 初次同步:从源服务器执行 rsync -azP --delete /var/www/ user@目标IP:/var/www/ 。
- 最终增量:在切换窗口前停止写入(或用维护页),再做一次 rsync 以确保零差异。命令示例:rsync -azP --delete --exclude='cache/' /data/ user@目标:/data/ 。
- 验证权限:同步后检查文件属主与权限(chown/chmod)。
5.
应用配置与密钥同步
- 配置文件:迁移前将 /etc/nginx、/etc/php、应用 .env 或配置文件备份并调整目标实例中的内网/数据库连接。
- 私钥与证书:把 SSL 私钥和证书安全地复制到目标(建议使用 scp 并在复制后立即修正权限为 600)。
- 密钥管理:如使用 KMS 或 Secrets 管理,确保目标实例有足够权限读取密钥。
6.
目标实例准备与安全组设置
- 实例规格:在广达云控制台选择合适机型、网络(VPC/子网)和磁盘类型,创建实例并挂载磁盘快照或通过 rsync 导入数据。
- 安全组:打开必要端口(80/443/22/数据库端口仅在内网开放),设置限源规则并允许管理 IP。
- 系统检查:确认 time zone、NTP、内核参数(如 net.core.somaxconn)与源服务器一致。
7.
演练切换(dry-run)与灰度验证
- hosts 本地覆盖:在内网或本地 hosts 中把域名指向目标实例 IP 做灰度验证。
- 功能测试:模拟流量,检查登录、支付、文件上传、任务队列等关键路径。
- 性能对比:用 ab、wrk 做并发压测,确认目标可承载预期 QPS。
8.
DNS 切换最佳实践与步骤
- 降低 TTL:在切换前 24-48 小时把域名 A/CNAME 记录的 TTL 降到 60 或 300 秒以便快速回滚。
- 切换时机:在低峰时段做最终数据同步并短暂停止写操作,然后把 DNS 指向目标 IP(修改 A 记录或调整负载均衡后端)。
- 验证与缓存清理:使用 dig +trace 域名或线上工具(whatsmydns)确认全球分布解析;客户端可通过 ipconfig /flushdns 或 curl --resolve 测试。
9.
切换后的恢复验证与监控
- 日志检查:查看 nginx、应用与数据库日志是否有报错(tail -f /var/log/...)。
- 监控告警:确保监控项(CPU、内存、响应时间、错误率)在预期范围,设置短期告警阈值。
- 回滚准备:若发现重大问题,利用快照或把 DNS 指回原 IP(TTL 短时会加速回退)。
10.
回滚策略与补救步骤
- 快速回退:在切换前确保旧环境保持至少 1-2 小时可写并有最新备份;必要时修改 DNS 回到旧 IP 并在旧机上恢复最后增量数据。
- 数据差异处理:如果在切换窗口有写入,可基于 binlog(MySQL)或 WAL(Postgres)做增量重放。
- 事后复盘:记录故障原因、切换耗时、未预见问题并更新迁移步骤与脚本。
11.
问:切换 DNS 时如何把停机时间降到最低?
问:如何把停机时间降到最低?
答:答:提前降低 TTL,使用维护页、短时间停止写操作做最终 rsync,或采用双写/中继方式;切换 DNS 后立即通过灰度流量验证并监控,一旦异常通过短 TTL 快速回退。
12.
问:数据库在迁移过程中如何保证数据一致性?
问:数据库在迁移过程中如何保证数据一致性?
答:答:对事务型数据库建议使用热备工具(如 XtraBackup)或先做一次全备后在切换窗口用 binlog 增量回放;若可短暂停写,先锁表或停止写入做最后一份 dump 并导入目标。
13.
问:如何验证 DNS 在全球已生效以及常见排错命令?
问:如何验证 DNS 在全球已生效?
答:答:使用 dig +short 域名、dig @8.8.8.8 域名、在线工具(whatsmydns.net)检查多地域解析;若解析不一致,检查域名提供商的记录、TTL、以及是否有 CDN/代理缓存并清除缓存。
来源:台湾广达云服务器迁移指南含备份恢复与DNS切换步骤