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

Solr Collection API备份2000万数据时遇超时及目录不存在异常

Solr集群备份超时+快照目录不存在问题排查与解决

问题描述

部署了单Solr Pod实例,存储约2000万条记录。通过Nginx Pod调用Solr Collection API发起备份请求后,触发超时异常,提示无法完成所有分片备份,核心错误为快照存储目录不存在:file:///vol1/cloud84/backups/sigs。

错误日志

{
  "responseHeader":{
    "status":500,
    "QTime":120693
  },
  "failure":{
    "perfrandom-solr-backup-solr-0.perfrandom-solr-backup-solr:8983_solr":"org.apache.solr.client.solrj.SolrServerException:Timeout occurred while waiting response from server at: http://perfrandom-solr-backup-solr-0.perfrandom-solr-backup-solr:8983/solr"
  },
  "Operation backup caused exception:":"org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not backup all shards",
  "exception":{
    "msg":"Could not backup all shards",
    "rspCode":500
  },
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"
    ],
    "msg":"Could not backup all shards",
    "details":"Failed to backup core=foo_signals_shard1_replica_n2 because org.apache.solr.common.SolrException: Directory to contain snapshots doesn't exist: file:///vol1/cloud84/backups/sigs"
  },
  "trace":"org.apache.solr.common.SolrException: Could not backup all shards\n\tat org.apache.solr.client.solrj.SolrResponse.getException(SolrResponse.java:64)\n\tat org.apache.solr.handler.admin.CollectionsHandler.invokeAction(CollectionsHandler.java:282)\n\tat "
}

解决方案

1. 创建并授权快照目录

在Solr Pod内执行命令,创建缺失的目录并设置正确权限:

mkdir -p /vol1/cloud84/backups/sigs
chown -R solr:solr /vol1/cloud84/backups

确保Solr进程用户(默认solr)拥有该目录的读写权限。

2. 调整超时参数

由于数据量较大,备份耗时远超默认超时阈值,需修改两处配置:

  • Nginx侧:在代理配置中延长超时时间:
    proxy_connect_timeout 300s;
    proxy_send_timeout 300s;
    proxy_read_timeout 300s;
    
    重载Nginx配置生效。
  • Solr侧:修改solr.in.sh文件,增加客户端超时配置:
    SOLR_CLIENT_TIMEOUT=300000
    
    重启Solr服务使配置生效。

3. 验证备份存储配置

检查Solr集群或集合的备份配置,确保指定的存储路径与实际目录一致。例如在solr.xml中配置本地备份仓库:

<backup>
  <repository name="local" class="org.apache.solr.core.backup.repository.LocalFileSystemBackupRepository">
    <str name="location">/vol1/cloud84/backups</str>
  </repository>
</backup>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:39