Link Search Menu Expand Document Documentation Menu

恢复快照

1.0 版引入

恢复集群或指定数据流和索引的快照。

如果集群中已经存在与您要恢复的快照同名的打开索引,则必须关闭、删除或重命名这些索引。有关重命名索引的信息,请参阅示例请求。有关关闭索引的信息,请参阅关闭索引

端点

POST _snapshot/<repository>/<snapshot>/_restore

路径参数

参数 数据类型 描述
存储库 字符串 包含要恢复的快照的存储库。
快照 字符串 要恢复的快照。

查询参数

参数 数据类型 描述
wait_for_completion 布尔型 是否等待快照恢复完成再继续。

请求正文字段

所有请求正文参数都是可选的。

参数 数据类型 描述
ignore_unavailable 布尔型 如何处理丢失或已关闭的数据流或索引。如果为 false,则请求将对任何丢失或已关闭的数据流或索引返回错误。如果为 true,则请求将忽略索引中丢失或已关闭的数据流和索引。默认为 false
ignore_index_settings 布尔型 要从快照中排除恢复的索引设置的逗号分隔列表。
include_aliases 布尔型 如何处理原始快照中的索引别名。如果为 true,则恢复原始快照中的索引别名。如果为 false,则别名及其相关索引不会被恢复。默认为 true
include_global_state 布尔型 是否恢复当前集群状态1。如果为 false,则不恢复集群状态。如果为 true,则恢复当前集群状态。默认为 false
index_settings 字符串 要在所有恢复的索引中添加或更改的设置的逗号分隔列表。使用此参数可以在快照恢复期间覆盖索引设置。对于数据流,这些索引设置将应用于恢复的后端索引。
索引 字符串 要从快照恢复的数据流和索引的逗号分隔列表。支持多索引语法。默认情况下,恢复操作包括快照中的所有数据流和索引。如果提供了此参数,则恢复操作仅包括您指定的数据流和索引。
partial 布尔型 如果快照中的索引没有所有主分片可用,恢复操作将如何执行。如果为 false,则如果快照中的任何索引没有所有主分片可用,整个恢复操作将失败。

如果为 true,则允许恢复分片不可用的索引的部分快照。仅恢复快照中成功包含的分片。所有缺失的分片都将被重新创建为空。默认情况下,如果快照中包含的一个或多个索引没有所有主分片可用,整个恢复操作将失败。要更改此行为,请将 partial 设置为 true。默认为 false
rename_pattern 字符串 要应用于已恢复数据流和索引的模式。与重命名模式匹配的数据流和索引将根据 rename_replacement 设置进行重命名。

重命名模式根据支持引用原始文本的正则表达式来应用。

如果两个或多个数据流或索引重命名为相同的名称,则请求将失败。如果重命名已恢复的数据流,则其后端索引也会被重命名。例如,如果将日志数据流重命名为 recovered-logs,则后端索引 .ds-logs-1 将重命名为 .ds-recovered-logs-1

如果重命名已恢复的流,请确保索引模板与新流名称匹配。如果没有匹配的索引模板名称,则流无法滚动,并且不会创建新的后端索引。
rename_replacement 字符串 重命名替换字符串。
rename_alias_pattern 字符串 要应用于已恢复别名的模式。与重命名模式匹配的别名将根据 rename_alias_replacement 设置进行重命名。

重命名模式根据支持引用原始文本的正则表达式来应用。

如果两个或多个别名重命名为相同的名称,则这些别名将合并为一个。
rename_alias_replacement 字符串 别名的重命名替换字符串。
source_remote_store_repository 字符串 要恢复的源索引的远程存储库名称。如果未提供,快照恢复 API 将使用创建快照时注册的存储库。
wait_for_completion 布尔型 是否在恢复操作完成后返回响应。如果为 false,则请求在恢复操作初始化时返回响应。如果为 true,则请求在恢复操作完成时返回响应。默认为 false
storage_type local 表示所有快照元数据和索引数据都将下载到本地存储。

remote_snapshot 表示快照元数据将下载到集群,但远程存储库仍将是索引数据的权威存储。数据将根据需要下载和缓存以服务查询。集群中至少有一个节点必须配置了搜索角色,才能使用 remote_snapshot 类型恢复快照。

默认为 local
 

1集群状态包括

  • 持久集群设置
  • 索引模板
  • 传统索引模板
  • 摄入管道
  • 索引生命周期策略

请求示例

以下请求将从 my-first-snapshot 恢复 opendistro-reports-definitions 索引。rename_patternrename_replacement 组合将导致索引重命名为 opendistro-reports-definitions_restored,因为集群中不允许存在重复的打开索引名称。

POST /_snapshot/my-opensearch-repo/my-first-snapshot/_restore
{
  "indices": "opendistro-reports-definitions",
  "ignore_unavailable": true,
  "include_global_state": false,              
  "rename_pattern": "(.+)",
  "rename_replacement": "$1_restored",
  "include_aliases": false
}

示例响应

成功后,响应返回以下 JSON 对象

{
  "snapshot" : {
    "snapshot" : "my-first-snapshot",
    "indices" : [ ],
    "shards" : {
      "total" : 0,
      "failed" : 0,
      "successful" : 0
    }
  }
}

除了快照名称,所有属性都为空或 0。这是因为快照生成后对卷所做的任何更改都将丢失。但是,如果调用获取快照 API 来检查快照,将返回一个完全填充的快照对象。

响应正文字段

字段 数据类型 描述
快照 字符串 快照名称。
索引 数组 快照中的索引。
分片 对象 创建的分片总数以及成功和失败的分片数量。

如果快照中的打开索引已存在于集群中,并且您未删除、关闭或重命名它们,则 API 将返回以下错误:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "snapshot_restore_exception",
        "reason" : "[my-opensearch-repo:my-first-snapshot/dCK4Qth-TymRQ7Tu7Iga0g] cannot restore index [.opendistro-reports-definitions] because an open index with same name already exists in the cluster. Either close or delete the existing index or restore the index under a different name by providing a rename pattern and replacement name"
      }
    ],
    "type" : "snapshot_restore_exception",
    "reason" : "[my-opensearch-repo:my-first-snapshot/dCK4Qth-TymRQ7Tu7Iga0g] cannot restore index [.opendistro-reports-definitions] because an open index with same name already exists in the cluster. Either close or delete the existing index or restore the index under a different name by providing a rename pattern and replacement name"
  },
  "status" : 500
}
剩余 350 字符

有问题?

想要贡献?