PolarSearch自动备份功能每日自动创建数据快照,支持从快照恢复数据,保障搜索服务的数据安全。
适用范围
PolarSearch版本为3.0.0.0.0及以上。
您可以通过搜索地址访问PolarSearch在version.number中查看PolarSearch版本。
注意事项
-
自动备份策略
polarsearch-auto-backup-policy由系统自动创建和管理,请勿手动删除或修改该策略,否则将导致自动备份功能失效。 -
快照仓库
polarsearch_auto_snapshot由系统自动创建,请勿手动删除该仓库,否则将导致已有快照丢失。 -
自动备份目前暂不支持跨集群恢复,仅支持在当前集群的搜索节点内恢复数据。若需跨集群恢复,请通过手动备份将PolarSearch数据存入您的OSS Bucket后执行恢复操作。
自动备份策略说明
PolarSearch会自动创建名为polarsearch-auto-backup-policy的备份策略,按照以下规则自动执行备份:
PolarSearch集群的第一个快照是集群数据的完整拷贝,后续所有快照所同步的数据为已存快照与新快照之间的增量。首次快照耗时较长是正常现象,系统会自动处理,无需您手动干预。
|
参数 |
说明 |
|
执行频率 |
每天一次,执行时间为北京时间(UTC+8)00:00。 |
|
快照仓库 |
|
|
备份方式 |
增量备份。每次快照仅记录自上次快照以来发生变化的数据。 |
|
保留策略 |
最少保留7个快照,最多保留14个快照,最长保留14天。超出保留策略的快照将被自动清理。 |
查看自动备份快照
您可以通过API或Dashboard查看自动备份创建的快照。
通过API查看
通过PolarSearch的API查看快照信息。
-
查看所有快照:
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"
}
]
}
关键字段说明:
|
字段 |
说明 |
|
|
快照名称。自动备份的快照名称以 |
|
|
快照中包含的索引列表。 |
|
|
快照状态。 |
|
|
快照的开始时间和结束时间(UTC时区)。 |
通过Dashboard查看
-
在左侧导航栏中,选择并单击Snapshots进入快照页面。
-
单击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查看索引恢复状态。-
type为snapshot的索引分片恢复进度。 -
stage为index表示正在进行恢复,为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_pattern和rename_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"
}'
参数说明:
|
参数 |
说明 |
|
|
指定要恢复的索引名称。支持使用逗号分隔多个索引名称,例如 |
|
|
正则表达式,用于匹配需要重命名的源索引名称。例如 |
|
|
替换后的索引名称。可使用 |