Распределение потерянного первичного шарда как крайняя мера (allocate_stale_primary)
ElasticsearchКластер/УзелКоманда
# Which nodes hold copies of the primary (allocation id, store errors):
GET _shard_stores/musteri?status=red
# Last resort: promote a stale copy to primary; data loss is accepted:
POST _cluster/reroute
{
"commands": [
{
"allocate_stale_primary": {
"index": "musteri",
"shard": 0,
"node": "node-2",
"accept_data_loss": true
}
}
]
}Что делает
Когда узел с актуальной первичной копией безвозвратно потерян, назначает первичной более старую (не in-sync) копию на другом узле, чтобы вывести индекс из красного состояния.
Когда использовать
Только когда узел с первичной копией восстановить невозможно, а восстановление из снимка недоступно или займёт больше времени.
Внимание
Устаревшая копия не содержит последних записей; все записи, сделанные после этой копии, теряются безвозвратно. Если потерянный узел позже вернётся, более свежая копия на нём будет удалена. Сначала рассмотрите восстановление узла и восстановление из снимка. allocate_empty_primary создаёт шард полностью пустым и удаляет все данные этого шарда; используйте только когда не осталось ни одной копии.