## 适用场景
换服务器、换机房、上顺云新购的云服务器,网站要从旧机搬到新机。迁移的本质挑战是数据在流动中不能出现两份不一致的"真相":用户在旧机下单、数据却同步到了新机,订单就悬空了。全流程围绕一条纪律展开:先冻结写入,完成最后同步,再切流量,任何顺序颠倒都在制造数据分叉。按时间线操作,一晚可以平稳搬完一个中型站点。窗口选择周五深夜或周末,流量低谷操作从容,留足观察时间。
## 迁移前准备
提前一两天做三件事。第一,DNS TTL 调小:把域名解析记录的 TTL 从默认的一两小时降到三百秒,让切换时各地缓存尽快刷新,这一步必须提前做,等切换当天再改就没意义了。第二,预同步:网站文件与数据库全量先同步一遍,让正式切换时的增量尽可能小。第三,新机就绪:环境版本对齐、Web 与数据库配置核对、内部域名与定时任务梳理清单,逐项打勾。
## 切换夜时间线
第一步,公告维护窗口,停写入口:关闭站点写入(应用维护模式),停掉旧库写入。第二步,最终同步:
bash rsync -a --delete /var/www/ new-host:/var/www/ mysqldump --single-transaction mydb | mysql -h new-host mydb
文件增补加数据库补齐,量小则几分钟完成。第三步,新机验证:内部走 hosts 指向新机完整回归一遍核心功能,登录、下单、后台都过。第四步,切解析:A 记录指向新机 IP,TTL 已经很小,各地几分钟到几小时陆续生效。第五步,观察期:旧机保持只读运行一两天,日志确认流量已归零。
## 回退方案
切换不顺利要有退路:解析改回旧机 IP,几分钟生效;旧机数据停在切换点,回退会丢切换后的新增——所以验证阶段必须做实,宁可多花一小时测试。一两天观察期结束,确认新机稳定、无数据问题,旧机数据归档后按需退订。全程的关键文档记两份:操作时间线留档,DNS 与配置变更留档,下次迁移直接复用。