MOngoDBデータベースファイルの損失、データベース起動エラーの解決プロセス

[MongoDBデータベース環境の紹介]

最近、データ復旧センターがローカルの税関からMongoDBデータを復旧しました。最初に、データベース環境が導入されました。
データが失われたデータベースは仮想マシン上にあり、仮想マシンのオペレーティングシステムはWindowsServer 2012です。企業はデータベース内のファイルを移行する必要があるため、MongoDBサービスが有効になっているときに管理者がデータベースファイルを他のパーティションにコピーし、元のデータベースパーティションのデータがフォーマットされます。ただし、移行されたデータは使用できません。管理者がデータを元のパーティションにコピーした後も、MongoDBサービスは使用できず、エラー「Windowsは(ローカルコンピューターで)MongoDBサービスを開始できません。エラー1067:プロセスが予期せず終了しました。」
MOngoDBデータベースファイルの損失、データベース起動エラーの解決プロセス

[MongoDBデータベース障害の予備検査]

エンジニアはお客様の説明に基づいて予備的な理解を行いました。通常の状況では、MongoDBサービスがシャットダウンされていない場合、データベースファイルをコピーして戻すと、2つのファイルmongod.lockとWiredTiger.lockのコピーでエラーが発生します。これは、これが発生した後に行うことができます。コピーしたファイルからこれら2つのファイルを見つけて削除します。MongoDBを再起動すると、データベースによってこれらの2つのファイルが自動的に再生成され、データベースを正常に起動できます。
その後、エンジニアはこの予測に従ってお客様が移行したファイルを検査しましたが、予期せず、移行したデータベースファイルにmdbcatalog.wtファイルがありませんでした。
mdbcatalog.wtファイルは、すべてのコレクションメタデータをMongoDBに格納するために特別に使用されるファイルです。データベースの起動時に読み取る必要がある関連情報は、変更されたファイルに格納されます。したがって、顧客データベースの起動エラーの原因は、mdbcatalog.wtファイルの損失であるはずです。データベースは、コレクションベットのWTテーブル名、コレクションの作成オプション、コレクションのインデックス情報、およびデータベースの起動エラーの原因となったその他のメタデータを取得できません。 。

【データベースのデータ復旧】

データリカバリエンジニアは、最初にデータベースパーティションの基になるデータをスキャンしましたが、mdbcatalog.wtファイルに関する情報はスキャンしませんでした。スキャン方法を何度も調整して調整した後、関連情報が見つからず、変更されたファイルが上書きされているため、応答を渡すことができませんでした。 mdbcatalog.wtファイルはデータベースを修復します。
そのため、データ復旧エンジニアがデータ復旧戦略を調整しましたお客様のデータベースはWiredTigerストレージエンジンに基づくデータベースシステムであるため、実行可能なwtツールはWindows環境でコンパイルされました。
MOngoDBデータベースファイルの損失、データベース起動エラーの解決プロセス
コンパイルされたwtツールを使用して、データベースコレクションファイル内のすべてのデータがクリーンアップされて書き戻され、データの読み取り結果がファイルに書き込まれます。新しいMongoDBデータベースを作成し、対応するデータボリュームのコレクションを作成し、コレクションにファイルを1つずつ書き込み、データセットをクエリし、インデックス情報を再構築します。
コレクション内のレコードを照会し、レコードタイプを決定し、コレクションインデックスを再構築すると、コレクションが復元され、データを正常に表示できます。

MOngoDBデータベースファイルの損失、データベース起動エラーの解決プロセス
MOngoDBデータベースファイルの損失、データベース起動エラーの解決プロセス

[データを確認し、データが正常に復元されていることを確認してください]

すべてのコレクションのインデックスを再構築するように顧客を支援した後、顧客はデータベース全体を照会し、データは正しいです。データの回復は完全に成功しました。
*

おすすめ

転載: blog.51cto.com/sun510/2533079
おすすめ