Asignar un shard primario perdido como último recurso (allocate_stale_primary)
ElasticsearchClúster/NodoComando
# 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.