downuuship

一次 VPS 迁移记录:备份、切流量、收尾

2026-08-30

记录一次从旧机器迁移到新机器的完整过程。整体思路是:先并行跑一段时间,再切流量,最后下线旧机器。

一、备份

先确认要带走的范围:站点文件、数据库、配置文件、证书、定时任务。

tar czf backup.tar.gz /var/www /etc/nginx /ssl
mysqldump --single-transaction app > app.sql
crontab -l > crontab.bak

--single-transaction 对 InnoDB 可以在不锁表的情况下拿到一致快照,避免备份期间写入丢失。

二、新机准备

先把系统版本、软件版本对齐。旧机器上的配置如果能直接拷,就拷贝过去;如果版本差异大,宁可重新写一遍,别硬套。

nginx -v
php -v
mysql --version

三、并行运行

新机器先用 IP 或者临时域名跑起来,逐项验证:静态页、接口、上传、定时任务、证书。

这一步别省。很多问题(比如时区、权限、扩展缺失)只有在真实请求下才会暴露。

四、切流量

切换前把 DNS 的 TTL 提前调小,比如提前 24 小时改成 300 秒。否则旧记录会在递归服务器里滞留很久,切换后一部分用户还打到旧机器上。

A  @   新IP   TTL 300

确认新机器上的访问日志出现真实流量后,再观察一段时间。

五、收尾

迁移本身不复杂,真正容易出事的是“以为迁移完了”之后的那些遗留配置。