1,装置 Node.js
# 解压
tar -zxvf node-v12.18.3-linux-x64.tar.xz -C /home/install
# 配置环境变量
vi /etc/profile
# 追加如下内容
export NODEJS_HOME=/home/install/node-v12.18.3-linux-x64
export NODEJS_PATH=$NODEJS_HOME/lib/node_modules
export PATH=$NODEJS_HOME/bin:$PATH
# 刷新环境变量
source /etc/profile
# 测试
npm -v
node -v
2,装置 elasticdump
具体的参数细节能够参考 elasticdump 官网,其实也蕴含具体的应用细节。
- 在线装置
npm install elasticdump -g
- 应用离线缓存装置的形式
# 解压缓存包,是在编写以后文档的时候保留的,如果生效了,在本地再生成一份即可
tar -xvf npm-cache.tar
# 进入 node 下的 lib 目录执行装置命令
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
# 建设文件软连贯到系统命令, 如果 elasticdump 不在这个目录下,能够应用一下命令查找 find / -name 'elasticdump'
ln -s /home/install/node-v12.18.3-linux-x64/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump
# 验证
elasticdump --help
3,简略应用案例
# 备份索引
elasticdump --input=http://192.168.73.156:9200/item --output=/home/elasticsearch/bakDemo/item_mapping.json --type=mapping
# 备份数据
elasticdump --input=http://192.168.73.156:9200/item --output=/home/elasticsearch/bakDemo/item_data.json --type=data
# 还原索引
elasticdump --input=/home/elasticsearch/bakDemo/item_mapping.json --output=http://192.168.73.156:9200/item --type=mapping
# 还原数据
elasticdump --input=/home/elasticsearch/bakDemo/item_data.json --output=http://192.168.73.156:9200/item --type=data
4,全量备份与还原
# 创立导出的目录,须要放弃为空
mkdir /home/es_backup
# 执行导出命令
# 留神 "--ignoreChildError" 参数:ignoreChildError allows multi-elasticdump to continue if a child throws an error.
multielasticdump \
--direction=dump \
--match='^.*$' \
--ignoreChildError \
--input=http://192.168.73.156:9200 \
--output=/home/es_backup
# 执行还原命令
# 留神:这里测试还原的版本是 5.6.14,所以还是须要 template 的,然而自身在导出的文件中不蕴含 template 文件,所以这里应用 ignoreType 选项在导入的时候疏忽掉
multielasticdump \
--direction=load \
--ignoreChildError \
--input=/home/es_backup \
--ignoreType='template' \
--output=http://192.168.73.156:9200