Win:快照创建以及恢复
1 创建Base仓库目录
在集群节点[node-1,node-2,node-3]下创建文件夹:snapshot
C:\own_tool\development_tool\elasticsearch-7.8.0-windows-x86_64\node1\data\snapshot
2 添加Base仓库路径到es配置文件
在集群节点[node-1,node-2,node-3]/config/elasticsearch.yml中添加base目录仓库[确保该目录三台节点都可访问到]:
path.repo: ["C:\\own_tool\\development_tool\\elasticsearch-7.8.0-windows-x86_64\\node1\\data\\snapshot"]
3 启动集群
这个就自己启动了哈
4 注册一个 my_backup_1 仓库
这里仅仅存放快照,记住,这里不是生成快照,只是注册一个仓库
curl -XPUT "http://localhost:9200/_snapshot/my_backup_1" -H 'Content-Type:application/json' -d '
{
"type": "fs",
"settings": {
"location": "C:\\own_tool\\development_tool\\elasticsearch-7.8.0-windows-x86_64\\node1\\data\\snapshot\\my_backup_1",
"max_snapshot_bytes_per_sec": "20mb",
"max_restore_bytes_per_sec": "20mb",
"compress": true
}
}'
type:fs 表示以快照的方式存储文件
location:仓库的地址(path.reop + location),共享文件系统路径必须确保集群所有节点都可以访问到
max_restore_bytes_per_sec:节点恢复速率(当从仓库恢复数据时)。默认20mb/s。
max_snapshot_bytes_per_sec:每个节点快照速率(当快照数据进入仓库时)。默认20mb/s。
compress:是否压缩,默认为是。
chunk_size:块大小,在快照过程中,大文件会被分解成块,该属性指定块的大小。1GB、500MB、5KB、500B,默认为null(不受块大小限制。)
readonly:让库只读,默认为false
5 查看仓库的信息
curl -XGET 'http://localhost:9200/_snapshot/my_backup_1?pretty'
curl -XGET 'http://localhost:9200/_snapshot/_all'
6 快照所有打开的索引
发送完请求会立即响应,快照会在后台进行
# curl -XGET -u elastic:123321 http://localhost:9200/_snapshot/仓库名称/快照名称
curl -XPUT 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1'
# 指定wait_for_completion=true时会一直阻塞直到快照完成。
curl -XPUT 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1?wait_for_completion=true
7 快照指定索引
curl -XPUT 'http://localhost:9200/_snapshot/my_backup_1/snapshot_2'
{
"indices": "my_index_1,my_index_2",
"ignore_unavailable": "true",
"include_global_state": "false",
"partial": "false",
"wait_for_completion": "true"
}'
my_backup_1:表示仓库名称。
snapshot_2:表示快照名称(快照名称必须是小写)
indices:表示创建哪些索引的快照,空表示所有。
ignore_unavailable:忽略不存在的索引(不设置会快照请求会失败)
include_global_state:防止集群的全局状态被作为快照的一部分储存起来
wait_for_completion=true:参数指定是在初始化快照(默认)后立即返回请求还是等待快照完成,true表示等待快照完成之后返回请求。
不设置表示进行后台创建快照,立即返回请求。
partial:默认情况下,如果快照红的1个或多个索引不是全部分片都可用会导致整个请求过程失败,将其设置为 true 可以改变此行为。
8 查看备份情况
curl -XGET 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1'
9.0 删除,关掉备份之前的索引
1)删除索引:
curl -XDELETE 'http://localhost:9200/索引名称'
2)关闭索引:
curl -XPOST 'http://localhost:9200/索引名称/_close'
9.1 快照恢复
#异步调用
curl -XPOST 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1/_restore'
#同步阻塞
curl -XPOST 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1/_restore?wait_for_completion=true'
10 恢复指定索引并重命名索引
curl -XPOST 'http://localhost:9200/_snapshot/my_backup_1/snapshot_2/_restore
{
"indices": "my_index_1,my_index_2",
## "rename_pattern": "my_index_1_2022",
"rename_pattern": "my_index_(.+)",
## "rename_replacement":"restored_my_index_1"
"rename_replacement": "restored_my_index_$1"
}'
rename_pattern:查找所提供的模式能匹配上的正在恢复的索引。
rename_replacement:然后把它们重命名成替代的模式。
wait_for_completion=true:参数指定是在恢复快照后立即返回请求还是等待快照完成,true表示等待快照完成之后返回请求。
不设置表示立即返回请求,然后后台恢复索引。
11 查看备份恢复情况
# 1)查看全部快照恢复情况:
curl -XGET 'http://localhost:9200/_recovery'
# 2)查看指定索引快照恢复情况:
curl -XGET 'http://localhost:9200/my_index_1/_recovery'
12 删除快照
curl -XDELETE 'http://localhost:9200/_snapshot/my_backup_1/snapshot_1'