自动备份与恢复PolarSearch数据

更新时间:
复制为 MD 格式

PolarSearch自动备份功能每日自动创建数据快照,支持从快照恢复数据,保障搜索服务的数据安全。

适用范围

PolarSearch版本为3.0.0.0.0及以上。

说明

您可以通过搜索地址访问PolarSearchversion.number中查看PolarSearch版本。

注意事项

  • 自动备份策略polarsearch-auto-backup-policy由系统自动创建和管理,请勿手动删除或修改该策略,否则将导致自动备份功能失效。

  • 快照仓库polarsearch_auto_snapshot由系统自动创建,请勿手动删除该仓库,否则将导致已有快照丢失。

  • 自动备份目前暂不支持跨集群恢复,仅支持在当前集群的搜索节点内恢复数据。若需跨集群恢复,请通过手动备份将PolarSearch数据存入您的OSS Bucket后执行恢复操作。

自动备份策略说明

PolarSearch会自动创建名为polarsearch-auto-backup-policy的备份策略,按照以下规则自动执行备份:

说明

PolarSearch集群的第一个快照是集群数据的完整拷贝,后续所有快照所同步的数据为已存快照与新快照之间的增量。首次快照耗时较长是正常现象,系统会自动处理,无需您手动干预。

参数

说明

执行频率

每天一次,执行时间为北京时间(UTC+8)00:00。

快照仓库

polarsearch_auto_snapshot

备份方式

增量备份。每次快照仅记录自上次快照以来发生变化的数据。

保留策略

最少保留7个快照,最多保留14个快照,最长保留14天。超出保留策略的快照将被自动清理。

查看自动备份快照

您可以通过APIDashboard查看自动备份创建的快照。

通过API查看

通过PolarSearchAPI查看快照信息。

  • 查看所有快照:

    curl -u <user>:<password> -X GET "http://<polarsearch_endpoint>/_snapshot/polarsearch_auto_snapshot/_all?pretty"
  • 查看指定快照详情:

    curl -u <user>:<password> -X GET "http://<polarsearch_endpoint>/_snapshot/polarsearch_auto_snapshot/<快照名称>?pretty"

返回结果示例(部分展示):

{
  "snapshots": [
    {
      "snapshot": "polarsearch-auto-backup-policy-xxx-xxx",
      "uuid": "xxxxxxxxxxxxxxxxxxxxxxxx",
      "version_id": 136397827,
      "version": "3.3.2",
      "indices": [
        ".plugins-ml-config",
        "test_index"
      ],
      "state": "SUCCESS",
      "start_time": "2026-03-31T16:00:00.279Z",
      "end_time": "2026-03-31T16:00:05.432Z"
    }
  ]
}

关键字段说明:

字段

说明

snapshot

快照名称。自动备份的快照名称以polarsearch-auto-backup-policy-开头,后跟时间戳和随机字符串。

indices

快照中包含的索引列表。

state

快照状态。SUCCESS表示快照创建成功。

start_time / end_time

快照的开始时间和结束时间(UTC时区)。

通过Dashboard查看

  1. 通过Dashboard访问PolarSearch

  2. 在左侧导航栏中,选择Management > Snapshot Management并单击Snapshots进入快照页面。

  3. 单击Repositories页签,找到polarsearch_auto_snapshot仓库,查看对应的快照列表。

从自动备份恢复数据

当数据误删或索引损坏时,您可以从自动备份的快照中恢复数据。通过_restore API,将数据恢复到原PolarSearch搜索节点中。详细说明,请参见恢复数据

重要
  • 若非集群故障恢复场景或用户权限等配置需要回滚的场景,建议不要恢复以.开头的系统索引,仅恢复您所需要恢复的数据索引。如果需要恢复全量的数据索引,可参考示例二:恢复全量数据索引(排除系统索引)

  • 为防止误操作导致系统索引恢复异常,进而影响集群稳定性,当前已限制对系统索引的用户级操作权限。因此,在执行包含系统索引的全量恢复时,可能会收到权限不足或类似提示。如确有恢复系统索引的业务需求,请联系提交工单联系我们为您处理。

  • 若需要恢复的索引名在当前PolarSearch搜索节点中已经存在,那么在恢复自动备份数据之前,需要删除原索引,或是通过rename的方式为恢复的索引重命名,否则在恢复过程中会提示报错。

示例一:恢复所有索引

从指定快照中恢复所有索引。

curl -u <user>:<password> -X POST "http://<polarsearch_endpoint>/_snapshot/polarsearch_auto_snapshot/<快照名称>/_restore?pretty"
说明

您可添加wait_for_completion参数,确定是否同步等待快照恢复完成。

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

  • 异步执行:设置wait_for_completion=false,命令会立即返回,{"accepted": true}表示恢复请求已被接受,实际恢复时间取决于数据量大小。您可以通过GET _cat/indices?v查看索引恢复状态。

    • typesnapshot的索引分片恢复进度。

    • stageindex表示正在进行恢复,为done表示该分片已完成。

示例二:恢复全量数据索引(排除系统索引)

快照中可能包含以.开头的系统索引(如.plugins-ml-config.opensearch-observability等)。如果只需要恢复业务数据索引,可以使用*,-.*排除系统索引。

说明
  • 使用*通配符匹配所有索引。

  • 使用-.*出去所有以.开头的系统索引,保留所有数据索引。

curl -u <user>:<password> -X POST "http://<polarsearch_endpoint>/_snapshot/polarsearch_auto_snapshot/<快照名称>/_restore?pretty" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "*,-.*"
  }'

示例三:恢复指定索引

如果只需要恢复特定索引,可以在请求体中指定索引名称。您还可以使用rename_patternrename_replacement参数将索引恢复为不同的名称,避免与现有索引冲突。

curl -u <user>:<password> -X POST "http://<polarsearch_endpoint>/_snapshot/polarsearch_auto_snapshot/<快照名称>/_restore?pretty" \
  -H "Content-Type: application/json" \
  -d '{
    "indices": "<索引名称>",
    "rename_pattern": "(.+)",
    "rename_replacement": "restored_$1"
  }'

参数说明:

参数

说明

indices

指定要恢复的索引名称。支持使用逗号分隔多个索引名称,例如"index1,index2"。也支持使用通配符,例如"test_*"

rename_pattern

正则表达式,用于匹配需要重命名的源索引名称。例如"(.+)"匹配所有索引名称。

rename_replacement

替换后的索引名称。可使用$1引用正则表达式中的捕获组。例如"restored_$1"会将索引test_index恢复为restored_test_index