
私は3つのモンゴ(4.0.4)コンテナをDocker内でレプリカセットを構成して10か月以上使用しましたが、問題やトラブルは発生しませんでした。プライマリmongoコンテナ/レプリカセットは、Springを実行しているSpring Bootアプリケーションに接続されていました。2.1.1mongo トランザクションを使用します。
休暇中のある時点で、すべての Mongo DB コレクションが消え、作成されたコレクションとその中にあるデータがすべて消えてしまいました。Spring Boot 内にスケジュールされたプロセスがあり、そのプロセスが 1 つのコレクションにデータを挿入するため、そのコレクションが作成され、データが挿入されました。これはこのプロセスの正しい機能方法です (Spring Boot は、まだ作成されていない場合はコレクションを自動的に作成します)。そのため、データが失われたことに気付いた時点では、問題が発生した後に挿入されたコレクションとデータが 1 つしかありませんでした。
3つのコンテナはすべてホストからボリュームを共有しており、.wtファイルを調べていたところ、データの一部が読み取り可能なファイルが1つあり、ドロップされたデータはすべてそこに残っているようですが、どうすれば復元できるかわかりません。ファイル内コレクション-8--739794789310552254.wt行数は約 3561507 行で、ファイルサイズは約 390 MB です。このファイルをエディターで開くと、データの一部、特に日付が読み取り可能になります (すべてのドキュメントの監査ログ、作成日、最終変更日など)。
mongo restore を試しましたが、うまくいきませんでした。
ログには誰かが DB にアクセスして何らかのドロップ ステートメントを実行したというログがなかったので、これがどのように発生したのか私には何が考えられますか。Spring 内のトランザクションの一部が何らかの理由でロックされ、Mongo が最後に確認された状態である空の状態に戻った (私にとっては唯一の合理的な説明) としか考えられません。なぜ空に復元されたのかはわかりません。
コレクション内のデータを復元する方法はありますか?8--739794789310552254.wt 私は全巻持っています/データ/dbパスをバックアップし、Docker を使用してそのファイルから Mongo を再作成できましたが、問題発生後の状態しかありません。