DBAtlas · Atlas de operaciones de bases de datos

Asignar un shard primario perdido como último recurso (allocate_stale_primary)

ElasticsearchClúster/Nodo

Comando

# 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
      }
    }
  ]
}

Qué hace

Cuando se pierde de forma permanente el nodo con la copia primaria actualizada, asigna como primario una copia más antigua (no in-sync) en otro nodo para sacar el índice de red.

Cuándo usarlo

Solo cuando el nodo que aloja el primario no puede recuperarse y restaurar desde un snapshot no es una opción o tardaría más.

Precaución

La copia antigua no contiene las últimas escrituras; todas las escrituras posteriores a esa copia se pierden de forma permanente. Si el nodo perdido vuelve después, la copia más reciente que contiene se borra. Considere primero recuperar el nodo y restaurar desde snapshot. allocate_empty_primary crea el shard completamente vacío y borra todos los datos de ese shard; úselo solo cuando no quede ninguna copia.

Abrir en DBAtlas →

Relacionado