DBAtlas · Атлас эксплуатации баз данных

Распределение потерянного первичного шарда как крайняя мера (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 создаёт шард полностью пустым и удаляет все данные этого шарда; используйте только когда не осталось ни одной копии.

Открыть в DBAtlas →

Связанные материалы