Elasticsearch報錯read_only_allow_delete


本來項目跑到好好的,今天ElasticsearchTemplate添加和修改索引的時候出現報錯,read_only_allow_delete
瀏覽器打開es,查看es索引信息會發現多了一個"read_only_allow_delete":"true"

 

 

原因

1. 內存不足

JVMMemoryPressure 超過92%並持續30分鍾時,ES觸發保護機制,並且阻止寫入操作,以防止集群達到紅色狀態,啟用寫保護后,寫入操作將失敗,並且拋出 ClusterBlockException ,無法創建新索引,並且拋出 IndexCreateBlockException ,當五分鍾內恢復不到88%以下時,將禁用寫保護。

2. 磁盤空間不足

es的默認磁盤水位警戒線是85%,一旦磁盤使用率超過85%,es不會再為該節點分配分片,es還有一個磁盤水位警戒線是90%,超過后,將嘗試將分片重定位到其他節點。

解決方案

1. 磁盤擴容

2. 刪除無用索引

3. 將舊索引的副本數調小

4. 增加數據節點

5. 手動將 index.blocks.read_only_allow_delete 改成false

read_only_allow_delete屬性

此屬性為true時,ES索引只允許讀和刪數據,不允許增和改數據

1. 查看指定索引的設置信息

curl -XGET http://127.0.0.1:9200/blog/_settings?pretty

當索引不能增和改時,通過此命令,可以看到read_only_allow_delete為true

2. 把read_only_allow_delete設置為false

curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/blog/_settings -d '{"index.blocks.read_only_allow_delete": null}'
或者使用復合查詢

 

 


再次查看es索引信息,發現
"read_only_allow_delete":"true"已經沒有了,此時就可以正常修改和添加es數據了

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM