ファイルシステムのスナップショットを使用して、MongoDB Search と MongoDB ベクトル検索 のインデックスデータをバックアップできます。ファイルシステムのスナップショットでは、mongot データディレクトリのポイントインタイムコピーが作成されます。これを使用すると、ソースデータからインデックスを再構築することなく復元できます。
Considerations
インデックスの復旧
mongot は、データのプライマリデータストアではありません。mongot データが破損したり失われた場合、MongoDB は mongod のソースデータから MongoDB Search および MongoDB ベクトル検索インデックスを再構築できます。ただし、インデックス構築は低速であり、場合によっては完了まで数日かかることがあります。
アプリケーションで復旧時間を最小限に抑える必要がある場合は、通常のファイルシステムスナップショットを使用します。
バックアップの有効期間
mongot 変更ストリームを介してmongod からデータを複製します。mongotバックアップは、変更ストリームの保存期間にのみ有効です。保存期間より古いバックアップから復元すると、mongotはoplogから外れたことを検出し、mongodのソースデータからインデックスを再構築します。復元されたスナップショットデータは、再構築中にもすぐに照会できます。再構築が完了するまで、検索結果にmongodの現在の状態よりも早い時点の状態が反映される可能性があります。
バックアップ mongot
mongot をバックアップするには、mongot インスタンスを停止し、任意のツールを使用して mongot データディレクトリのファイルシステムスナップショットを取ります。Linux で LVM を使用する完全な例については、「Linux で LVM を使用したバックアップと復元する」を参照してください。
復元 mongot
ファイルシステムスナップショットから mongot を復元するには、任意のツールを使用してバックアップスナップショットを mongot データディレクトリに復元します。また、新しいサーバーアイデンティティを生成するために mongot を再起動する前に、mongot データディレクトリから serverId.txt ファイルを削除する必要があります。
スナップショットを復元してmongotを再起動すると、MongoDB は復元されたインデックスデータを読み取り、mongod インスタンスからレプリケーションを再開します。Linux で LVM を使用する完全な例については、「スナップショットの復元」を参照してください。
MongoDB Controllers for Kubernetes 演算子の考慮事項
mongot 永続ボリュームの最新のスナップショットを保持することで、ソース データからインデックスを再構築するのに比べて、ポッドの置き換え、ノードのメンテナンス、ストレージの復旧のためのより高速な復旧パスが可能になります。Kubernetes Operator 用 MongoDB Controllers は、mongot 永続ボリュームを自動的にバックアップまたは復元しません。ストレージ プラットフォームのファイルシステムまたはボリューム スナップショット機能を使用して、mongot データディレクトリを保存する永続ボリュームのバックアップを計画します。
再スケジュールおよび置換されたポッド
MongoDB Controllers for Kubernetes 演算子が mongot ポッドを再スケジュールまたは置き換える場合は、既存の永続ボリュームを新しいポッドにアタッチし、ソース データからすべてのインデックスを再構築する代わりに、ローカル インデックス データを再利用します。バックアップ スナップショットを取得した後に配置を変更した場合、mongotはスタートアップ後にmongodから追いつく必要があります。
Kubernetes での mongot の復元
Kubernetes で mongot を復元するには、バックアップスナップショットを永続ボリュームに復元します。置き換えるポッドがそのボリュームをマウントし、mongot を再起動する前に serverId.txt ファイルを削除してください。