目录
elasticsearch常用解决方案
/    

elasticsearch常用解决方案

健康状态红色解决方案

健康状态:

  • Green:所有的主分片和副本分片都可用
  • Yellow:所有的主分片都可用,但不是所有的副本分片可用
  • Red:不是所有的主分片都可用

场景一

集群三个节点,由于其中一个节点的存储满了,无法写入磁盘,导致一个主分片不可用。

1、查看分配的状态

GET http://192.168.167.240:9200/_cat/shards?v


找到 state 为 UNASSIGNED的,记录分片的编号 即 shards 的值。

2、手动强制分配主分片

将未分配的分片,手动分配到指定节点

POST _cluster/reroute
{
  "commands": [
    {
      "allocate_stale_primary": {
	  	# 索引名
        "index": "yx-search-chat-other-1000w",
		# 分片编号
        "shard": 2,
		# 节点名称
        "node": "lFh7iqS",
		# 接受节点数据的丢失
        "accept_data_loss": true
      }
    }
  ]
}

执行完,需要等待分片 init

线上copy_to丢失的临时解决办法

例如 这里给content字段加上copy_to

PUT your_index/_doc/_mapping
{
    "properties": {
        "content": {
	    "type": "text",
	    "copy_to": "indexFullText",
	    "analyzer": "custom_analyzer"
	}
    }
}

执行前记得备份重要数据

上面请求适用于 6.x的版本,7.x的版本需要将 _doc 去掉即可。


标题:elasticsearch常用解决方案
作者:gitsilence
地址:http://blog.lacknb.cn/articles/2022/06/28/1656383046120.html