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 でない) コピーをプライマリとして割り当て、インデックスを red から脱出させる。

使用する場面

プライマリをホストしていたノードを復旧できず、スナップショットからのリストアが選択肢にない、またはより時間がかかる場合にのみ。

注意

古いコピーには最新の書き込みが含まれない。そのコピー以降に行われた書き込みはすべて完全に失われる。失われたノードが後で復帰すると、そこにあるより新しいコピーは削除される。まずノードの復旧とスナップショットからのリストアを検討する。allocate_empty_primary はシャードを完全に空の状態で作成し、そのシャード内のすべてのデータを削除する。コピーが一切残っていない場合にのみ使用する。

DBAtlas で開く →

関連項目