磁盘故障导致索引无法恢复处理流程
ES集群版本:V_5.4.2
translog 损坏
如因磁盘故障,导致索引translog
损坏而无法恢复,此时可通过清空索引translog
的方式恢复索引,但translog
中未刷盘的数据会丢失(索引历史数据不会丢失,一般来说,至多只会丢失当天数据)。
查看未分配分片原因
// 按照state状态正序排序,state一致时按照 prirep 正序排序
// 获取到未分配主分片(p)的 index,shard,prirep 信息
GET _cat/shards?v&s=state,prirep
// 使用explain命令查看未分配的原因
// index 填写未分配主分片的索引名称;shard 填写未分配主分片的分片编号;primary为true表示是主分片,填false表示查看副本未分配的原因
GET /_cluster/allocation/explain
{
"index": "test_index",
"shard": 1,
"primary": true
}
如果返回结果中,有 [failed to recover from translog] 字样,如: