# 时间点恢复

Source: https://support.kapsulehost.com/zh-cn/site-pitr

时间点恢复功能适用于 WordPress 和 WooCommerce 网站，可以让您将数据库重建为所选某一分钟时的状态，而不仅仅是昨天备份运行那一刻的状态。本指南将介绍该功能涵盖的范围和不涵盖的范围、如何启用它、如何请求恢复，以及恢复操作究竟会影响哪些内容。

## 用途说明

每日备份只能为您提供每天一个恢复点。这对于大多数灾难情况来说是足够的，但对于某个特定情况却毫无用处：例如在下午 2:15 发生了错误的导入、损坏的插件或错误的批量编辑，而您在下午 4 点才发现。恢复昨天的备份会连同错误一起丢弃整个上午的真实工作成果。

时间点恢复正是为了解决这一问题。启用后，数据库的变更日志会持续发送到异地存储，这样恢复操作就可以回放到保留时间窗口内的任意一分钟。

> **Warning:** 时间点恢复仅涵盖数据库。它不涵盖您的文件：不包括上传内容、主题或插件代码，也不包括磁盘上的配置文件。如果有人删除了一个图片文件夹，PITR 无法将其恢复。对于文件，您需要使用文件备份。请参阅[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)和[从备份恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)。

## 该功能在 KPanel 中的位置

1. 登录 [KPanel](https://kpanel.kapsulehost.com)。
2. 点击左侧边栏中的**网站**，然后点击相应的站点。
3. 在该站点的左侧菜单中，打开**备份**，然后打开**时间点恢复**。

直接访问地址为 `/websites/<site-id>/pitr`。

![KPanel 中某站点的时间点恢复](https://support.kapsulehost.com/help/screenshots/site-pitr.a2b6d785.webp)

## 使用资格

时间点恢复功能需要同时满足两个条件。

**您的套餐必须包含此功能。** 该功能适用于 WordPress 套餐系列。

**该站点必须是 WordPress 或 WooCommerce 站点**，因为此机制依赖于受管数据库。

如果不满足上述任一条件，页面会明确说明：时间点恢复功能仅适用于具有受管数据库的 WordPress 和 WooCommerce 站点。在这种情况下没有任何可配置项。

## 启用方法

**PITR 状态**卡片会显示当前状态（以状态标签形式）、所使用的后端、上一次变更日志发送的时间，以及以天为单位的保留时间窗口。

点击**启用 PITR**即可开启该功能。保留期为 30 天。

启用此功能不会对您的数据做任何改动。它会启动一个持续发送的过程，与您正常的每日备份并行运行，但不会取代每日备份。

> **Note:** 启用后不会立即出现恢复点。发送过程必须至少成功运行一次，才能进行任何回放操作，首次发送会在大约五分钟内完成。在此之前，页面会提示您尚无可用的恢复点。

## 查看可用恢复时间窗口

一旦发送过程开始运行，**可用恢复时间窗口**卡片会显示您可以恢复到的最早和最晚时刻，以及为覆盖该时间段而保留的变更日志文件数量。

请在真正需要之前先查看此信息，而不要等到事故发生时才查看。如果时间窗口的起点比您预期的要晚，说明发送过程在某个时刻曾被中断，较早的覆盖范围已经过期。

## 请求恢复

1. 打开**时间点恢复**标签页。
2. 确认恢复时间窗口涵盖您所需要的时刻。
3. 在**恢复到时间戳**中，选择日期和时间。请选择损坏发生之前的时刻，而不是之后的时刻。
4. 点击**请求恢复到暂存数据库**。

请求会立即进行验证。如果时间戳超出了可用时间窗口，系统会直接告知您确切的时间窗口，而不会让您自行猜测。

## 恢复操作的实际效果

这一部分需要特别准确地说明，因为它与大多数人的预期恰恰相反。

**时间点恢复不会触及您的线上数据库。** 它会恢复到一个单独创建的暂存数据库中，该数据库专为此次恢复而创建，并以您的域名和目标日期命名。在整个过程中，您的线上网站会一直在自己的数据库上持续运行，不受任何影响。

请求恢复不会覆盖任何数据，不会删除任何数据，也不会导致任何数据丢失。这是刻意设计的：数据恢复工具的核心意义就在于，使用它绝不会让情况变得更糟。

您最终得到的是一个可供检查的数据库。您可以将其与线上数据库进行比较，提取出受损的数据行，或者决定将整个快照作为您想要的版本。将暂存恢复结果切换为线上数据库是一个独立的、需要我们团队与您共同完成的审慎步骤，而不是靠按一个按钮就能在后台自动完成的操作。

> **Important:** 切换到已恢复的数据库，确实会丢弃自恢复点以来写入线上数据库的所有内容。在该时间戳之后下的订单、留下的评论以及编辑的内容，都只存在于线上数据库中。在进行任何切换之前，请先确定哪些内容必须保留下来，并明确告知我们。这正是恢复操作会先落地到暂存环境的原因。

## 跟踪请求状态

每一次请求都会出现在**恢复请求**表格中：

| 列 | 显示内容 |
|---|---|
| Requested | 您发出请求的时间 |
| Target | 您请求恢复到的时间戳 |
| Status | 请求当前所处的阶段 |
| 暂存数据库 | 正在恢复到的数据库名称 |

在恢复过程进行期间，状态会显示当前所处的阶段，一旦回放开始，还会显示已应用的变更日志文件数量占总数的比例。失败的请求会在下方显示错误信息。

每个站点同一时间只能有一个恢复操作在进行中。如果在一个请求正在运行时又提出第二个请求，系统会返回冲突提示而不会将其排队，这样第二次尝试就不会破坏第一次的结果。

我们的工程团队会完成暂存恢复操作，并在暂存数据库准备就绪时通过电子邮件通知您。您在请求被接收时也会收到一封确认邮件，其中包含目标时间戳和暂存数据库名称。

## 选择合适的时间戳

**确定损坏开始的时间，而不是您发现问题的时间。** 这两者通常相差数小时。请查看您的活动日志、订单时间戳，或最后一次已知良好的内容编辑记录。

**将时间点设定为提前一两分钟。** 选取一个恰好在问题发生之前的恢复点，只会让您损失几分钟的正常写入数据。而选取一个恰好在问题之后的恢复点，则会连同损坏内容一起全部恢复。

**记录下恢复点之后发生的事情。** 包括订单、注册、评论、表单提交等。如果您决定进行切换，这份清单就是您需要手动补充的内容。

## 故障排查

**页面提示 PITR 仅适用于 WordPress 和 WooCommerce。** 要么该站点不属于这两种类型，要么您的套餐不包含此功能。

**尚无恢复点。** 启用后发送过程必须至少成功运行一次。首次发送会在大约五分钟内完成。

**我的目标时间超出了可用时间窗口。** 保留期为 30 天，如果发送过程曾被中断，时间窗口可能会更短。错误信息会说明确切的边界。如果您需要的时刻已超出保留期，请改用每日备份：请参阅[从备份恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)。

**已有恢复操作在进行中。** 请等待其完成。表格会显示其所处阶段和进度。

**状态显示了一条关于发送程序的提示信息。** 您的请求已被记录，提示信息说明了当前状态。不会有任何数据丢失。

**我需要恢复的是文件，而不是数据库。** PITR 无法帮助您。请使用文件备份，并且请注意，已完成的备份可以逐个文件浏览，而不必整体恢复。

## 相关页面

- [创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)：了解与此功能并行运行的每日文件和数据库备份。
- [从备份恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)：了解整站恢复的方式。
- [暂存环境](https://support.kapsulehost.com/zh-cn/staging-environments)：用于在改动上线前进行测试。
- [站点安全](https://support.kapsulehost.com/zh-cn/site-security)：如果数据丢失是由于遭到入侵而非操作失误所致。

如果您正处于事故处理过程中，不确定应使用哪种工具，请通过 KPanel 中的**支持**与我们联系，或发送电子邮件至 [support@kapsulehost.com](mailto:support@kapsulehost.com)，并注明站点名称和问题发生的时间。
