MongoDBデータベースのバックアップとリストア

2495 ワード

バックアップ

mongodump --host=mongodb.example.net --port=27017 --username=user --password="pass" --authenticationDatabase=test --db=test --collection=myCollection --oplog --out=/opt/backup/test-2013-10-24
  • --host:デフォルトlocalhost:27017、接続ホスト
  • を指定
  • --port:デフォルト27017、接続ポート
  • を指定
  • --username:認証を行うユーザー名を指定する
  • --password:認証用のパスワードを指定する
  • --authenticationDatabase:認証用のデータベースを指定します.指定されていない場合は、エクスポートされたデータベースと仮定します.
  • --db:バックアップするデータベースを指定します.デフォルトはすべてのデータベース
  • です.
  • --collection:バックアップするコレクションを指定します.デフォルトはすべてのコレクション
  • です.
  • --oplog:mongodumpバックアップ操作中に発生した操作ログを含むoplog.bsonファイルをバックアップの内容として作成します.--oplogは--dbと--collectionと一緒に使用することはできません.完全なダンプを作成してから使用する必要があります.
  • --out:現在のディレクトリの下にあるdumpディレクトリをデフォルトで設定し、バックアップ保存ディレクトリを指定します.パスの代わりに「-」を使用して、標準出力に送信できます.--outは--archiveと一緒に使用できません.

  • 元に戻す

    mongorestore --host=mongodb1.example.net --port=3017 --username=user --password="pass" --authenticationDatabase=test_bak --oplogReplay --drop /opt/backup/test-2013-10-24/
  • --host:デフォルトlocalhost:27017、接続ホスト
  • を指定
  • --port:デフォルト27017、接続ポート
  • を指定
  • --username:認証を行うユーザー名を指定する
  • --password:認証用のパスワードを指定する
  • --authenticationDatabase:認証用のデータベースを指定する
  • --oplogReplay:データベースのダンプを復元した後、bsonファイルからoplogコンテンツを再実行します.--oplogReplayは--db--collection--nsInclude--nsExcludeとは併用できません.完全なダンプを復元して使用する必要があります.
  • --drop:コレクションをリストアする前に、ターゲット・データベースからコレクションを削除します.

  • バックアップ・スクリプト

    #!/bin/bash
    
    #  
    username=""
    password=""
    host="127.0.0.1"
    port="27017"
    
    #  
    backup_dir=/root/scripts/mongo_backup
    backup_dbs=('wu_test')
    backup_date=$(date +"%Y-%m-%d")
    
    
    #  
    echo "Backup Start!" ${backup_date}
    for db in ${backup_dbs[@]}; do
        echo -e "Backup Begin DB: " ${db}
        /usr/bin/mongodump --host=$host --port=$port --db=${db} --out=$backup_dir/mongo-${backup_date}/
        echo -e "Backup Succeed DB: " ${db} '

    ' done echo "Backup Fihish!" ${backup_date} # find $backup_dir -mtime +14 -type d -name "mongo*" -exec rm -rf {} \; echo -e "
    ======================================================="

    計画タスク
    00 01 * * * bash /root/scripts/mongo_backup.sh >> /root/scripts/mongo_backup.log 2>&1