

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 还原快照
<a name="managedomains-snapshot-restore"></a>

在恢复快照之前，请确保目标域不使用[带待机功能的多可用区](managedomains-multiaz.md#managedomains-za-standby)。启用待机状态会导致恢复操作失败。

**警告**  
如果您使用索引别名，应在删除别名的索引前停止向该别名写入请求（或将别名切换至其他索引）。停止写入请求有助于避免以下情景：  
您删除某个索引，同时会删除它的别名。
对于现已删除的别名的错误写入请求会创建一个与别名同名的新索引。
由于与新索引的命名冲突，您无法再使用别名。如果将别名切换到其他索引，请在从快照中还原时指定 `"include_aliases": false`。

还原快照

1. 确定要还原的快照。确保此索引的所有设置（例如，自定义分析器软件包或分配要求设置）均与域兼容。要查看所有快照存储库，请运行以下命令：

   ```
   curl -XGET 'domain-endpoint/_snapshot?pretty'
   ```

   在确定存储库后，您可以运行以下命令查看所有快照：

   ```
   curl -XGET 'domain-endpoint/_snapshot/repository-name/_all?pretty'
   ```
**注意**  
大多数自动快照存储在 `cs-automated` 存储库中。如果您的域对静态数据进行加密，这些快照将存储在 `cs-automated-enc` 存储库中。如果您没有看到要查找的手动快照存储库，请确保您已向域[注册](managedomains-snapshot-registerdirectory.md)该存储库。

1. （可选）如果群集上的索引与快照中的索引之间存在命名冲突，请删除或重命名 OpenSearch 服务域中的一个或多个索引。您无法将索引的快照还原到已包含同名索引的 OpenSearch 集群中。

   如果索引命名冲突，您可以使用以下选项：
   + 删除现有 OpenSearch 服务域上的索引，然后恢复快照。
   + 从快照还原索引时为其重命名，之后为它们重新编制索引。要了解如何重命名索引，请参阅 OpenSearch 文档中的[此示例请求](https://opensearch.org/docs/latest/api-reference/snapshots/restore-snapshot/#example-request)。
   + 将快照还原到不同的 OpenSearch 服务域（只能使用手动快照）。

   以下命令将删除域中的所有现有索引：

   ```
   curl -XDELETE 'domain-endpoint/_all'
   ```

   但是，如果您不打算还原所有索引，则可以仅删除一个索引：

   ```
   curl -XDELETE 'domain-endpoint/index-name'
   ```

1. 要还原快照，请运行以下命令：

   ```
   curl -XPOST 'domain-endpoint/_snapshot/repository-name/snapshot-name/_restore'
   ```

   由于 OpenSearch 仪表板上的特殊权限和精细的访问控制索引，尝试恢复所有索引可能会失败，尤其是在您尝试从自动快照还原时。以下示例通过 `my-index` 快照存储库中的 `2020-snapshot` 来只还原一个索引 `cs-automated`：

   ```
   curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \
   -d '{"indices": "my-index"}' \
   -H 'Content-Type: application/json'
   ```

   您还可能需要还原*除*控制面板和精细访问控制索引以外的所有索引：

   ```
   curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \
   -d '{"indices": "-.kibana*,-.opendistro*"}' \
   -H 'Content-Type: application/json'
   ```
**注意**  
根据您的 OpenSearch 版本，可能还需要排除其他系统索引，例如`-.opensearch-observability*`和`-.plugins-ml-config*`。如果目标域上已经存在这些索引，则恢复操作可能会失败。要将其排除在外，请将其添加到`indices`排除列表中。例如：`"indices": "-.kibana*,-.opendistro*,-.opensearch-observability*,-.plugins-ml-config*"`。

   使用 `rename_pattern` 和 `rename_replacement` 参数，即可在不删除快照数据的情况下恢复快照。有关这些参数的更多信息，请参阅 OpenSearch 文档中的恢复快照 API [请求字段](https://opensearch.org/docs/latest/api-reference/snapshots/restore-snapshot/#request-fields)[和示例请求](https://opensearch.org/docs/latest/api-reference/snapshots/restore-snapshot/#example-request)。

**注意**  
如果并非所有主分片都适用于涉及的索引，则快照的 `state` 可能为 `PARTIAL`。此值表示未成功存储至少一个分片中的数据。您仍可以从部分快照进行还原，但可能需要使用较旧的快照来还原任何缺失的索引。