MongoDB データベースを修復する

Mehvish Ashiq 2022年6月13日
MongoDB データベースを修復する

このチュートリアルでは、直面している問題に応じて、Windows オペレーティングシステムで MongoDB を使用してデータベースを修復する方法について説明します。

MongoDB でデータベースを修復する

MongoDB を使用してデータベースを修復する必要があるさまざまなシナリオがあります。たとえば、不適切または不潔なシャットダウンが発生した場合、または不整合やエラーをチェックしたい場合は、データベースを修復します。

また、システムが誤ってシャットダウンした場合にもデータベースを修復します。修復プロセスに入る前に、MongoDB データベースのコンポーネントを理解しましょう。

MongoDB データベースコンポーネント

MongoDB データベースには 3つのコンポーネントがあり、以下で簡単に説明します。

  1. mongo-アラートログをチェックするインタラクティブシェル。たとえば、操作の詳細と再試行を行います。
  2. mongos-プロセスの不適切な終了。さらに、インスタンスからの切断を余儀なくされました。
  3. mongod-バックグラウンド操作とデータ要求を処理するデーモンプロセス。

以下は、いくつかの問題とそれぞれの解決策です。

問題 1:システムが誤ってシャットダウンする

以下は、この問題の段階的な解決策です。手順を実行する前に、root ディレクトリに data フォルダがあることを忘れないでください。

  • cd/コマンドを使用して、ディレクトリを Windows OS の rootC:\> に変更します。
  • 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
著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook