ElasticSearch数据迁移

ES数据迁移

操作步骤如下:(所有节点一个一个操作)

1. 关闭ES服务

systemctl stop elasticsearch

2. 创建存储的新目录

把数据目录和日志目录复制到新的数据目录中,这里我新的数据目录是单独的一个云盘挂载到了 /data 目录

# 创建数据存储的新目录
mkdir -p /data/elasticsearch/data
# 创建日志存储的新目录
mkdir -p /data/elasticsearch/logs

3. 迁移数据

# 迁移数据文件
cp -r /usr/local/elasticsearch/elasticsearch-7.17.10/data/nodes /data/elasticsearch/data
# 迁移日志文件
cp -r /usr/local/elasticsearch/elasticsearch-7.17.10/logs/* /data/elasticsearch/logs/
# 检查旧文件有没有全部copy过来
ll /data/elasticsearch/data
ll /data/elasticsearch/logs

4. 授权新的数据目录

# 给elasticsearch用户授权
chown -R elasticsearch:elasticsearch /data/elasticsearch

5. 修改配置文件中,数据和日志的存储路径

vim /usr/local/elasticsearch/elasticsearch-7.17.10/conf/elasticsearch.yml
# 加入以下内容
path.data:/data/elasticsearch/data
path.logs:/data/elasticsearch/logs

6. 重新启动ES服务(所有节点操作完之后,一个一个启动)

systemctl restart elasticsearch.service
systemctl status elasticsearch.service

7. 验证集群状态

# 查看集群健康
curl -X GET "localhost:9200/_cat/health?v"
# 查看节点信息
curl -X GET "localhost:9200/_cat/nodes?v"
# 查看索引信息
curl -X GET "localhost:9200/_cat/indices?v"

常见错误

重新启动ES服务时,可能会报 .security-7 索引错误,错误信息如下

[2021-01-13T17:05:27,359][INFO ][o.e.x.s.a.AuthenticationService] [elekpelk01] Authentication of [elastic] was terminated by realm [reserved] - failed to authenticate user [elastic]
[2021-01-13T17:05:29,290][ERROR][o.e.x.s.a.e.ReservedRealm] [elekpelk01] failed to retrieve password hash for reserved user [elastic]
org.elasticsearch.action.UnavailableShardsException: at least one primary shard for the index [.security-7] is unavailable
        at org.elasticsearch.xpack.security.support.SecurityIndexManager.getUnavailableReason(SecurityIndexManager.java:181) ~[x-pack-security-7.8.0.jar:7.8.0]

解决方案:

上述错误报出后,其实ES服务是启动成功的,只是身份验证不可用了,所以这里直接使用新用户去请求ES,删除掉 .security开头的索引

curl -u restore_user -k -X DELETE "https://localhost:9200/.security-*"

该命令执行后,会让你设置 restore_user 用户的密码,随便设置一个即可,后面会删除该用户

重新启动ES服务

systemctl restart elasticsearch.service

发现错误信息已经没有了,并且ES重新建立了 .security-7索引,此时尝试使用原来的用户名密码连接也可正常连接

删除上面新建的临时用户

curl -k -X DELETE "https://localhost:9200/_security/user/restore_user"

除上面新建的临时用户

curl -k -X DELETE "https://localhost:9200/_security/user/restore_user"

至此,此错误修复完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值