在预订迁移之前清点项目
使用 client.example.com 上的示例查询网站:编辑发布项目页面,访问者上传简介,计划任务将查询导出到客户系统。仅移动其公共页面只能覆盖部分工作。在确定日期之前,确认对源和目标、域控制和恢复副本的授权访问。
对于每个组件,记录其所有者、版本、位置、依赖项和验收检查。将凭据位置保留在清单中;将密码和私钥保留在批准的密文存储中。
水平滚动以查看所有表格列。
| 组件 | 迁移前记录 | 谁确认 |
|---|---|---|
| 域名和 DNS | 注册商、DNS 运营商、当前记录和 TTL | 客户账户所有者 |
| 应用程序 | 版本、运行时、扩展和部署方法 | 机构维护者 |
| 数据和上传 | 数据库、上传路径、备份方法和最后可用副本 | 数据操作员 |
| 表单和集成 | 收件人、webhook 端点和允许的测试目标 | 客户工作流所有者 |
| 计划工作 | Cron 或调度器、时区、队列和最后成功运行 | 机构维护者 |
在接触生产环境之前证明恢复副本
恢复到单独的测试目标,切勿覆盖实时数据库。对于 PostgreSQL,SQL 转储表示一致的数据库快照,但单数据库转储不包含集群范围的角色或表空间。记录应用程序所需的支持对象。该数据库快照也不会自动使单独复制的上传保持一致。 PostgreSQL SQL 转储文档.
对于 WordPress 项目,包括其文件和数据库。如果 URL 将更改,请遵循其迁移特定指南:不加区分地数据库搜索替换可能会损坏序列化值。在副本上演练所选方法。 WordPress 迁移手册.
记录一个已知查询及其附件,恢复它们,并通过应用程序验证两者。将原始备份保护在正在迁移的服务器之外。完成文件传输并不等于接受恢复。
演练客户会注意到的工作流
使用访问控制的临时主机名或仅操作员可用的名称映射进行测试。为测试路由配置应用程序,包括 HTTPS 和相关回调 URL。防止副本发送生产消息、处理真实付款或运行生产计划。使用批准的合成记录而非不必要的个人数据。
在每次检查之前写入预期结果。记录通过或失败、证据位置和审查人员;主页的截图不能代表整个网格。
水平滚动以查看所有表格列。
| 工作流 | 预期结果 | 需保留的证据 |
|---|---|---|
| 表单和附件 | 一个存储的查询和一个可读文件;仅测试收件人 | 合成记录标识符和交付观察 |
| Webhook | 批准的测试事件到达预期的测试消费者 | 事件标识符和消费者结果 |
| 计划导出 | 一次受控运行、正确时区、无旧服务器重复 | 运行标识符和导出记录比较 |
| 编辑和访问者路由 | 预期权限、重定向、资产和 HTTPS 行为 | 已检查的 URL 和任何失败详情 |
定义旧系统上的最后一次写入
对于此示例,机构提议一个短暂的维护窗口:暂停查询提交和编辑,停止旧导出计划,完成或核算排队工作,然后创建最终数据库和上传副本。客户必须批准如何告知访问者提交暂时不可用。
记录最后接受的查询标识符和写入停止时间。在允许新提交之前,验证目标包含该记录及其附件。在 DNS 应答可能不同时,保持源无法接受独立写入。无法暂停写入的项目需要特定于应用程序的同步设计;不要在切换期间临时设计。
保留 DNS 决策日志
TTL 控制 DNS 应答的缓存时间。在切换时降低它不会使已按较早值缓存的应答失效,因此提前准备任何 TTL 更改,并从相关网络观察过渡。Cloudflare 还指出本地缓存可能延迟可见更改。 Cloudflare DNS TTL 文档.
记录记录名称和类型、旧值、预期值、先前 TTL、批准、更改时间和观察结果。如果同时存在,检查 IPv6 记录以及 IPv4 记录。保留无关的邮件记录。更改后,验证公共主机名到达预期的应用程序及其关键工作流,而不仅仅是预期的 IP 地址。
将回滚设为数据决策
商定具体的停止条件:最终查询缺失、附件无法打开、登录失败或 webhook 到达错误收件人。在新写入开始之前,可能可以演练返回保留的源。在目标接受新查询后,仅恢复旧备份或反转 DNS 可能会丢失这些记录。
如果在重新开放后出现停止条件,则暂停写入,保留两份副本,并让指定操作员在选择权威系统之前对更改进行协调。客户批准者决定是继续恢复还是使用商定的替代方案。保留简短的事件日志,而不是反复切换 DNS。
以证据和所有权结束迁移
让客户审查验收网格。确认一个活动调度器、新的备份路径、警报所有权和下一个观察检查点。在商定期限内保留源,然后明确批准其停用。根据项目协议移除临时访问和测试数据。
来源与审查
技术参考资料已于 2024 年 9 月 12 核查。2026 示例为规划演练;所引用的软件文档并不确立 PrivateHostLab 的服务能力。