elasticserach备份和恢复方法
es可以使用自身的快照备份,但是需要依赖es 设置快照仓库。
这里我们使用第三方的elasticsearch-dump,依赖nodejs10+的环境。
以下只简单描述elasticsearch-dump的简单使用方法,其他方法可以看该项目的github
备份
# output就是输出的备份文件,如果es没有账号密码,es账号:es密码可以不填,端口位es 默认9200的端口,端口号后跟索引名称
cd elasticsearch-dump/bin
./elasticdump --output=./mapping.json --input=http://es账号:es密码@ip:port/index1 --type=mapping
./elasticdump --output=./data.json --input=http://es账号:es密码@ip:port/index1 --type=data
恢复
# 使用es 6 备份 到 es 7,如果在es6中有用_doc 以外的type,需要手动用mapping.json中的数据手动建立mapping(因为7默认只能用_doc),例如以下:
#
# PUT /index1
#
# PUT /index1/doc/_mapping?include_type_name=true
# {
# ...
# }
./elasticdump --input=./mapping.json --output=http://es账号:es密码@ip:port/index1 --type=mapping
./elasticdump --input=./data.json --output=http://es账号:es密码@ip:port/index1 --type=data