使用快照备份集合
快照是 Amazon OpenSearch 无服务器集合的时间点备份,可提供灾难恢复功能。OpenSearch 无服务器可自动创建和管理集合的快照,确保业务连续性和数据保护。每个快照包含:
-
索引元数据:索引的设置和映射
-
集群元数据:索引模板和别名
-
索引数据:所有存储在索引中的文档和数据
主要优势
-
自动每小时备份,无需手动配置
-
零维护开销
-
无额外存储成本
-
意外数据丢失后的快速恢复
-
从快照恢复特定索引的能力
重要注意事项
-
创建快照并非瞬间完成,需要一定时间才能完成。
-
在快照创建过程中新增或更新的文档可能不会包含在快照中。
-
快照只能还原到其原始集合,而不能还原到新集合。
-
还原后,索引将获得与原始版本不同的全新 UUID。
-
一次只能运行一个还原操作。
-
无法同时对同一集合启动多个还原操作。在活动还原操作期间尝试还原索引会导致操作失败。
-
还原操作期间,您对索引的请求会失败。
所需的权限
要使用快照,则在数据访问策略中配置以下权限。有关数据访问策略的更多信息,请参阅 数据访问策略与 IAM policy 对比。
| 数据访问策略 | API |
|---|---|
| aoss:DescribeSnapshot | GET /_cat/snapshots GET /_cat/snapshots/aoss-automated/ GET _snapshot/aoss-automated/ |
| aoss:RestoreSnapshot | POST /_snapshot/aoss-automated/snapshot/_restore |
| aoss:DescribeCollectionItems | GET /_cat/recovery |
可使用以下 AWS CLI 命令配置策略:
以下是用于创建访问策略的 CLI 命令示例:
aws opensearchserverless create-access-policy \ --type data \ --nameAWSExample-data-access-policy\ --region us-west-2 \ --policy '[ { "Rules": [ { "Resource": [ "collection/AWSExample-collection" ], "Permission": [ "aoss:DescribeSnapshot", "aoss:RestoreSnapshot", "aoss:DescribeCollectionItems" ], "ResourceType": "collection" } ], "Principal": [ "arn:aws:iam::AWSExample-account-ID:user/AWSExample-user" ], "Description": "Data policy to support snapshot operations." } ]'
快照的使用
默认情况下,当创建新集合时,OpenSearch 无服务器会每小时自动创建一次快照。您无需执行任何操作。每个快照均包含集合中的所有索引。OpenSearch 无服务器创建快照后,您可以使用以下命令列出快照并查看快照的详细信息。
Listing snapshots
使用以下命令列出集合中的所有快照:
GET /_cat/snapshots/aoss-automated/
OpenSearch 无服务器返回类似以下内容的响应:
id status start_epoch start_time end_epoch end_time duration indices successful_shards failed_shards total_shards snapshot-AWSExampleSnapshotID1 SUCCESS 1737964331 07:52:11 1737964382 07:53:02 50.4s 1 snapshot-AWSExampleSnapshotID2 SUCCESS 1737967931 08:52:11 1737967979 08:52:59 47.7s 2 snapshot-AWSExampleSnapshotID3 SUCCESS 1737971531 09:52:11 1737971581 09:53:01 49.1s 3 snapshot-AWSExampleSnapshotID4 IN_PROGRESS 1737975131 10:52:11 - - 4.8d 3
Get snapshots
检索有关快照的信息。
GET _snapshot/aoss-automated/snapshot/
示例请求
GET _snapshot/aoss-automated/snapshot-AWSExampleSnapshotID1/
响应示例
{ "snapshots": [ { "snapshot": "snapshot-AWSExampleSnapshotID1-5e01-4423-9833Example", "uuid": "AWSExample-5e01-4423-9833-9e9eb757Example", "version_id": 136327827, "version": "2.11.0", "remote_store_index_shallow_copy": true, "indices": [ "AWSExample-index-0117" ], "data_streams": [], "include_global_state": true, "metadata": {}, "state": "SUCCESS", "start_time": "2025-01-27T09:52:11.953Z", "start_time_in_millis": 1737971531953, "end_time": "2025-01-27T09:53:01.062Z", "end_time_in_millis": 1737971581062, "duration_in_millis": 49109, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] }
了解快照响应字段
- id
-
快照操作的唯一标识符。
- status
-
快照操作的当前状态。可能的值包括:
-
SUCCESS -
IN_PROGRESS
-
- duration
-
完成快照操作所花的时间。
- indices
-
快照中包含的索引数量。
从快照还原
从快照还原可让您从先前创建的备份中恢复数据。此过程对于 OpenSearch 无服务器中的灾难恢复和数据管理至关重要。
重要注意事项
-
还原后的索引将具有与其原始版本不同的 UUID。
-
快照只能还原到其原始集合中。不支持跨集合还原。
-
还原操作可能会影响集群性能。相应地做好计划。
从快照还原已备份的索引
-
运行以下命令以识别合适的快照。
GET /_snapshot/aoss-automated/_all要查看较小的快照列表,请运行以下命令。
GET /_cat/snapshots/aoss-automated/ -
还原前,运行以下命令以验证快照的详细信息。
GET _snapshot/aoss-automated/snapshot-AWSExampleSnapshotID1/ -
运行以下命令,以从特定快照进行还原。
POST /_snapshot/aoss-automated/snapshot-ID/_restore可通过添加请求正文自定义还原操作。以下为示例。
POST /_snapshot/aoss-automated/snapshot-AWSExampleSnapshotID1-5e01-4423-9833Example/_restore { "indices": "opensearch-dashboards*,my-index*", "ignore_unavailable": true, "include_global_state": false, "include_aliases": false, "rename_pattern": "opensearch-dashboards(.+)", "rename_replacement": "restored-opensearch-dashboards$1" } -
运行以下命令查看还原进度。
GET /_cat/recovery
注意
在使用包含请求正文的命令还原快照时,可通过以下参数控制还原行为:
- indices
-
指定要还原的索引。此参数支持通配符模式。
- ignore_unavailable
-
即使快照中缺少索引,也允许还原操作继续进行。
- include_global_state
-
确定是否还原集群状态。
- include_aliases
-
控制是否还原关联的别名。
- rename_pattern and rename_replacement
-
允许在还原操作期间重命名索引。