Kayıp primary shard'ı son çare olarak ata (allocate_stale_primary)
ElasticsearchCluster/NodeKomut
# Primary'nin kopyalari hangi dugumlerde duruyor (allocation id, store hatasi):
GET _shard_stores/musteri?status=red
# Son care: eski (stale) kopyayi primary yap; veri kaybi kabul edilir:
POST _cluster/reroute
{
"commands": [
{
"allocate_stale_primary": {
"index": "musteri",
"shard": 0,
"node": "node-2",
"accept_data_loss": true
}
}
]
}Ne yapar?
Güncel primary kopyasını taşıyan düğüm kalıcı olarak kaybolduğunda, başka bir düğümde duran eski (in-sync olmayan) kopyayı primary olarak atayarak index'i red durumundan çıkarır.
Ne zaman kullanılır?
Yalnızca primary'yi barındıran düğüm geri getirilemeyecekse ve snapshot'tan restore seçeneği yoksa veya daha uzun sürecekse.
Dikkat
Stale kopya en son yazmaları içermez; o kopyadan sonra yapılan tüm yazmalar kalıcı olarak kaybolur. Kayıp düğüm sonradan geri gelirse onun üzerindeki daha güncel kopya silinir. Önce düğümü kurtarmayı ve snapshot restore'u değerlendir. allocate_empty_primary ise shard'ı tamamen boş oluşturur ve o shard'daki tüm veriyi siler; yalnızca hiçbir kopya kalmadığında kullanılır.