更少身份。更多独立。Crypto · 无 KYC · 完整 root
操作

VPS 迁移清单:备份、DNS、TLS 和回滚

自托管应用程序的实用迁移顺序:清点、一致备份、经过测试的目标、受控写入、DNS 切换和恢复路径。

概览

受控 VPS 迁移会清点服务和数据、创建一致备份、验证已恢复的目标、测试主机名和 TLS 路由、协调最终写入和 DNS,并保留数据感知的回滚。没有任何清单能单独保证零停机时间。

在移动应用程序之前清点它

列出应用程序工作所需的服务、版本、端口、计划任务、数据库、上传文件和配置。确定写入发生的位置以及它依赖哪些外部服务。当数据位于别处时,复制的 Web 目录并不是完整迁移。

记录当前 DNS 名称、活动 IPv4 和 IPv6 记录、证书续期方法和恢复访问路径。将机密保存在你的私有部署工具中。不要将密码、私钥或数据库转储放入公共文档根目录或共享迁移清单。

创建一致备份并证明其可恢复

使用数据库支持的备份机制,而不是在写入继续时复制任意文件。对于 SQLite,Online Backup API 创建一致的数据库快照。在 WAL 模式下,WAL 文件参与持久数据库状态,因此仅复制主数据库文件可能会遗漏已提交的更改。

一致的数据库备份并不自动与单独存储的上传、队列或文件保持一致。请与你的应用程序协调捕获它们。恢复到单独的测试位置,并在将备份视为可用之前验证记录、文件引用和应用程序行为。

在更改 DNS 之前准备目标

在新服务器上创建预期的用户、权限、运行时版本、服务和应用程序目录。将测试备份恢复到其目标数据位置,适当时放在公共 Web 根目录之外。使用实际运行应用程序的服务账户检查所有权和访问权限。

保留共享服务器上的无关站点。使用专用文档根目录、虚拟主机和运行时,验证 Web 服务器配置,并准备仅恢复此更改拥有的文件和配置的回滚。

在新服务器上测试真实主机名和证书

对裸 IP 地址的浏览器请求不会重现基于主机名的路由或证书验证。curl --resolve 允许测试使用预期主机名和选定的目标 IP,同时保留正常主机名和 TLS 检查。还要检查 HTTP 状态和预期的应用程序内容。示例使用仅文档值;请将它们替换为你自己已验证的域名和目标。

该测试必须已经存在有效证书和允许的网络路径才能通过。切勿禁用证书验证来宣称迁移就绪。基于 DNS 的 ACME 验证可以在不更改其 Web 服务器地址的情况下验证域;基于 HTTP 的验证具有不同的可达性要求。将续期与初始签发分开测试。

终端
curl --fail-with-body --show-error --resolve example.com:443:203.0.113.10 https://example.com/

选择写入控制和最终同步计划

安排短暂的维护期或另一种适合应用程序的一致性机制。停止或重定向你识别出的写入者,进行最终一致数据库备份,同步相应的可变文件并验证结果。即使公共界面看起来很安静,队列工作进程、Webhook 和 cron 任务也可能写入。

在文件同步之前进行试运行。不要添加删除标志或复制整个系统目录作为捷径。保持旧服务可恢复,直到你检查了新应用程序并确定哪个位置对写入具有权威性。

更改 DNS,然后观察两种地址族

更新服务所需的记录,并考虑现有解析器缓存。检查权威答案和多个正常客户端路径。如果过时的 AAAA 记录仍然活动,IPv6 客户端可能会继续到达旧服务器,而 IPv4 客户端到达新服务器。

在新服务上测试登录、读取、写入、上传、后台任务和外部回调。在过渡期间避免运行同一应用程序的两个独立可写副本。为仍到达旧目标的流量保持明确规则。

让回滚既是数据决策,也是 DNS 决策

定义触发回滚的故障条件以及谁控制切换。在新写入已到达目标之后,仅还原 DNS 是不够的:在返回到较旧副本之前,必须保留或协调该数据。

在适当的恢复期内保留源和备份。只有在目标、备份、续期和监控都已检查后,才移除旧访问权限并停用资源。保留和删除应遵循实际服务政策,而不是通用的固定小时数。

问题解答

我可以直接复制活动的 SQLite 数据库文件吗?+
不要假设从活动数据库复制一个文件会产生完整、一致的备份。使用受支持的备份方法并考虑 WAL 状态。还要协调存储在数据库之外的文件。
更改 DNS 记录会移动我的应用程序数据吗?+
不会。DNS 将未来的名称解析指向一个地址。应用程序文件、数据库、机密和后台服务需要单独的迁移和验证过程。
我能用此清单承诺零停机时间吗?+
不能。停机时间和一致性取决于应用程序、流量、数据和切换方法。该清单帮助你准备和测试受控移动;它不是零停机保证。

官方参考

谨慎构建。保持控制。探索 VPS 方案
继续探索

有用的下一步。

低调迈出下一步

您的基础设施。您的身份仍属于您。

选择您需要的资源。无需分享的个人信息就不要分享。

找到您的服务器