1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > elasticsearch docker无法挂载_ElasticSearch数据备份与恢复

elasticsearch docker无法挂载_ElasticSearch数据备份与恢复

时间:2021-02-12 21:20:24

相关推荐

elasticsearch docker无法挂载_ElasticSearch数据备份与恢复

记录下ElasticSearch数据的备份与迁移过程

1.指定备份文件地址

由于这里使用docker安装的es,所以指定备份文件到挂载的宿主机目录中,如果不是docker安装,直接指定为主机的目录即可

1.列出所有的volume

root@zssy-test:/opt/docker/elk#vimdocker-compose.yml

root@zssy-test:/opt/docker/elk#dockervolumels

DRIVERVOLUMENAME

local73cd0ce3970fee80b3ff3d0211fb39c44b3b2cdcfd5c46d4b51f96ba59806d6e

localelk_elasticsearch

localelk_kibana

2.查看对应的宿主机目录

root@zssy-test:/opt/docker/elk#dockervolumeinspectelk_elasticsearch

[

{

"CreatedAt":"-07-29T13:40:15+08:00",

"Driver":"local",

"Labels":{

"pose.project":"elk",

"pose.volume":"elasticsearch"

},

"Mountpoint":"/var/lib/docker/volumes/elk_elasticsearch/_data",

"Name":"elk_elasticsearch",

"Options":null,

"Scope":"local"

}

]

3.查看dokcer-compose中指定的挂载关系

volumes:

-"elasticsearch:/usr/share/elasticsearch"

可以看到容器内/usr/share/elasticsearch目录对应宿主机的/var/lib/docker/volumes/elk_elasticsearch/_data目录。所以,设置的备份文件必须在/usr/share/elasticsearch下,这样再宿主机下可以直接找到对应的备份文件,否则,需要自己进入到容器内部,使用docker cp 命令从容器中拷贝出来,比较麻烦。修改elasticsearch.yml配置文件

path.repo:["/usr/share/elasticsearch/backup"]

修改完成之后重启es,重启之后配置才会生效

2.注册快照存储库

注册

PUThttp://192.168.0.112:9200/_snapshot/ecopherebbs

{

"type":"fs",

"settings":{

"location":"E://es/backup"

}

}

查看结果

GEThttp://192.168.0.112:9200/_snapshot

3.备份数据(执行快照)

备份

PUThttp://192.168.0.112:9200/_snapshot/ecopherebbs/snapshot_2029?wait_for_completion=true

{

"indices":"sjy_index,economic_index",

"ignore_unavailable":true,

"include_global_state":true

}

其中:

wait_for_completion=true时会一直阻塞直到快照完成snapshot_2029就是指定的备份快照命中请求体重indices指定需要备份的索引(多个用逗号隔开),也可以不指定,这样会备份所有的es索引库数据

执行后最终返回如下信息表示备份创建成功:

{

"accepted":true

}

查看结果

GEThttp://192.168.0.112:9200/_snapshot/ecopherebbs/snapshot_2029

其中最后的 snapshot_2029 就是上一步指定的备份快照名称 返回如下信息:

{

"snapshots":[

{

"snapshot":"snapshot_2029",

"uuid":"6LFUlFLRRBGHah3NkopxsA",

"version_id":7010199,

"version":"7.1.1",

"indices":[

"weather_fetch_bd_index",

"sjy_soil_tem_index",

"economic_income_index",

"sjy_rock_sys_index",

"sjy_pile_index",

".kibana_task_manager",

".kibana_1",

"sjy_economic_index",

"water_usage_index",

"water_temp_index",

"wild_animal_index",

"plant_light_index",

"plant_park_index",

".security-7",

"check_station_index",

"sjy_index"

],

"include_global_state":true,

"state":"SUCCESS",

"start_time":"-07-29T05:44:08.321Z",

"start_time_in_millis":1596001448321,

"end_time":"-07-29T05:44:09.928Z",

"end_time_in_millis":1596001449928,

"duration_in_millis":1607,

"failures":[],

"shards":{

"total":38,

"failed":0,

"successful":38

}

}

]

}

可以看到备份文件中所有索引库(indices)列表,总分片(shards)数,成功备份的分片数等信息

查看备份完成的数据文件

root@zssy-test:/var/lib/docker/volumes/elk_elasticsearch/_data/backup#pwd

/var/lib/docker/volumes/elk_elasticsearch/_data/backup

root@zssy-test:/var/lib/docker/volumes/elk_elasticsearch/_data/backup#ll

总用量52

drwxrwxr-x3zssyroot40967月2913:44./

drwxrwxr-x11zssyroot40967月2913:40../

-rw-rw-r--1zssyroot297月2913:44incompatible-snapshots

-rw-rw-r--1zssyroot15447月2913:44index-0

-rw-rw-r--1zssyroot87月2913:44index.latest

drwxrwxr-x18zssyroot40967月2913:44indices/

-rw-rw-r--1zssyroot222687月2913:44meta-6LFUlFLRRBGHah3NkopxsA.dat

-rw-rw-r--1zssyroot5257月2913:44snap-6LFUlFLRRBGHah3NkopxsA.dat

root@zssy-test:/var/lib/docker/volumes/elk_elasticsearch/_data/backup#

4.恢复数据

为本机恢复 本机节点恢复数据直接执行如下请求即可为其他节点恢复 如果需要对其他节点机器上的es进行数据恢复,需要再其他机器执行以上1、2、3步操作,进行备份目录的注册和指定,最后将上一步的备份文件拷贝至对应的备份文件目录中

POSThttp://192.168.0.112:9200:9200/_snapshot/ecopherebbs/snapshot_2029/_restore

其中:snapshot_2029就是之前备份时指定的备份名称

返回如下信息表示恢复成功:

{

"accepted":true

}

5.最佳实践

快照名称中加上节点名称与时间戳信息,便于备份文件管理恢复数据之前保证恢复的索引库在当前es示例中没有创建,否则会恢复失败使用定时任务和curl工具进行定时备份以保证es数据的可靠性

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。