You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改JVM堆内存后SolrCloud副本宕机,如何恢复至活跃状态?

SolrCloud副本Down状态恢复步骤

1. 校验JVM内存配置

  • 确认系统可用物理内存充足:Windows下通过任务管理器查看,10G堆内存需确保系统剩余内存不低于该值的1.5倍(避免OOM或系统资源耗尽)
  • 修正配置文件:仅保留solr.in.cmd中的set SOLR_HEAP=10g配置,删除solr.cmd中手动添加的内存参数——solr.cmd会自动读取solr.in.cmd的配置,重复配置会导致启动异常
  • 检查JVM参数冲突:查看solr.in.cmd中是否存在独立的-Xmx/-Xms参数,这类参数会覆盖SOLR_HEAP设置,需删除或统一

2. 按顺序重启所有节点

  • 停止全部节点:在solr/bin目录执行solr stop -all
  • 逐个启动节点:进入每个节点的solr/bin目录,执行solr start -cloud -z <ZK连接串> -p <节点端口>,启动时观察控制台输出,确认无内存溢出、ZK连接失败等报错
  • 每启动一个节点,通过http://<节点IP>:<端口>/solr访问Admin UI,确认节点成功加入集群后再启动下一个

3. 修复ZK元数据与节点状态不匹配

  • 连接ZK集群:执行zkCli.cmd(Windows)进入ZK命令行
  • 查看节点存活状态:执行ls /live_nodes,确认已启动的节点均在列表中;执行ls /collections/<集合名>/shards/<分片名>/replicas查看副本元数据
  • 清理异常副本状态:若副本实际已启动但元数据显示Down,执行rmr /collections/<集合名>/shards/<分片名>/replicas/<副本ID>/state.json,Solr会自动同步最新状态

4. 手动恢复异常副本

  • 通过Admin UI的Cloud面板,定位Down状态的副本
  • 执行强制恢复命令:
    solr collection -action RECOVERY -collection <集合名> -shard <分片名> -replica <副本ID>
    
  • 若恢复失败,重新创建副本:
    solr collection -action ADDREPLICA -collection <集合名> -shard <分片名> -node <节点IP:端口>
    

5. 排查深层启动错误

  • 查看节点server/logs下的solr.log和solr_gc.log,重点排查启动阶段的JVM启动失败、ZK超时、文件权限等日志
  • 检查Windows事件查看器的系统日志,确认是否存在内存不足导致Solr进程被强制终止的记录

内容的提问来源于stack exchange,提问作者sridharnetha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:45:38