如何把网站迁移到 VPS 而不丢失数据
安全迁移不只是复制文件:还包括数据库、DNS、TLS、邮件、定时任务、外部集成和可执行的回滚计划。下面是一套从盘点到旧服务器下线的完整流程。

先选择迁移方案
静态站可以一次复制;内容站通常需要初次同步和最终增量同步;商店、论坛与会员系统在切换时仍可能写入订单和消息,因此需要短暂只读或维护窗口。数据库很大时,应考虑复制、增量备份或专业迁移工具。
设定可接受停机时间、数据丢失窗口和回滚条件。提前降低 DNS TTL 只能缩短缓存时间,不能保证所有解析器立即刷新。
步骤 1:列出所有依赖
| 项目 | 需要记录 | 常被遗漏 |
|---|---|---|
| 文件 | 站点根目录、uploads、权限、符号链接 | 隐藏文件与站外存储目录 |
| 数据库 | 类型、版本、字符集、大小、用户 | 事件、触发器与扩展 |
| 运行环境 | PHP/Node/Python 版本和模块 | 系统库与环境变量 |
| 基础设施 | DNS、TLS、cron、队列、邮件 | Webhook、IP 白名单和回调地址 |
同时记录平均和峰值 CPU、内存、磁盘与流量,以便按实际负载选择新 VPS,而不是机械复制旧套餐。
步骤 2:创建可验证的备份
分别备份站点文件和一致性数据库 dump,并把副本存到旧主机之外。记录校验和,确认归档可以解压、dump 可以导入。对邮件、DNS 区域、证书和计划任务也应保留可读配置。
步骤 3:准备新 VPS
- 更新系统、创建非 root 管理用户并配置 SSH 密钥。
- 启用防火墙,只开放 SSH、HTTP 与 HTTPS 等必要端口。
- 安装与原站兼容的 Web 服务器、运行时和数据库。
- 创建数据库用户和最小权限,设置日志轮转与时间同步。
- 配置外部备份、监控和磁盘告警。
- 暂时不要关闭旧服务器或删除旧数据。
若计划同时升级运行时,先以相同版本完成迁移,再单独升级,便于定位问题和回滚。
步骤 4:迁移文件和数据库
先复制大部分文件,再在切换前做增量同步。保留属主、权限、时间戳和符号链接,但不要无条件继承不安全权限。数据库使用官方 dump/restore 或一致性快照,导入后检查字符集、时区、扩展和用户权限。
替换配置中的连接地址、绝对路径与旧域名。不要把生产 secret 写进仓库;在新主机安全注入并限制读取权限。WordPress 等 CMS 可能在序列化数据中保存 URL,应使用了解其格式的工具替换。
步骤 5:在切换 DNS 前测试
通过本机 hosts 文件或临时受保护域名访问新 VPS。测试首页不够,要覆盖登录、搜索、表单、上传、邮件、结算、Webhook、后台任务和管理后台。检查浏览器控制台、应用日志和 4xx/5xx。
- 核对所有主要页面与静态资源。
- 测试写入:创建、编辑、上传和删除测试数据。
- 确认 HTTPS 证书链、跳转与 canonical。
- 运行 cron、worker、队列和外部 API。
- 执行一次新服务器备份并验证可恢复。
- 从目标用户地区测响应和路由。
步骤 6:最终同步并切换 DNS
在约定窗口暂停写入或开启维护模式,完成最后的文件增量和数据库同步,再核对记录数与校验和。更新 A/AAAA 或负载均衡记录,并持续观察新旧两台服务器的访问日志。
不要立即修改所有相关服务。邮件 MX、第三方回调和子域名应逐项确认。DNS 传播期间旧服务器保持工作,必要时阻止其产生无法同步的新写入。
步骤 7:切换后的检查
从不同网络检查 DNS、TLS、页面、表单和后台任务。监控 CPU、内存、磁盘、数据库连接、5xx 和队列积压。更新搜索引擎与监控中的地址只在 URL 结构改变时需要;同域迁移无需提交全新站点。
旧服务器至少保留一个完整 TTL 周期并根据业务延长数日。确认备份、日志和必要审计数据已导出后,再安全删除 secret 与数据。
回滚计划
预先写明触发条件,例如错误率、丢单、数据库损坏或不可接受的延迟。回滚可能是把 DNS 指回旧站,也可能是恢复数据库;如果新站已经接收写入,就不能简单回退而丢掉新数据。应明确由谁决定、如何合并数据以及何时停止继续尝试。
常见错误
- 只复制网页文件。数据库、cron、邮件和 secret 被遗漏。
- 边升级边迁移。故障原因难以定位。
- 不测试写入流程。首页正常但上传、结算或表单失败。
- 太早关闭旧服务器。DNS 缓存用户仍会访问旧地址。
- 没有最终同步。初次复制后的订单和内容丢失。
- 把快照当作唯一备份。无法证明独立恢复能力。
常见问题
迁移要多久?
小站可在数小时内完成,大型数据库与复杂集成需要数天准备。真正停机通常只发生在最终同步窗口。
没有旧主机面板权限能迁移吗?
只要能读取文件、导出数据库并管理 DNS,通常可以;若这些权限也缺失,应先由所有者恢复访问。
需要迁移 SSL 证书吗?
可在新机重新签发免费证书,先确保域名验证可完成。商业证书则按供应商要求安全迁移私钥。
什么时候关闭旧服务器?
至少等 DNS 缓存过期、新站稳定运行并验证备份后。关键业务应保留更长观察期。
如何选择新 VPS?
根据实测峰值、增长余量、地区、磁盘和总费用筛选,详见VPS 选购指南。
迁移 CMS 时,也请核对WordPress VPS 检查清单。
