UnboxVPS · 搬瓦工指南

换商家不丢数据:VPS 迁移完整 SOP(含 WordPress 零停机搬家实操)

2026-09-13 VPS入门

一句话原则:迁移不靠”快”,靠”顺序”。 先把数据完整搬到新机、验证通过,最后才切 DNS——顺序对了,全程可以做到零停机、零数据丢失;顺序错了(先关旧机再想搬家),丢数据只是时间问题。

30 秒版 SOP 总览

盘数据 → 整机备份 → 新机搭环境 → 数据恢复 → 双跑验证 → 降 TTL 切 DNS → 观察 48h → 旧机退役
  5min     10min        20min        15min        10min        5min        48h        7 天后
阶段 核心动作 风险点
迁移前 数据盘点 + 全量备份 漏掉邮件/cron/证书
新机 同版本软件栈 + 数据恢复 版本不一致导致报错
切换 提前降 TTL → 改解析 TTL 没提前降 = 切换慢
收尾 双跑观察后退役旧机 旧机退太早 = 没有后悔药

推荐新机(下单入口为官方推广链接,价格不变):


第 0 步:判断”该不该现在迁”(3 个信号)

✅ 该迁移的信号:

  1. 线路/机房不合适:晚高峰丢包持续 > 5%,换机房也不解决
  2. 商家不稳定:频繁宕机、工单不响应、跑路传闻出现
  3. 成本优化:同样配置别家价格腰斩(如年付从 $20+ 降到 $11 档)

❌ 先别迁的情况:业务正在大促/流量高峰、你只有一次备份经验——先练一次完整备份恢复再动。

第 1 步:迁移前检查清单(逐项打勾)

第 2 步:数据盘点(最容易漏的 6 样)

迁移失败案例里,90% 的”丢数据”不是文件传输失败,而是根本没意识到要搬:

项目 位置参考 说明
网站文件 /www/wwwroot/、/var/www/ 注意隐藏文件如 .htaccess、.well-known
数据库 MySQL/MariaDB 用逻辑备份导出,别直接拷数据目录
定时任务 crontab -l 备份、爬虫、证书续期等
证书 Let’s Encrypt/宝塔 可直接在新机重新签发,更干净
配置文件 Nginx 站点配置、Docker compose 记录所有自定义改动
第三方依赖 支付回调、API 白名单、CDN 回源 涉及 IP 的都要在切换后更新

第 3 步:原地全量备份(可复制命令)

# 1) 网站文件打包(按实际目录调整)
tar -czvf /root/site_files_backup.tar.gz /www/wwwroot/your-site

# 2) 数据库导出(MySQL 示例)
mysqldump -u root -p --single-transaction --routines --triggers \
  your_database > /root/db_backup.sql

# 3) crontab 导出
crontab -l > /root/crontab_backup.txt

# 4) 从本地把三个备份拉到你的电脑(在本地终端执行)
scp root@旧服务器IP:/root/*backup* ./

三条铁律:

第 4 步:新机环境搭建

原则:版本对齐旧机(PHP 7.4 的站就别上新机 PHP 8.3,先跑通再升级)。

# Ubuntu 示例:基础环境(以宝塔为例可图形化完成)
apt update && apt install -y curl
# 复用旧机同款面板最省事:宝塔重新装一遍,套件版本选择与旧机一致

第 5 步:数据恢复

# 1) 上传备份到新机(在本地执行)
scp site_files_backup.tar.gz db_backup.sql root@新服务器IP:/root/

# 2) 解压网站文件
mkdir -p /www/wwwroot/your-site && tar -xzvf site_files_backup.tar.gz \
  -C /www/wwwroot/your-site --strip-components=3

# 3) 导入数据库
mysql -u root -p your_database < /root/db_backup.sql

# 4) 恢复 crontab
crontab /root/crontab_backup.txt

WordPress 站点特别提醒:域名没变的话直接导入即可;如果顺便换域名,要用 WP-CLI 或专门的搜索替换工具处理数据库中的序列化数据,直接 SQL REPLACE 会把序列化字段改坏:

# 域名替换(在新机执行,先备份数据库)
wp search-replace 'old.com' 'new.com' --all-tables --precise

第 6 步:DNS 平滑切换(零停机关键)

提前 24~48 小时:把域名 TTL 从 3600s 降到 300s(5 分钟)
         ↓
新机用"hosts 绑定"或直接 IP 访问做全站验证
         ↓
验证全绿后:改 A 记录指向新机 IP(TTL 保持 300s)
         ↓
观察 24~48 小时无异常后:TTL 改回 3600s

验证技巧:本地改 hosts 文件把域名指向新机 IP,在”真实域名”下把所有功能点一遍——这样切 DNS 之前就能发现问题。

切换前必须全绿的验证清单:

第 7 步:旧机退役

常见坑清单(真实高频)

  1. 只备份了文件,忘了数据库——最常见,灾难级
  2. TTL 没提前降:切换后老 IP 还会被解析数小时,出现”一部分人能访问、一部分人访问到旧站”
  3. MySQL 版本跨度大:5.6 的库导入 8.0 报错,先对齐版本或升级 SQL 模式
  4. 序列化数据被直接替换:WordPress 换域名必须用 wp search-replace
  5. 证书没重签/没续:新机直接用旧证书文件容易续期失败,建议新机重新申请
  6. 防火墙端口没放行(新机 443/80 是默认开的,但自建服务端口常忘)
  7. 忘了 .well-known 目录(ACME 验证用)和 .htaccess 等隐藏文件

常见问题(FAQ)

Q1:迁移过程网站要关站吗? A:按本 SOP 走不需要。DNS 切换前旧机一直在线服务,切换瞬间新机已就绪,用户无感知。

Q2:新机买什么配置? A:不小于旧机即可。小站 1核1G 起步(RackNerd/CloudCone 年付档足够),国内访问敏感就上 CN2 GIA 线路。

Q3:旧机到期前一天才迁来得及吗? A:来得及但很赶,且没有回退窗口。正确做法是提前一周开始,旧机最后 7 天当”后悔药”。

Q4:迁移会掉 SEO 排名吗? A:域名不变 + 内容不变 + 无长时间停机,通常 1~2 周内恢复平稳。关键是别让网站出现 5xx/超时,搜索引擎对”访问不了”最敏感。

Q5:宝塔一键迁移和手动迁哪个好? A:面板的”一键迁移”适合同面板同版本,省事;跨面板/跨版本/自建环境建议按本文手动 SOP 走,可控性更高。

Q6:迁移后旧机 IP 会被回收吗? A:终止服务后由商家回收。如果你有服务依赖固定 IP(如白名单 API),迁移前务必确认替代方案。


利益相关声明:本文含商家官方推广链接,通过链接购买作者可能获得推广奖励,但不影响推荐结论,也不会让你的购买价格变高。价格与产品信息采集于 2026 年 9 月,请以商家官网实时信息为准。

相关阅读: – 《从买 VPS 到 WordPress 上线:30 分钟建站全流程》 – 《VPS 选购指南 2026:从入门到精通的保姆级教程》