安装node
使用 node 安装 elasticdump 非常方便。
node 官网:传送门 https://nodejs.org/en
下载版本:node-v12.14.0-linux-x64.tar.gz
安装环境:centos7.9
创建nodejs文件夹
代码语言:bash复制cd /usr/local
mkdir nodejs
解压文件
代码语言:bash复制tar -xzvf node-v12.14.0-linux-x64.tar.gz
移动nodejs文件
代码语言:bash复制mv node-v12.14.0-linux-x64/* /usr/local/nodejs
建立软链接
此时的bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以通过建立软链接的方式将这个设置为全局。
代码语言:bash复制ln -s /usr/local/nodejs/bin/node /usr/local/bin
代码语言:bash复制ln -s /usr/local/nodejs/bin/npm /usr/local/bin
测试node
代码语言:bash复制[root@ncayu8847 data]# node -v
v12.14.0
[root@ncayu8847 data]# npm -v
6.13.4
安装打包工具 npm-pack-all
代码语言:bash复制npm install -g npm-pack-all
打包步骤
- 找到项目中node-modules;
- 在node-modules中找到需要打离线包的依赖包;
- 在上述的依赖包中找到node-modules;
- 在终端中打开这个node-modules并执行npm-pack-all;
- 在文件夹中打开执行npm-pack-all的路径,可以在当前或者下一级看到tgz包。
安装elasticdump
代码语言:bash复制npm install elasticdump -g
代码语言:bash复制[root@ncayu8847 data]# npm install elasticdump -g
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated s3signed@0.1.0: This module is no longer maintained. It is provided as is.
/usr/local/nodejs/bin/multielasticdump -> /usr/local/nodejs/lib/node_modules/elasticdump/bin/multielasticdump
/usr/local/nodejs/bin/elasticdump -> /usr/local/nodejs/lib/node_modules/elasticdump/bin/elasticdump
elasticdump@6.103.0
added 128 packages from 200 contributors in 58.933s
[root@ncayu8847 data]#
打包elasticdump
进入到elasticdump安装目录
代码语言:bash复制cd /usr/local/nodejs/lib/node_modules/elasticdump/
执行 npm-pack-all
当前目录生成 elasticdump-6.82.0.tgz
代码语言:bash复制/usr/local/nodejs/lib/node_modules/npm-pack-all/index.js
npm 离线安装esdump
代码语言:bash复制npm install elasticdump-6.84.1.tgz
确认安装成功
elasticdump创建软连接
代码语言:bash复制ln -s /usr/local/nodejs/lib/node_modules/elasticdump/bin/elasticdump /usr/local/bin
代码语言:bash复制elasticdump --help
elasticdump备份ES数据库
迁移Setting和Mapping等
代码语言:bash复制elasticdump
--input=http://192.168.1.1:9200/my_index
--output=http://192.168.3.2:9200/my_index
--type=analyzer
elasticdump
--input=http://192.168.1.1:9200/my_index
--output=http://192.168.3.2:9200/my_index
--type=settings
elasticdump
--input=http://192.168.1.1:9200/my_index
--output=http://192.168.3.2:9200/my_index
--type=mapping
迁移数据
代码语言:bash复制elasticdump
--input=http://192.168.1.1:9200/my_index
--output=http://192.168.3.2:9200/my_index
--type=data
示例
代码语言:bash复制elasticdump
--input='http://elastic:password@192.168.1.1:9200/my_index'
--output=/data/my_index_mapping.json
--type=mapping
elasticdump
--input='http://elastic:password@192.168.1.1:9200/my_index'
--output=/data/my_index_index.json
--type=data