--- title: "分片不可用 (unavailable_shards_exception) 错误排查与解决" date: 2026-02-05 lastmod: 2026-02-05 description: "unavailable_shards_exception 表示所需的分片数量不可用无法执行操作,通常由分片未分配、节点故障或副本数配置不当引起。" tags: ["分片", "集群管理", "高可用"] summary: "为什么这个错误发生 # unavailable_shards_exception 表示所需的分片数量不可用,无法执行操作。 如何修复 # 1. 检查分片状态 # GET /_cat/shards?v 2. 等待分片恢复 # GET /_cluster/health?wait_for_active_shards=all 3. 调整副本设置 # PUT /<index>/_settings { "index": { "number_of_replicas": 0 } } 4. 使用 wait_for_active_shards # POST /<index>/_doc/<id>?wait_for_active_shards=1 预防措施 # 确保有足够的节点 配置合理的副本数 监控分片健康 " --- ## 为什么这个错误发生 `unavailable_shards_exception` 表示所需的分片数量不可用,无法执行操作。 ## 如何修复 ### 1. 检查分片状态 ```bash GET /_cat/shards?v ``` ### 2. 等待分片恢复 ```bash GET /_cluster/health?wait_for_active_shards=all ``` ### 3. 调整副本设置 ```bash PUT //_settings { "index": { "number_of_replicas": 0 } } ``` ### 4. 使用 wait_for_active_shards ```bash POST //_doc/?wait_for_active_shards=1 ``` ### 预防措施 - 确保有足够的节点 - 配置合理的副本数 - 监控分片健康