Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

予期しないシャットダウン後の自己管理型スタンドアロンの回復

警告

次の手順は、スタンドアロンの mongodインスタンス バージョン7.0に適用されます。 その他の MongoDB のバージョンについては、対応するバージョンのマニュアルを参照してください。

レプリカセットのメンバーを復元する目的でこのチュートリアルを使用しないでください。 代わりに、「 自己管理型レプリカセットのノードの 再同期 」で説明されているように、 バックアップ から復元するか、セットの別ノードから再同期する必要があります。

Tip

ジャーナリングを有効にして実行している場合、サーバーはジャーナル ファイルを使用してデータファイルを自動的にクリーンな状態に復元できるため、修復を実行する必要はほとんどありません。ただし、ディスク レベルのデータ破損から回復する必要がある場合は、修復を実行する必要があるかもしれません。

ディスクレベルのデータ破損またはデータファイルの欠落により、mongod インスタンスが起動できなくなる可能性があり、ジャーナル ファイルが不十分で自動的に回復できない可能性があります。

2018-10-24T18:05:18.248-04:00 W STORAGE [initandlisten] Detected unclean shutdown - mongod.lock is not empty.
...
2018-10-24T17:24:53.122-04:00 E STORAGE [initandlisten] Failed to get the cursor for uri: table:collection-2-6854866147293273505
2018-10-24T17:24:53.122-04:00 E STORAGE [initandlisten] This may be due to missing data files. ...
...
***aborting after fassert() failure

このような場合、dbPath には空でない mongod.lock ファイルが含まれます。

次の手順では、mongod --repair を使用してこれらのケースから回復します。

警告

他に選択肢がない場合にのみ mongod --repair を使用してください。この操作により、修復プロセス中に破損したデータは削除され、保存はされません。

WiredTiger ストレージ エンジンの場合、 mongod --repair :

  • 1 つ以上の不整合なインデックスを持つコレクションのすべてのインデックスを再構築します。

  • 破損したデータを破棄します。

  • 欠落しているデータ ファイルまたはメタデータ ファイルに対して空のファイルまたはスタブ ファイルを作成します。

重要

MongoDB データファイルの権限が変更されないようにするために、通常 mongod プロセスを実行するのと同じユーザーとして修復操作を実行します。

1

--dbpath 内のデータファイルのバックアップコピーを作成します。

2

データファイルを修復するには、--repair オプションを使用して mongod インスタンスを起動します。

スタンドアロンで、次のようなコマンドを発行します。

mongod --dbpath /data/db --repair

完了すると、dbpath には修復されたデータファイルと空の mongod.lock ファイルが含まれます。[1]

注意

何らかの理由で修復が完了しなかった場合は、--repair オプションを使用してインスタンスを再起動することで修復を完了する必要があります。

[1] 通常、手動で mongod.lock ファイルを削除しないでください。代わりに、上記の手順でデータベースを回復してください。状況が深刻な場合は、ファイルを削除し、破損している可能性のあるファイルを使用してデータベースを起動し、データベースからデータの回復を試行することができます。しかし、このような状況でデータベースの状態を予測することは不可能です。

戻る

復元