MongoDB dropdatabaseの後で、データは回復することができますか?

2430 ワード

最近いくつかのコミュニティのユーザーのコンサルティング、誤ってdropDatabseを実行してデータベースを誤って削除しました(あるいはdropCollectionの誤った削除の集合)、どのような方法でデータを回復することができますか?本稿では、主にいくつかの有効なリカバリスキームについて説明します.

シナリオ1:バックアップ・セットによるリカバリ


MongoDBにフルバックアップ+インクリメンタルバックアップを行った場合は、バックアップセットおよびデータのリカバリが可能です.バックアップは、さまざまな形式で実行できます.たとえば、
  • mongodumpなどのツールにより、データベースに生成された論理バックアップ
  • dbpathディレクトリをコピーする物理バックアップ
  • ファイルシステム、ボリューム管理等によるスナップショット等
  • ここからも、「マルチノードのレプリケーションセットが配備されているのに、なぜデータバックアップが必要なのか」という問題が見られます.データベースの誤削除という問題が発生すると、dropDatabaseコマンドもすべてのスタンバイノードに同期し、すべてのノードのデータが削除されます.

    シナリオ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クラウドデータベースのバックアップ回復方案を紹介しました.MongoDB複製セット、MongoDB Shardingを任意の時点に回復することができます.興味のある学生は参考にすることができます.MongoDB秒級バックアップ回復(SDCC上海ステーションデータベースコア技術と応用実戦サミットPPT)

    詳細

  • MongoDB Backup Methods
  • MongoDBクラウドデータベース
  • MongoDB Sharding