elasticdump的安装与使用

1.下载node.js的安装包
http://wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.gz
2.解压安装包

tar xf node-v10.13.0-linux-x64.tar.gz
mv node-v10.13.0-linux-x64 /usr/local

修改文件夹名称
mv /usr/local/node-v12.18.3-linux-x64 /usr/local/nodejs
设置环境变量

echo export NODEJS_HOME=/usr/local/nodejs
echo export PATH=$PATH:$NODEJS_HOME/bin
echo export NODEJS_PATH=$NODEJS_HOME/lib/node_modules

使生效
source /etc/profile
创建软链接(也可以不创建)

ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm

验证是否安装成功

npm -v
node -v

通过npm 安装 elasticdump

npm install elasticdump -g (-g全局可用)
进入
cd /usr/local/nodejs/lib/node_modules/elasticdump/bin

可以看到两个命令
elasticdump -> ../lib/node_modules/elasticdump/bin/elasticdump
multielasticdump -> ../lib/node_modules/elasticdump/bin/multielasticdump

可以看到有两个命令,elasticdump用来备份单个索引,multielasticdump可以用来并行备份多个索引

==============
elasticdump 的使用
导出索引test_event的mapping映射结构:
elasticdump --input=http://127.0.0.1:9200/test_event --output=/opt/test_event_mapping.json --type=mapping
还可以直接导入到另一个es集群当中:
elasticdump --input=http://127.0.0.1:9200/test_event --output=http://127.0.0.2:9200/test_event --type=mapping
导出索引test_event的数据:
elasticdump --input=http://127.0.0.1:9200/test_event --output=/opt/data.json --type=data
同理,可直接将备份数据导入另一个es集群:
elasticdump --input=http://127.0.0.1:9200/test_event --output=http://127.0.0.2:9200/test_event --type=data
如果有用户名和密码:
elasticdump --input=http://elastic:EohFXEq4kcjxx9AYz9DU@172.29.113.5:9200/jm_loacle --output=/dev/dhc/my_index_mapping.json --type=mapping
elasticdump进行数据还原操作
elasticdump --input=/opt/test_event_mapping.json --output http://127.0.0.1:9200/ --type=mapping
data数据还原:
elasticdump --input=/opt/data.json --output=http://127.0.0.1:9200/test_event --type=data

使用elasticdump进行多个索引备份操作:

#将ES索引及其所有类型备份到es_backup文件夹中
multielasticdump direction = dump match ='^.*$'  input = http://127.0.0.1:9200   output =/tmp/es_backup
#仅备份ES索引以“ -index”(匹配正则表达式)为前缀的结尾。仅备份索引数据。所有其他类型都将被忽略。#注意:默认情况下会忽略分析器和别名类型
multielasticdump --direction=dump --match='^.*-index$' --input=http://127.0.0.1:9200 --ignoreType='mapping,settings,template'  --output=/tmp/es_backup
使用elasticdump进行多个索引还原操作:

multielasticdump --direction=load --input=/tmp/es_backup --output=http://127.0.0.1:9200

根据npm的elasticdump英文官网介绍可知,这里需要注意一点是,即使用multielasticdump有一个区别的地方是--direction的参数设置和--ignoreType参数设置。
备份时,--direction=dump是默认值,则--input必须是ElasticSearch服务器基本位置的URL(即http://localhost:9200),并且--output必须是目录。每个匹配的索引都会创建一个数据,映射和分析器文件。

还原时,要加载从multi- elasticsearch转储的文件,--direction应将其设置为load,--input必须是multielasticsearch转储的目录,并且--output必须是Elasticsearch服务器URL。

--match`用于过滤应转储/加载的索引(正则表达式)。

--ignoreType允许从转储/加载中忽略类型。支持六个选项。data,mapping,analyzer,alias,settings,template。提供了多类型支持,使用时每种类型必须用逗号分隔,并interval允许控制生成新索引的转储/装入的时间间隔。

--includeType允许将类型包含在转储/装载中。支持六个选项- data,mapping,analyzer,alias,settings,template。

离线安装
在安装好elasticdump的机器上,将模块缓存导出

查看缓存目录位置

npm config get cache
cd /root/

压缩缓存,并拷贝到待安装机器

tar -cf npm-cache.tar .npm
3、在离线机器上导入缓存模块进行安装
cd /root/

解压

tar -xvf npm-cache.tar

进入node下的lib目录执行安装命令

cd /usr/local/nodejs/lib
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump

建立文件软连接到系统命令

ln -s /root/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump

验证

elasticdump --help

posted @ 2022-12-12 10:16  donghongchao  阅读(2677)  评论(0编辑  收藏  举报