系统版本:Ubuntu Linux 24.06
当前ES版本:8.19.18
目前ES版本:9.4.3
升级方式:替换升级
安装包使用tar包,替换原来的数据目录进行自动升级(区别于reindex方式)
第一阶段:清理非业务的索引
在旧版本ES上清理非业务的索引
通过 HTTP 请求(如 curl)清理阻塞升级或占用空间的系统索引。
bash
# 删除 Kibana 事件日志索引(解决启动阻塞)
curl -X DELETE "http://127.0.0.1:9200/.kibana-event-log-7.13.3-000012"
# 删除历史监控索引(释放磁盘空间)
curl -X DELETE "http://localhost:9200/.monitoring-es-7-2026.07.23"
(注:如果有多个日期的监控索引需要清理,可以使用通配符批量删除,例如:curl -X DELETE "http://localhost:9200/.monitoring-\*")
第三阶段:安全关闭旧版
注意:我这里是单机 Elasticsearch ,所以关闭前不需要禁用 分片分配,重新升级启动后也不需要重新启用分片分配。
bash
# 执行同步刷新(Synced Flush)
# 确保内存中的事务日志(translog)被安全地刷入磁盘,从而让节点在下次启动时能够更快地恢复,避免漫长的数据校验过程。
curl -X POST "http://localhost:9200/_flush/synced"
# 停止ES服务
systemctl stop elasticsearch
第四阶段:升级到 9.4.3
1.将 Elasticsearch的版本配置/安装包切换至 9.4.3。
2.将旧版下data文件目录复制到新的 Elasticsearch目录下。
3.启动 Elasticsearch 9.4.3 服务。
4.检查日志情况,确定升级过程是否正常。
第五阶段:升级后验证
1.检查集群健康状态。
bash
curl -X GET "http://localhost:9200/_cluster/health?pretty"
确保状态最终恢复为 green。
2.检查核心业务索引的查询和写入是否正常。
按照以上步骤执行,即可安全、干净地完成跨大版本升级。