在项目中如果使用MongoDB作为NOsql数据库进行存储,那一定涉及到数据的备份与恢复:
MongoDB 数据备份方法
在 MongoDB 中我们使用 mongodump 命令来备份 MongoDB 数据
语法如下:
> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
MongoDB 数据恢复
mongodb 使用 mongorestore 命令来恢复备份的数据
>mongorestore -h <hostname><:port> -d dbname <path>
你不能同时指定 <path> 和 –dir 选项,–dir也可以设置备份目录。
你不能同时指定 <path> 和 –dir 选项。
定时备份 mongodb
环境
操作系统: Centos 7
一、 备份 shell 脚本 (/home/crontab/mongobak.sh)
#!/bin/sh# dump 命令执行路径,根据mongodb安装路径而定DUMP=/usr/bin/mongodump# 临时备份路径OUT_DIR=/home/backup/mongod_bak/mongod_bak_now# 压缩后的备份存放路径TAR_DIR=/home/backup/mongod_bak/mongod_bak_list# 当前系统时间DATE=`date +%Y-%m-%d`# 数据库账号DB_USER=user# 数据库密码DB_PASS=password# 代表删除30天前的备份,即只保留近 30天的备份DAYS=30# 最终保存的数据库备份文件TAR_BAK="mongod_bak_$DATE.tar.gz"cd $OUT_DIRrm -rf $OUT_DIR/*mkdir -p $OUT_DIR/$DATE$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d dbname -o $OUT_DIR/$DATE# 压缩格式为 .tar.gz 格式tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE# 删除 15 天前的备份文件find $TAR_DIR/ -mtime +$DAYS -deleteexit
二、创建对应的备份目录
mkdir -p /home/backup/mongodb_bak/mongodb_bak_nowmkdir -p /home/backup/mongodb_bak/mongodb_bak_list
三、修改文件属性,使其可执行
chmod +x MongoDB_bak.sh
四、添加到计划任务
cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start/sbin/service crond stop/sbin/service crond restart/sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可
查看当前用户的crontab,输入 crontab -l;
编辑crontab,输入 crontab -e;
删除crontab,输入 crontab -r
1 进入编辑界面
crontab -e
2 添加定时任务
30 18 * * * /home/crontab/mongobak.sh
基本格式 :
* command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
3 保存后退出,启动服务
service crond start
4 设置开机自启动
chkconfig crond on
本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!