私のmongodbは今日ハッキングされました。すべてのデータが削除され、ハッカーはそれを元に戻すためにいくらかの金額を必要とします。私は彼に支払うことはありません。mongo oplogからデータを復元できますか?
しかし、私はオンになっている、私はそれがすべての操作を保存し、300000以上の文書が含まれて参照してください。
このログから自分のデータを復元できるツールはありますか?
私のmongodbは今日ハッキングされました。すべてのデータが削除され、ハッカーはそれを元に戻すためにいくらかの金額を必要とします。私は彼に支払うことはありません。mongo oplogからデータを復元できますか?
しかし、私はオンになっている、私はそれがすべての操作を保存し、300000以上の文書が含まれて参照してください。
このログから自分のデータを復元できるツールはありますか?
oplogの距離によっては、展開を復元することができます。場合によってはdbpath
の現在の状態をバックアップすることをおすすめします。
このような復元を行うためには、多くの変数がありますので、成功することは決して保証されません。これはmongodump
とmongorestore
を使用して行うことができますが、oplogが最初に戻ったとき(つまり、最初にデプロイメントが作成されたとき)にのみ実行されます。そうであれば、にデータを復元できる可能性があります。表示されない場合は、処理中にエラーが表示されます。
何かを行う前に、デプロイメントを固定します。この状況は、セキュリティの欠如のために発生します。 MongoDBには広範なセキュリティ機能があります。詳細はSecurity Checklist pageをご覧ください。
をmongodump --host <old_host> --username <user> --password <pwd> -d local -c oplog.rs -o oplogDump
を使用してダンプします。
bsondump oplogDump/local/oplog.rs.bson
を使用して、問題のドロップ操作が発生したときのタイムスタンプを確認するために、oplogの内容を確認してください。この行はdropDatabase()
コマンドはtest
データベース上で実行されたことを意味し
{"ts":{"$timestamp":{"t":1502172266,"i":1}},"t":{"$numberLong":"1"},"h":{"$numberLong":"7041819298365940282"},"v":2,"op":"c","ns":"test.$cmd","o":{"dropDatabase":1}}
:あなたは、およそ次のような行を探しています。
t
の値は{"$timestamp":{"t":1502172266,"i":1}}
に留意してください。 mongorestore --host <new_host> --username <user> --password <pwd> --oplogReplay --oplogLimit=1502172266 --oplogFile=oplogDump/local/oplog.rs.bson oplogDump
注意基本的にはそのタイムスタンプを打つ一度dropDatabase
コマンドのタイムスタンプではある(oplogの再生を停止するmongorestore
を言っているoplogLimit
にパラメータを使用して、安全な新しい展開に
復元ステップ3
oplogFile
パラメータは、MongoDBの3.4に新しく追加されました。古いバージョンでは、あなたが例えば、oplog.bson
という名前のファイルにダンプディレクトリのルートにoplogDump/local/oplog.rs.bson
をコピーする必要がありますを入力し、上記のコマンド例のoplogFile
パラメータを削除します。ステップ4の後
あなたのoplogは、時間の最初に戻り、あなたが適切なタイミングでoplog再生を停止した場合、うまくいけば、あなたはdropDatabase
コマンドが実行された直前の時点で、あなたのデータが表示されるはずです。
ありがとうございました!私は正常に私のデータベースを復元しました –