最後の手段として、失われたプライマリシャードを割り当てる (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 はシャードを完全に空の状態で作成し、そのシャード内のすべてのデータを削除する。コピーが一切残っていない場合にのみ使用する。