网站迁移前的备份与恢复演练
适用环境:拥有管理权限且产品允许建站的网站服务器。住宅云禁止建站,不适用。操作系统、Web服务、数据库和程序版本需要先核实;本文不提供通用的一键迁移脚本。
复制了网站目录,页面能打开,不代表迁移已经准备好。登录、附件、后台任务和新写入的数据可能分散在不同位置。本教程的结果是一套经过试恢复的迁移备份与验证记录;正式域名切换和业务切换另行安排。
先画出需要一起恢复的范围
| 项目 | 必须记录或保存的内容 |
|---|---|
| 文件 | 程序版本、上传附件、主题插件、自定义配置,以及放在站点外的资源目录。 |
| 数据库 | 库名、引擎、字符集/排序规则、版本、表/视图/例程/触发器及所需账号权限。 |
| 运行环境 | Web/PHP或其他语言版本、扩展、服务配置、目录权限、重写规则和定时任务。 |
| 外部依赖 | 对象存储、邮件、支付、回调和API配置的安全索引;敏感凭据独立保管。 |
列清哪些数据仍会写入:后台编辑、用户上传、订单、队列消费和定时任务。文件备份和数据库导出必须在可解释的一致性窗口内完成;不能在两个时间点分别取一份后,默认它们互相匹配。高写入业务应由熟悉该应用的人制定停写、增量或复制方案。
按同一批次完成备份
- 记录备份开始时间和计划维护窗口,通知需要配合的操作人员。
- 按应用支持的方法暂停写入或进入维护状态,同时处理仍可能写入的后台作业。
- 导出数据库并保存退出码、日志及版本资料;再备份已冻结的程序、附件和配置目录。
- 保存文件清单、数据库对象范围及各文件SHA256,记录完成时间。
- 恢复原业务写入前先确认备份流程完成;不要让“备份失败”长期变成网站停写。
tar、MySQL、PostgreSQL的具体命令应使用对应教程,并替换真实路径与数据库名。不要直接压缩正在运行的数据库数据目录作为通用逻辑备份。备份文件不得放到能通过网站域名公开下载的目录。
在隔离环境恢复到新的路径和库
- 准备兼容的测试系统和软件版本,将文件恢复到全新站点目录,将数据库导入全新隔离实例或测试库。
- 检查目录权限和应用配置,让测试程序只连接测试数据库。
- 在测试环境停用生产支付、邮件、通知、定时扣费和外部回调,防止演练产生真实业务动作。
- 使用受控测试域名、内部入口或本机解析方式访问;不要直接把正式DNS指向尚未验收的环境。
至少验证这些真实功能
- 前台首页、一个动态详情页,以及使用伪静态/重写规则的地址。
- 使用专门测试账号登录,读取一条已知记录,检查中文和时间是否正确。
- 打开一份近期附件,确认数据库引用的文件真实存在。
- 在隔离环境测试一次新增与修改,检查写权限、数据库连接和必要扩展。
- 核对后台任务及外部接口的配置范围,记录哪些仍未验证,不用“首页正常”替代完整结论。
演练记录用于决定是否切换
记录备份批次、恢复步骤、失败点、修正项和实际耗时。若恢复耗时超过可接受停机时间,或者关键功能未通过,应先调整迁移方案。正式切换前还要重新安排最后一次数据追平、停止写入窗口、访问切换和回退条件;不能把数天前的试恢复数据直接作为上线数据。演练环境和备份中含有真实资料时,应限制访问,结束后按既定保留要求处理。