一、修改新、老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

五、参考文章

  1. 三种常用的 Elasticsearch 数据迁移方案
  2. ES基于Snapshot(快照)的数据备份和还原
  3. CDH修改ElasticSearch配置文件不生效问题
  4. es快照和备份
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐