es备份镜像配套恢复手册

1.复制文件

​ 将对应日期对应数据库的文件复制到目标机器。可通过ftp或xftp。

2. 解压文件

1
tar -zxvf snapshot_2025_10_11-153637.tar.gz

3. 还原

​ 将解压出来的文件放到es容器的snapshots文件夹中,一般会挂载出来。

3.1 注册快照

1
2
3
4
5
6
7
8
9
curl -u elastic:Admin@123 -X PUT "http://localhost:9200/_snapshot/my_backup" \
-H 'Content-Type: application/json' \
-d '{
"type": "fs",
"settings": {
"location": "/usr/share/elasticsearch/snapshots",
"compress": true
}
}'

返回类似:

1
{"acknowledged": true}

表示快照仓库注册成功。

image-20251014104021348

3.2 查看快照信息

1
curl -u elastic:Admin@123 -X GET "http://localhost:9200/_snapshot/my_backup/_all?pretty"

会显示:

1
2
3
4
5
6
7
8
9
10
{
"snapshots" : [
{
"snapshot" : "snapshot_2025_10_11-153637",
"uuid" : "P2khR1BFThWAmdaXzHdriA",
"state" : "SUCCESS",
...
}
]
}

这里的 "snapshot" 名称(如 snapshot_2025_10_11-153637)就是接下来要恢复的目标。

image-20251014104057126

3.3 执行快照恢复(restore)

1
2
3
4
5
6
7
curl -u elastic:Admin@123 -X POST "http://localhost:9200/_snapshot/my_backup/snapshot_2025_10_11-153637/_restore?wait_for_completion=true&pretty" \
-H 'Content-Type: application/json' \
-d '{
"rename_pattern": "^(.*)$",
"rename_replacement": "restored_$1"
}'

如果返回:

1
"state": "SUCCESS"

就说明数据恢复成功!

image-20251014105107331

4. 验证恢复的索引

1
curl -u elastic:Admin@123 -X GET "http://localhost:9200/_cat/indices?v"

image-20251014105159136