ES分片被刪除後如何恢復

2021-10-01 09:18:31 字數 2265 閱讀 2107

兩台es集群,xx客戶+xx專案經理竟然允許es裝在磁碟空間只有20g的伺服器上。

由於磁碟緊張,指令碼刪除資料,但由於資料還有價值只能考慮掛載。在掛載的時候有一台es被無情刪除,那酸爽,嘿嘿。我頂你個肺,頂到底。

一台es分片刪除後,不要問我分片是什麼,就是你開啟es頁面,本來綠色帶有乙個個數字的都沒有了。

資料丟失一半,查詢的時候只有正常的那一台的資料存在。

資料還能正常儲存,還特麼只能儲存一般,另一半你就是查不到

1、登陸伺服器,切換到你安裝es的使用者

2、輸入命令curl -xget http://localhost:9209/_cat/shards檢視所有分片狀態;

3、輸入命令curl -s "http://localhost:9209/_cat/shards" | grep unassigned,找出unassigned分片

4、輸入命令curl 'localhost:9209/_nodes/process?pretty'查詢得到需要重建的es(即另外乙個es集群)節點node1的唯一標識:

5、執行reroute(分多次,變更index、shard和node值, index是第3步查出來的異常分片區域,變更shard的值為unassigned查詢結果中編號, 上一步查詢結果是0、1、2、3、4、6和8,node為第4步查出的node1的唯一標識),以index=megacorp,分片為0舉例子,輸入命令:

curl -xpost 'localhost:9209/_cluster/reroute'

-d '}]

}'

出現如下日誌,表示執行完成:

6、重啟需要重建的es服務,注意重啟後,節點的唯一標識node值會有變化;

7、登入es平台http://***xx:9209/_plugin/head/,檢視es集群是否正常了

1、如果分片異常很多,使用shell指令碼批量修復:

注意:9209即elasticsearch.yml 配置檔案中http.port: 9209配置項,node需要替換成實際的node

注意:9209即elasticsearch.yml 配置檔案中http.port: 9209配置項,node需要替換成實際的node

2、指令碼執行完成後,重啟分片異常的es服務;

執行完,問題也就解決了,可以安心睡覺了。

Oracle表資料被刪除後的恢復

在oracle資料庫使用過程中,會存在表中資料被誤刪除的情況,如果被刪除的資料有備份,則可從備份中獲取,若表資料被刪除至發現被刪除期間沒有進行備份,則可使用oracle閃回技術進行資料恢復 適用於短時間內被刪除的資料 可恢復資料的時間根據資料庫的配置有所不同 select from 表名 as of...

oracle資料檔案被刪除後,恢復

先將資料庫設定為歸檔模式 sql plus sqlplus system system orcl as sysdba 建立實驗表空間 sql create tablespace test datafile c test.ora size 5m 建立實驗使用者 sql create user test...

linux如何恢復被刪除的熱檔案

windows下如果檔案被刪除還有 站,如果沒放入 站或者 站被清空了,還可以使用easyrecover或者finaldata等等很多任務具來恢復 可是linux下沒有 站,那麼linux下如果檔案被刪除了如何恢復呢?如果剛好你刪除的檔案還在被其它程式呼叫,那麼恭喜你,很輕易的的將刪除的檔案找回來 ...