手动备份与恢复PolarSearch数据

PolarSearch支持通过快照功能,将集群中的索引数据备份至您自有的对象存储(OSS)存储空间中,或从OSS中恢复数据。该功能可用于实现PolarSearch集群的跨集群数据迁移和自定义备份恢复,为您提供灵活、低成本的数据保护与流转方案。

说明

该功能目前处于邀测阶段。如需使用,您可以提交工单联系我们为您开启相关功能。

适用范围

费用说明

快照功能不收取费用,但快照文件存储在您的OSS Bucket中,会产生OSS存储费用和请求费用。计费详情请参见OSS计费概述

注册快照仓库

在使用快照功能前,您需要先注册一个快照仓库,用于关联您的OSS Bucket。您可使用以下API进行创建:

PUT /_snapshot/{repo-name}
{
    "type": "s3",
    "settings": {
      "endpoint": "{endpoint}",
      "bucket": "{bucket-name}",
      "base_path": "{path-name}",
      "region": "{region}",
      "compress": true
    }
}

参数说明

参数

说明

{repo-name}

仓库名称,请自定义。

type

仓库类型,固定为s3

endpoint

您的OSS Bucket的访问地址。详情请参见OSS地域和访问域名

bucket

您的OSS Bucket名称。

base_path

(可选)指定在OSS Bucket中存储快照文件的根目录路径。

region

指定Bucket所在地域(Region)。

compress

(可选)是否启用压缩,默认为false

示例

请将以下的参数替换为您的实际信息

curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "s3",
    "settings": {
      "endpoint": "{endpoint}",
      "bucket": "{bucket-name}",
      "base_path": "{path-name}",
      "region": "{region}",
      "compress": true
    }
  }'

创建快照:备份数据至OSS

注册快照仓库后,执行以下命令为指定索引创建快照。您可使用以下API进行创建:

PUT /_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true
{
    "indices": "{index-name}",
    "ignore_unavailable":false
}

参数说明

参数分类

参数名

说明

请求参数

wait_for_completion

是否同步等待快照操作完成。默认为false

  • 同步执行:设置wait_for_completion=true,命令会等待快照创建完成后再返回结果。

  • 异步执行:设置wait_for_completion=false,命令会立即返回,快照在后台创建。您可以通过以下命令查看快照状态,当返回结果中state字段为SUCCESS时,表示创建完成。

    GET /_snapshot/{repo-name}/{snapshot-name}/_status

请求体参数

indices

指定要备份的索引,支持通配符*,多个索引以逗号,分隔。默认为所有索引。

说明

使用通配符*会备份系统索引表,若不想备份或恢复系统索引表,可以通过仅指定要备份和恢复的索引,或者使用-排除掉系统索引表。

ignore_unavailable

当指定的索引不存在时,是否忽略该索引并继续创建快照。默认为false(即失败)。

partial

是否允许创建部分快照。如果设置为true,即使部分分片失败,仍会保存成功分片的数据。默认为false

示例

请将以下的参数替换为您的实际信息

curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "{index-name}",
    "ignore_unavailable": false
  }'

查看快照

查看您OSS快照仓库中的所有快照信息。您可使用以下API进行查看:

GET /_snapshot/{repo-name}/_all?pretty

示例

请将以下的参数替换为您的实际信息

curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"

恢复数据

执行以下命令,从指定快照中恢复索引数据。您可使用以下API进行恢复:

说明

若需将一个PolarSearch集群的快照恢复至另一个PolarSearch集群,则目标PolarSearch集群需注册与源PolarSearch集群相同的快照仓库。如果恢复操作在同一个PolarSearch集群内进行,则无需再次注册,可直接执行数据恢复。

POST /_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true
{
  "indices": "{index-name}",
  "ignore_unavailable": true
}

参数说

参数分类

参数名

说明

请求参数

wait_for_completion

是否同步等待快照恢复完成。默认为false

  • 同步执行:设置wait_for_completion=true,命令会等待恢复完成后再返回。

  • 异步执行:设置wait_for_completion=false,命令会立即返回,恢复任务在后台进行。您可以通过以下命令查看索引的恢复进度,当stage字段为DONE时,表示恢复完成。

    GET /{index-name}/_recovery

请求体参数

indices

指定要恢复的索引,支持通配符*,多个索引以逗号,分隔。默认为所有索引。

ignore_unavailable

当指定的索引不存在时,是否忽略该索引并继续创建快照。默认为false(即失败)。

partial

是否允许创建部分快照。如果设置为true,即使部分分片失败,仍会保存成功分片的数据。默认为false

index_settings

在恢复时覆盖快照中的索引设置。例如,您可以修改副本数量以适应目标集群的配置。

ignore_index_settings

指定在恢复时需要忽略的索引设置列表,通常用于忽略原特有的配置。

示例

请将以下的参数替换为您的实际信息

curl -X POST "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true" \
  -u "{username}:{passwd}" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "{index-name}",
    "ignore_unavailable": true
  }'