ElasticSearch索引备份

1,安装Node.js

# 解压 tar -zxvfnode-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

    推荐阅读