es备份
快照备份
创建仓库
PUT _snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mount/backups/my_backup"
}
}
- 1、给我们的仓库取一个名字my_backup。
- 2、我们指定仓库的类型应该是一个共享文件系统。比如nfs共享,挂载在/mount/backups/my_backup
- 3、最后,我们提供一个已挂载的设备作为目的地址。
- 4、其他的配置
当快照数据进入仓库时,这个参数控制这个过程的限流情况。默认是每秒 20mb 。max_snapshot_bytes_per_sec
当从仓库恢复数据时,这个参数控制什么时候恢复过程会被限流以保障你的网络不会被占满。默认是每秒 20mb。max_restore_bytes_per_sec
注意我们用的是 POST 而不是 PUT 。这会更新已有仓库的设置。POST _snapshot/my_backup/ { "type": "fs", "settings": { "location": "/mount/backups/my_backup", "max_snapshot_bytes_per_sec" : "50mb", "max_restore_bytes_per_sec" : "50mb" } }
然后添加我们的新设置。
快照所有打开的索引
PUT _snapshot/my_backup/snapshot_1
份所有打开的索引到 my_backup 仓库下 snapshot_1 的快照里
快照指定索引
这个快照命令现在只会备份 index1 和 index2 了。
PUT _snapshot/my_backup/snapshot_2
{
"indices": "index_1,index_2"
}
列出快照相关的信息
列出快照snapshot_2的信息
GET _snapshot/my_backup/snapshot_2
获取my_backup仓库下所有的快照信息
GET _snapshot/my_backup/_all
删除快照
删除snapshot_2快照
DELETE _snapshot/my_backup/snapshot_2
监控快照进度
GET _snapshot/my_backup/snapshot_2/_status
取消一个快照
DELETE _snapshot/my_backup/snapshot_2
从快照恢复
将snapshot_1恢复。
POST _snapshot/my_backup/snapshot_1/_restore
默认行为是把这个快照里存有的所有索引都恢复,也可以指定这个快照中的具体索引进行恢复。
恢复snapshot_1快照中的index_1索引,并重命名为restored_index_1
POST /_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
- 只恢复 index_1 索引,忽略快照中存在的其余索引。
- 查找所提供的模式能匹配上的正在恢复的索引。
- 然后把它们重命名成替代的模式。
POST /_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
监控恢复操作
GET restored_index_3/_recovery
或者查看你集群里所有索引,可能包括跟你的恢复进程无关的其他分片移动:
GET /_recovery/
取消一个恢复
要取消一个恢复,你需要删除正在恢复的索引。因为恢复进程其实就是分片恢复,发送一个 删除索引 API 修改集群状态,就可以停止恢复进程。比如:
DELETE /restored_index_3
如果 restored_index_3 正在恢复中,这个删除命令会停止恢复,同时删除所有已经恢复到集群里的数据。