プロジェクト

全般

プロフィール

MongoDBのバックアップ・リストア

  • MongoDBのバックアップ・リストアに関するページです。

前提条件

  • バックアップ元とリストア先にMongoDBがインストールされていることとします。
  • yum経由でmongodbをインストールした場合のdbpathは「var/lib/mongo」です。
  • 起動時にlockファイルでエラーとなる場合、dbpath内の.lockファイルを削除します。

オフラインバックアップ・リストア(簡単な方法)

  • mongod起動時に指定している「dbpath」のディレクトリをコピー・転送します。
    # mongod --dbpath=/usr/local/mongodb/data
    上記で起動している場合、
    
    # cd /usr/local/mongodb
    # tar czvf data.tar.gz data
    
    などで、アーカイブし転送します。
    
  • ただし、上記の方法を行うためには、mongodbを停止しておく必要があります。
  • 移動先でアーカイブを展開し、mongodのdbpathに指定して起動します。
    mongodはあらかじめ停止しておきます。
    # service mongod stop
    
    # mv data.tar.gz /usr/local/mongodb
    # cd /usr/local/mongodb
    # tar xzvf data.tar.gz
    
    展開後、mongodを起動します。
    
    # mongod --dbpath=/usr/local/mongodb/data
    

オンラインバックアップ・リストア

  • バックアップ元のmongodは起動したままにしておきます。
  • ダンプ先を仮に「/tmp/mongodump-YYYYMMDD」と指定し、次のコマンドを実行します。
    フォルダはあらかじめ作成しない。
    # mongodump --out /tmp/mongodump-20130906
    
    転送用にアーカイブします。
    # cd /tmp
    # tar czvf mongodump-20130906.tar.gz mongodump-20130906
    
    アーカイブしたダンプファイルをリストア先に転送します。
    
  • リストア先のmongodを停止します。
    # service mongod stop
    
  • リストア先のmongodのデータ(dbpath指定先)をクリアします。
    # rm -rf /usr/local/mongod/data/*
    
  • リストア先のmongodbをクリーンな状態で起動します。
    # service mongod start
    
  • リストアコマンドを実行します。
    # mongorestore /tmp/mongodump-20130906
    
  • 以上でデータが投入されます。

 

戻る