Elasticsearch数据迁移(不需要安装其他软件)
目录
一、修改新、老ES的配置文件,指明备份目录位置
1、Windows
1.1、找到配置文件
我们进入ES安装目录,然后进入config目录,就可以看到elasticsearch.yml

1.2、修改配置文件
在配置文件中添加path.repo: ["备份目录全路径"],如下图所示:

2、Linux
1.1、找到配置文件
配置文件路径是:/usr/share/elasticsearch/config/elasticsearch.yml

1.2、修改配置文件
在配置文件中添加path.repo: ["备份目录全路径"],如下图所示:

大家可以按照我的配置去写,接下来创建备份目录我也会按照这个路径进行创建,配置信息如下:
path.repo: ["/usr/share/elasticsearch/data/backup"]
二、在老ES中创建备份目录
1、Windows
手动在配置文件中指明的位置创建backup文件夹即可

2、Linux
如果你配置的备份目录位置和我的一样,那就直接执行下面命令即可;如果不一样,那就在配置文件中指明的位置创建backup文件夹即可
mkdir -p /usr/share/elasticsearch/data/backup
三、从老ES中导出数据
1、重启老ES
2、保证老ES运行良好
在浏览器上访问http://ip:port/_cat/health(ip和port都是老es的),如果结果是yellow或者green状态的时候说明重启成功了,示例如下:

3、注册仓库
规则:
# 请求方式
PUT
# 请求链接
# 说明:
# 1、ip和port都是老es的9200端口信息
# 2、my_backup是我自己起的仓库名称,你可以直接用
http://ip:port/_snapshot/my_backup
# 请求头
Content-Type:application/json
# 请求体
# 说明:
# 1、fs代表文件存储系统,也就是存储到本地
# 2、other是我自己起的名字,你可以直接用,注册仓库之后会在backup目录下创建一个other目录
{
"type": "fs",
"settings": {
"location": "other"
}
}
示例:
# 请求方式
PUT
# 请求链接
http://192.168.3.86:15006/_snapshot/my_backup
# 请求头
Content-Type:application/json
# 请求体
{
"type": "fs",
"settings": {
"location": "other"
}
}
截图如下:

4、创建快照
规则:
# 请求方式
PUT
# 请求链接
# 说明:
# 1、ip和port都是老es的9200端口信息
# 2、my_backup是上一步设置的仓库名称
# 3、snapshot1是快照名称,你可以直接用
# 4、wait_for_completion:true参数的作用:访问链接不会马上结束,而是会一直等待,等到完成为止,所以请求卡着是正常的哦
http://ip:port/_snapshot/my_backup/snapshot1?wait_for_completion=true
# 请求头
Content-Type:application/json
# 请求体(XXX代表索引名称字符串,并且索引名称中间用英文逗号(,)分隔)
{
"indices": "XXX"
}
示例:
# 请求方式
PUT
# 请求链接
http://192.168.3.86:15006/_snapshot/my_backup/snapshot1?wait_for_completion=true
# 请求头
Content-Type:application/json
# 请求体
{
"indices": "kms-map,app.saloon.soft,sharestore"
}
截图如下:

四、向新ES中导入数据
1、将第二步创建的backup目录(老es)复制到新es的同位置下
操作: 将老es的/usr/share/elasticsearch/data/backup目录复制到新es的/usr/share/elasticsearch/data/backup位置
2、重启新ES
3、保证新ES运行良好
在浏览器上访问http://ip:port/_cat/health(ip和port都是新es的),如果结果是yellow或者green状态的时候说明重启成功了,示例如下:

4、注册仓库
规则:
# 请求方式
PUT
# 请求链接
# 说明:
# 1、ip和port都是新es的9200端口信息
# 2、my_backup是上面创建的仓库名称,要对应起来
http://ip:port/_snapshot/my_backup
# 请求头
Content-Type:application/json
# 请求体
# 说明:
# 1、fs代表文件存储系统,也就是存储到本地
# 2、other是上面设置的存储目录名称,要对应起来
{
"type": "fs",
"settings": {
"location": "other"
}
}
示例:
# 请求方式
PUT
# 请求链接
http://192.168.3.86:15006/_snapshot/my_backup
# 请求头
Content-Type:application/json
# 请求体
{
"type": "fs",
"settings": {
"location": "other"
}
}
截图如下:

5、恢复快照
规则:
# 请求方式
POST
# 请求链接
# 说明:
# 1、ip和port都是老es的9200端口信息
# 2、my_backup是上面创建的仓库名称,要对应起来
# 3、snapshot1是上面创建的快照名称,要对应起来
# 4、wait_for_completion:true参数的作用:访问链接不会马上结束,而是会一直等待,等到完成为止,所以请求卡着是正常的哦
http://ip:port/_snapshot/my_backup/snapshot1/_restore?wait_for_completion=true
# 请求头
Content-Type:application/json
示例:
# 请求方式
POST
# 请求链接
http://192.168.3.86:15006/_snapshot/my_backup/snapshot1/_restore?wait_for_completion=true
# 请求头
Content-Type:application/json
截图如下:

6、检查索引是否导入完成
直接在浏览器中访问即可,如果导入完成,那么索引就会出现了~
# ip和port是新es的9200端口信息
http://ip:port/_cat/indices
五、参考文章
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)