elasticsearch7.5.2 数据迁移解决方案
问题背景
elasticsearch版本为: 7.5.2
A服务器故障,但ES数据文件存在;将es旧数据迁移至B服务器;且保留B服务器新数据;
解决方案
1. 迁移旧数据
a. 查看ES数据文件挂载目录位置
容器内路径: /usr/share/elasticsearch/data
如果没有挂载,需要将/usr/share/elasticsearch/data 压缩后,文件拷到宿主机上
bash # docker cp [容器名称:文件路径] [宿主机路径]
b. 将data.tar.gz 上传至B服务器
迁移es数据文件至B服务器 /root 下
新增es启动脚本
bash # vi /data/es/start-es.sh
#/bin/bash
mkdir -p /data /es/data
chmod -R 777 /data/es/data
docker run \
--privileged=true \
--name es \
-itd \
-e ES_JAVA_OPTS="-Xms4g -Xmx4g" \
-e "discovery.type=single-node" \
-p 18200:9200 \
-p 18300:9300 \
-v /data/es/data:/usr/share/elasticsearch/data \
-v /data/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-d --restart=always \
docker.elastic.co/elasticsearch/elasticsearch:7.5.2
执行脚本 ,查看启动状态
# sh start-es.sh
安装kibana , 查看数据是否恢复成功,注意kibana版本需要与es版本同步
2. 迁移中常见问题解决
a.es数据目录权限不足
执行# chmod -R 777 /data/es/data 命令,重启es