MongoDB dropdatabaseの後で、データは回復することができますか?
2430 ワード
最近いくつかのコミュニティのユーザーのコンサルティング、誤って
MongoDBにフルバックアップ+インクリメンタルバックアップを行った場合は、バックアップセットおよびデータのリカバリが可能です.バックアップは、さまざまな形式で実行できます.たとえば、 mongodumpなどのツールにより、データベースに生成された論理バックアップ dbpathディレクトリをコピーする物理バックアップ ファイルシステム、ボリューム管理等によるスナップショット等 ここからも、「マルチノードのレプリケーションセットが配備されているのに、なぜデータバックアップが必要なのか」という問題が見られます.データベースの誤削除という問題が発生すると、dropDatabaseコマンドもすべてのスタンバイノードに同期し、すべてのノードのデータが削除されます.
MongoDBレプリケーションセットが配備されている場合、oplogを通じてできるだけデータを復元することができます.MongoDBレプリケーションセットの変更操作ごとに1つのoplogが記録されるので、データベースが誤って削除された場合、既存のoplogを再生することで「できるだけデータを復元する」ことができます.先日出会ったユーザーは、運がよく、データベースは最近作成されたばかりで、すべての操作がoplogに残っているので、ユーザーはoplogを通じてすべての誤削除データを取り戻しました.
oplogでデータを復元するプロセスは非常に簡単で、oplogセットをmongodumpでエクスポートし、mongorestoreのoplogReplayモードで再生するだけです.
MongoDBはbson形式でデータを格納するため、dropDatbaseまたはdropCollection後
エンジン
mmapv1
wiredTiger
dropDatabase
データファイルはすぐに削除されます
データファイルはすぐに削除されます
dropCollection
すぐにディスクから削除されず、スペースが多重化されます.
データファイルはすぐに削除されます
上記の表の説明から分かるように、mmapv 1ストレージエンジンを使用するとdropCollectionは直ちにデータファイルを削除することはなく、この場合、データファイル李のbsonドキュメントを分析することによってデータを復元することができる.他のシーンの誤削除では、データファイルがすぐにディスクから削除され、この方法で復元できません.
最後に、MonogDBデータベースを使用して重要なデータを格納する場合は、必ずレプリケーションセットを配置し、データバックアップを行うことを強くお勧めします.通常2種類のユーザーはデータバックアップをしません愛したことがありません;MongoDBを使って重要でないデータを保存し、なくしても構わない.(それでも、実際のデータが誤って削除された場合、ユーザーは「どうでもいい」ではなく、できるだけデータを復元したいと考えています) 愛したことがあるが、傷が深くない.MongoDBを使用して重要なデータを格納しているが、問題は発生していないため、データをバックアップしないという幸運を抱いている.怪我をしてからバックアップをしないでください.
以前、MongoDBデータバックアップの技術共有を行ったことがあります.アリクラウドMongoDBクラウドデータベースのバックアップ回復方案を紹介しました.MongoDB複製セット、MongoDB Shardingを任意の時点に回復することができます.興味のある学生は参考にすることができます.MongoDB秒級バックアップ回復(SDCC上海ステーションデータベースコア技術と応用実戦サミットPPT)
MongoDB Backup Methods MongoDBクラウドデータベース MongoDB Sharding
dropDatabse
を実行してデータベースを誤って削除しました(あるいはdropCollectionの誤った削除の集合)、どのような方法でデータを回復することができますか?本稿では、主にいくつかの有効なリカバリスキームについて説明します.シナリオ1:バックアップ・セットによるリカバリ
MongoDBにフルバックアップ+インクリメンタルバックアップを行った場合は、バックアップセットおよびデータのリカバリが可能です.バックアップは、さまざまな形式で実行できます.たとえば、
シナリオ2:oplogによるリカバリ
MongoDBレプリケーションセットが配備されている場合、oplogを通じてできるだけデータを復元することができます.MongoDBレプリケーションセットの変更操作ごとに1つのoplogが記録されるので、データベースが誤って削除された場合、既存のoplogを再生することで「できるだけデータを復元する」ことができます.先日出会ったユーザーは、運がよく、データベースは最近作成されたばかりで、すべての操作がoplogに残っているので、ユーザーはoplogを通じてすべての誤削除データを取り戻しました.
oplogでデータを復元するプロセスは非常に簡単で、oplogセットをmongodumpでエクスポートし、mongorestoreのoplogReplayモードで再生するだけです.
Step 1:oplogコレクションのエクスポート
mongodump -d local -c oplog.rs -d -o backupdir
Step 2:oplogセットのデータをコピーする
mkdir new_backupdir
cp backupdir/local/oplog.rs.bson new_backupdir/oplog.bson
Step 3:oplogの再生
mongorestore --oplogReplay new_backupdir
シナリオ3:データファイルの分析によるリカバリ
MongoDBはbson形式でデータを格納するため、dropDatbaseまたはdropCollection後
エンジン
mmapv1
wiredTiger
dropDatabase
データファイルはすぐに削除されます
データファイルはすぐに削除されます
dropCollection
すぐにディスクから削除されず、スペースが多重化されます.
データファイルはすぐに削除されます
上記の表の説明から分かるように、mmapv 1ストレージエンジンを使用するとdropCollectionは直ちにデータファイルを削除することはなく、この場合、データファイル李のbsonドキュメントを分析することによってデータを復元することができる.他のシーンの誤削除では、データファイルがすぐにディスクから削除され、この方法で復元できません.
まとめ
最後に、MonogDBデータベースを使用して重要なデータを格納する場合は、必ずレプリケーションセットを配置し、データバックアップを行うことを強くお勧めします.通常2種類のユーザーはデータバックアップをしません
以前、MongoDBデータバックアップの技術共有を行ったことがあります.アリクラウドMongoDBクラウドデータベースのバックアップ回復方案を紹介しました.MongoDB複製セット、MongoDB Shardingを任意の時点に回復することができます.興味のある学生は参考にすることができます.MongoDB秒級バックアップ回復(SDCC上海ステーションデータベースコア技術と応用実戦サミットPPT)