跨云厂商服务器迁移指南:从 A 厂商搬到 B 厂商的完整流程
换云厂商在实际运营中很常见——可能是价格因素、性能需求变化,或者被某家厂商的促销吸引。但迁移过程如果操作不当,可能导致网站长时间宕机甚至数据丢失。本文提供一套标准的迁移流程。
一、迁移前的准备
1.1 评估新旧环境差异
在做任何操作前,先对比新旧厂商的差异:
| 评估项 | 检查内容 |
|---|---|
| 操作系统版本 | Ubuntu 22.04 vs 24.04、CentOS 7 vs Rocky Linux 9 |
| 软件栈版本 | PHP/Node.js/Python/Java 版本是否一致 |
| 数据库版本 | MySQL/PostgreSQL 版本兼容性 |
| 系统架构 | x86 vs ARM(换架构可能需要重新编译应用) |
| 网络规划 | VPC 网段、子网划分、安全组规则 |
| 特殊服务 | 是否有使用厂商的托管服务(RDS、Redis、OSS 等) |
1.2 创建迁移清单
□ 列出所有服务器清单
□ 记录当前配置(CPU/内存/磁盘/带宽)
□ 导出安全组/防火墙规则
□ 收集数据库连接信息
□ 记录定时任务(crontab)
□ 备份 SSL 证书和私钥
□ 导出 DNS 记录
□ 整理环境变量和配置文件
二、数据迁移
2.1 文件迁移
使用 rsync 是最安全高效的方式:
# 全量同步
rsync -avz --progress /var/www/ user@new-server:/var/www/
# 增量同步(切换前最后同步一次)
rsync -avz --delete --progress /var/www/ user@new-server:/var/www/
2.2 数据库迁移
# 源服务器导出
mysqldump -u root -p --single-transaction --quick --all-databases > all-dbs.sql
# 导入到目标服务器
mysql -u root -p < all-dbs.sql
# 或使用管道直传
mysqldump -u root -p --single-transaction --all-databases | ssh user@new-server "mysql -u root -p"
2.3 配置迁移
复制以下配置文件到新服务器:
三、环境重建
3.1 快速重建方法
方法一:手动安装(推荐)
在新服务器上重新安装软件栈,这样可以确保版本最新且配置干净:
# Ubuntu/Debian
apt update && apt install nginx mysql-server php-fpm redis-server
# 然后复制配置文件
scp old-server:/etc/nginx/sites-enabled/* /etc/nginx/sites-enabled/
方法二:配置管理工具
如果使用了 Ansible、Puppet 或 SaltStack,只需在新服务器上运行 Playbook 即可。
方法三:容器化
如果应用已容器化(Docker),迁移最简单——只需在新的服务器上运行 docker-compose up -d。
3.2 数据验证
迁移完成后,在新服务器上验证:
# 检查服务状态
systemctl status nginx mysql php8.1-fpm
# 检查数据库数据
mysql -u root -p -e "SELECT COUNT(*) FROM information_schema.tables;"
# 测试网站功能
curl -I http://localhost/
四、DNS 切换
4.1 降低 TTL
迁移前 48 小时将 DNS TTL 降至 300 秒(5 分钟),加速切换后的生效速度:
www.example.com. 300 IN A 123.456.789.0
4.2 切换 DNS
在域名注册商处将 A/AAAA/CNAME 记录指向新服务器 IP。
4.3 切换后的监控
切换后持续监控 24-48 小时:
# 检查 DNS 解析是否已更新
dig example.com +short
# 监测网站响应时间
curl -o /dev/null -s -w "HTTP %{http_code}, Time: %{time_total}s\n" https://example.com/
# 检查 SSL 证书
openssl s_client -connect example.com:443 -servername example.com
五、回滚计划
迁移完成后保留旧服务器至少 7 天。如果发现严重问题,回滚步骤:
- DNS 记录切回旧服务器 IP
- 确认旧服务器上的服务正常运行
- 排查差异并重新准备迁移
- 选择低峰时段再次迁移
六、常见云厂商迁移场景
阿里云 → 腾讯云
- 注意:内网 IP 会变化,检查配置文件中是否有写死的 IP
- 阿里云 RDS 用户需要先导出数据到本地,再导入腾讯云 CDB
- OSS 文件需要通过
ossutil下载到本地再上传到 COS
国内云 → 海外 VPS
- 注意:跨境网络延迟和带宽限制
- 使用国内中转服务器加速数据传输
- ICP 备案问题:海外服务器无需备案
传统 IDC → 云服务器
- 物理服务器需要先虚拟化或打包环境
- 评估迁移后的架构设计(是否需要拆分服务)
七、总结
跨云迁移是一项需要精细规划的工作。成功的关键在于充分的准备和验证。建议在低峰时段执行迁移,并在切换前进行完整的预演。大多数迁移问题都源于忽略环境差异和未做充分测试。保留旧环境和完整备份,是迁移过程中最重要的安全网。