MongoDB データベースを修復する
このチュートリアルでは、直面している問題に応じて、Windows オペレーティングシステムで MongoDB を使用してデータベースを修復する方法について説明します。
MongoDB でデータベースを修復する
MongoDB を使用してデータベースを修復する必要があるさまざまなシナリオがあります。たとえば、不適切または不潔なシャットダウンが発生した場合、または不整合やエラーをチェックしたい場合は、データベースを修復します。
また、システムが誤ってシャットダウンした場合にもデータベースを修復します。修復プロセスに入る前に、MongoDB データベースのコンポーネントを理解しましょう。
MongoDB データベースコンポーネント
MongoDB データベースには 3つのコンポーネントがあり、以下で簡単に説明します。
mongo
-アラートログをチェックするインタラクティブシェル。たとえば、操作の詳細と再試行を行います。mongos
-プロセスの不適切な終了。さらに、インスタンスからの切断を余儀なくされました。mongod
-バックグラウンド操作とデータ要求を処理するデーモンプロセス。
以下は、いくつかの問題とそれぞれの解決策です。
問題 1:システムが誤ってシャットダウンする
以下は、この問題の段階的な解決策です。手順を実行する前に、root
ディレクトリに data
フォルダがあることを忘れないでください。
-
cd/
コマンドを使用して、ディレクトリを Windows OS のroot
、C:\>
に変更します。 -
mongod.exe
サービスのフルパスをコピーします。この場合、それはC:\Program Files\MongoDB\Server\5.0\bin\mongod.exe
です。--repair
パラメータも追加したことに注意してください。C:\> "C:\Program Files\MongoDB\Server\5.0\bin\mongod.exe" --dbpath C:\data --repair
-
Enterキーを押して、これが完了するのを待ちます。完了すると、データベースが修復されます。
問題 2:不適切なシャットダウンのために MongoDB を修復する
クリーンでないシャットダウンが発生し、MongoDB での作業中にジャーナル処理が無効になっている場合、データに一貫性がない可能性があります。空でない mongod.lock
ファイルがある場合、次のエラーメッセージが表示されます。
エラーメッセージ:
Detected unclean shutdown – mongod.lock is not empty
この特定の問題の解決策を以下に示します。
-
Windows コマンドプロンプトで
cd/
コマンドを使用して、root
ディレクトリに切り替えます。 -
--dbpath
にデータファイルのバックアップコピーを作成します。 -
--repair
を使用して MongoDB を初期化します。 -
以下のコマンドを実行し、Enterを押します。
C:\> mongod --dbpath /data/db --repair
完了すると、MongoDB が修復されます。
問題 3:接続の失敗した汚れたシャットダウンが検出されました
次のエラーが発生した場合は、2 段階のプロセスに従う必要があります。
エラーメッセージ:
couldn't connect to server 127.0.0.1 shell/mongo.js:8 4 exceptions: connect failed Unclean shutdown detected
ステップ 1:Windows コマンドプロンプトを開き、cd/
と入力して、ディレクトリを root
に変更します。
ステップ 2:以下のコマンドを実行し、Enterを押して、これが終了するのを待ちます。完了すると、MongoDB が修復されます。
C:\> mongod --repair