自动化备份Mongodb

1.创建脚本:

vim /opt/data/mongd.sh

#!/bin/bash

DB_USER=aaaa                  # 数据库操作员
DB_PASS=xxxx               # 数据库操作员密码
TAR_DIR=/opt/data/backup/mongo                # 备份文件正式目录,例如:/data/backup/mongod
OUT_DIR=/opt/data/backup/tmp                 # 备份文件临时目录,例如:/data/backup/mongod/tmp

DUMP=mongodump
DATE=`date +%Y_%m_%d_%H_%M_%S`    # 备份文件将以备份时间保存
DAYS=7                           # 保留最新14天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz"  # 备份文件命名格式

mkdir -p $OUT_DIR && cd $OUT_DIR  # 务必确保 $OUT_DIR 路径正确,否则可能引起致命错误
rm -rf $OUT_DIR/*                 # 清空临时目录
mkdir -p $OUT_DIR/$DATE           # 创建本次备份文件夹
$DUMP -h 127.0.0.1:27027  -u $DB_USER -p $DB_PASS -d mydb -o $OUT_DIR/$DATE  # 执行备份命令
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE       # 将备份文件打包放入正式目录
find $TAR_DIR/ -mtime +$DAYS -delete             # 删除14天前的旧备份
赋执行权限:
chmod +x ~/crontab/mongod.sh

如果你 是windows编辑shell,需要转码unix:

dos2unix mongod.sh

自动运行

crontab -e
0 2 * * * root ~/crontab/mongod.sh

开机启动:


/bin/systemctl restart  crond.service
systemctl enable crond.service    // 设为开机启动

 

恢复命令:

mongorestore命令脚本语法如下:

>mongorestore -h <:port> -d dbname 
  • --host <:port>, -h <:port>:

    MongoDB所在服务器地址,默认为: localhost:27017

  • --db , -d :

    需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

  • --drop:

    恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

  • mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。

    你不能同时指定 和 --dir 选项,--dir也可以设置备份目录。

  • --dir:

    指定备份的目录

    你不能同时指定 和 --dir 选项。

你可能感兴趣的:(j2ee,CentOS,mongodb)