迁移后验证与回滚
High Contrast
Dark Mode
Light Mode
Sepia
Forest
3 min read573 words

迁移后验证与回滚

切换完成不等于迁移成功。系统化的验证和预先准备好的回滚方案,是迁移能安全落地的关键。


迁移后验证清单

DNS 层验证

# 1. 验证 A 记录已指向新 IP
dig @8.8.8.8 example.com A
dig @1.1.1.1 example.com A
# 2. 验证 www 子域
dig @8.8.8.8 www.example.com A
# 3. 验证 MX 记录没有被改动
dig example.com MX
# 4. 验证 SSL 证书已在新服务器上生效
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -dates

应用层验证

# 检查 HTTP 状态码
curl -s -o /dev/null -w "%{http_code}" https://example.com
# 期望:200
# 检查 HTTPS 跳转
curl -s -o /dev/null -w "%{http_code}" http://example.com
# 期望:301 或 302(跳转到 HTTPS)
# 检查响应头(确认是新服务器)
curl -I https://example.com
# 检查关键页面
curl -s -o /dev/null -w "%{http_code}" https://example.com/shop
curl -s -o /dev/null -w "%{http_code}" https://example.com/checkout

功能验证(手动)

验证项 检查内容
首页加载 内容正确,样式正常
用户登录 能正常登录,会话保持
购物流程 加购物车 → 结账(不要真正付款,用测试模式)
表单提交 联系表单能正常提交
图片和媒体 所有图片正常显示
邮件通知 触发操作后邮件正常发出
第三方集成 Analytics、支付、CRM 等连接正常

性能验证

# 测试响应时间
curl -s -o /dev/null -w "DNS: %{time_namelookup}s | Connect: %{time_connect}s | Total: %{time_total}s\n" https://example.com
# 目标:Total < 1.5s(首字节时间 < 0.8s)

监控指标(迁移后 24 小时重点关注)

指标 正常范围 告警阈值
5xx 错误率 < 0.1% > 1%
平均响应时间 < 500ms > 2000ms
每分钟请求数 与迁移前持平 骤降 50%+ 可能 DNS 未传播
数据库连接数 正常范围内 接近上限

回滚方案

什么情况下应该回滚

情况 回滚建议
核心功能无法使用(登录、购买) 立刻回滚
错误率持续 > 5% 超过 5 分钟 立刻回滚
数据丢失或数据库异常 立刻回滚
响应时间 > 5s 评估后决定
单一非核心功能异常 可以先修复再决定

回滚步骤

graph TD A[发现严重问题] --> B{旧服务器还在运行?} B -->|是| C[把 DNS A 记录改回旧 IP] B -->|否| D[启动旧服务器快照/备份] C --> E[等待 5 分钟 TTL 生效] D --> E E --> F[验证旧服务器恢复访问] F --> G[排查问题根因] G --> H[修复后重新迁移]

回滚操作(DNS):

# 把 A 记录改回旧 IP
# 旧: 203.0.113.5
# 在 DNS 后台修改,TTL=300(已在迁移前设好)
# 等 5 分钟验证
dig @8.8.8.8 example.com A
# → 203.0.113.5(旧服务器)✅

回滚耗时:如果 TTL 已降到 300,理论上 5 分钟内全球大多数用户会切回旧服务器。


迁移完成后的收尾

确认迁移成功后:


下一章故障排查与诊断——站点出问题时,系统化定位原因的工具和流程。