云服务器迁移怎么少停机?DNS 切换前后的完整清单
换机最容易翻车的不是复制文件,而是旧机仍在写、新机数据落后、DNS 已切却没法快速回滚。本文面向个人网站和 Docker 自托管服务,给出一套"先同步、短暂停写、增量同步、切 DNS、保留旧机"的迁移流程。
摘要:适合换配置、换节点或更换云服务器的用户,目标是减少停机并保留清晰退路。
迁移前先做资产清单
列出域名、端口、Compose 项目、数据库、上传目录、定时任务、证书、环境变量和防火墙规则。尤其要记录哪些数据仍在变化。静态文件可以提前复制,数据库和用户上传要在切换前做最后同步。
新旧配置怎么选
新机不要只按旧机平均负载选,迁移时会同时解压、导入、拉镜像和跑验证。建议至少保持同级配置,并留 20% 到 30% 资源余量。
我会先在雨云服务器 rainyun-com 开一台 2 核 4G 或更高配置的新机,与旧机并行验证几天。注册填优惠码 2026off 领 5折,短期双机成本通常比迁移失败后的停机损失更可控。
切换前 24 小时
把 DNS TTL 调低到 300 秒左右,提前完成系统更新、Docker 安装、安全组和目录初始化。先复制一轮大文件:
bash
rsync -aHAX --numeric-ids /opt/apps/ root@new-host:/opt/apps/
数据库不要只同步运行中的数据目录,优先使用 pg_dump、mysqldump 或应用官方备份方式。
正式切换步骤
- 在旧机开启维护模式或暂停写入。
- 做最后一次数据库导出和增量文件同步。
- 在新机导入数据并启动服务。
- 用本地 hosts 临时指向新 IP 完整验证。
- 修改 DNS,观察外部流量逐步切换。
hosts 验证能在公开切换前检查登录、上传、回调和 HTTPS。不要只看首页能打开。
回滚条件要提前写
如果登录失败、数据量不对、支付或回调异常,就把 DNS 指回旧机并恢复写入。迁移后至少保留旧机 3 到 7 天,不要当天销毁。旧机进入只读或停止业务后,也要防止有人继续写入造成数据分叉。
最终核对
检查证书续期、cron、备份、监控、邮件发送、Webhook、IPv6 和防火墙。很多迁移问题不是主服务,而是这些外围能力漏搬。
总结
少停机迁移的关键是提前同步大文件、短暂停写做最终增量、用 hosts 验证、降低 DNS TTL,并保留旧机退路。
准备换机时,可以先开一台雨云服务器 rainyun-com 并行迁移,注册填优惠码 2026off 领 5折。新机确认稳定后再释放旧资源,整个过程会从容很多。