目录
一、安装前准备
1、安装NodeJs
NodeJs官网下载地址:Download | Node.js (nodejs.org)
双击下载安装包,一直点击下一步,无脑式傻瓜安装,直到完成。
二、安装Elaticdump:
1、全局安装Elaticdump:
npm install elasticdump -g
2、验证是否成功
出现版本号则说明安装成功。
二、备份信息
指令格式:
elasticdump --input <源数据> --output <目标数据> --type=<数据类型>
在备份数据钱,需要把对应的settings、mapping文件依次导入对另外的es中,最后一步才是导入数据。
2、1导出settings文件
elasticdump --input http://账号:密码@localhost:9213/index
--output /Users/wu/Desktop/settings.json --type=settings
其中:index为es的索引,可更换为自己es的索引值。output对应的是导出json文件的本地位置,且文件为settings.json。
eg:如果密码中带有特殊符号,可以进行转义。
@转义后为%40,#转义后为%23
2、2导出mapping文件
elasticdump --input http://账号:密码@localhost:9213/index
--output /Users/wu/Desktop/mapping.json --type=mapping
2、3导出data文件
elasticdump --input http://账号:密码@localhost:9213/index
--output /Users/wu/Desktop/index.json --type=data
2、4提高导出效率
上图为默认情况下的导出图片。
./elasticdump --limit 1000 --input=http://192.168.1.10:9200/user
--output=http://192.168.1.15:9200/user --type=data
eg:在默认情况下,Elaticdump一次只导出100条数据。我们在确认好数据量后可以进行,多数据的导入。下图为提高效率后的图片:
2、5限制导出数据
如果我们在迁移数据时,全部数据的数据量又很大,我们不想要原来全部的数据,这时我们可以通过命令来对导出的数据加以限制:
2、5、1 时间限制
导出数据为2023年6月到2023年6月22日的的数据:
elasticdump --input=http://localhost:9200/user
--output=D:\data\user.json --type=data
--searchBody="{\"query\": {\"bool\": {\"must\": [{\"range\": {\"dateTime\": {\"gte\": \"2023-06-00 00:00:00\",\"lte\": \"2023-06-22 00:00:00\"}}}]}}}"
2、5、2 内容限制
导出用户爱好不为空的数据:
elasticdump --input=http://localhost:9200/user
--output=D:\data\user .json --type=data
--searchBody="{\"query\": {\"bool\": {\"must_not\": [{\"term\": {\"hobby\": {\"value\": ""}}}]}}}"
三、导入数据
3、1导入settings文件
elasticdump --input=D:\data\settings.json
--output=http://账号@密码@IP:9200/ --type=settings
3、2导入mapping文件
elasticdump --input=D:\data\mapping.json
--output=http://账号@密码@IP:9200/ --type=mapping
3、3导入data文件
elasticdump --input=D:\data\query.json
--output=http://账号@密码@IP:9200/ --type=data
3、5同服务器索引导入
elasticdump --input=http://账号@密码@IP:9200/index1 --output=http://账号@密码@IP:9200/index2 --limit 1000 --type=data