DBAtlas · Atlas d'exploitation des bases de données

Allouer un shard primaire perdu en dernier recours (allocate_stale_primary)

ElasticsearchCluster/Nœud

Commande

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

Ce que fait la commande

Quand le nœud détenant la copie primaire à jour est définitivement perdu, assigne comme primaire une copie plus ancienne (non in-sync) sur un autre nœud pour sortir l'index du red.

Quand l'utiliser

Uniquement quand le nœud hébergeant le primaire ne peut pas être récupéré et que la restauration depuis un snapshot n'est pas possible ou prendrait plus de temps.

Attention

La copie obsolète ne contient pas les dernières écritures ; toutes les écritures postérieures à cette copie sont définitivement perdues. Si le nœud perdu revient plus tard, la copie plus récente qu'il contient est supprimée. Envisagez d'abord de récupérer le nœud et de restaurer depuis un snapshot. allocate_empty_primary crée le shard entièrement vide et supprime toutes les données de ce shard ; ne l'utilisez que lorsqu'aucune copie ne subsiste.

Ouvrir dans DBAtlas →

Voir aussi