zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux下MongoDB数据库实现自动备份详解

2023-06-13 09:19:48 时间

本文主要给大家介绍的是关于Linux下MongoDB数据库实现自动备份的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

一、创建MongoDB备份目录


mkdir -p /data/mongodb_bak/mongodb_bak_now

mkdir -p /data/mongodb_bak/mongodb_bak_list

二、新建MongoDB数据库备份脚本(/data/mongodb_bak/MongoDB_bak.sh)


#!/bin/bash 

#backup MongoDB 

#mongodump命令路径 

DUMP=/usr/local/mongodb/bin/mongodump 

#临时备份目录 

OUT_DIR=/data/mongodb_bak/mongodb_bak_now 

#备份存放路径 

TAR_DIR=/data/mongodb_bak/mongodb_bak_list 

#获取当前系统时间 

DATE=`date +%Y_%m_%d` 

#数据库账号 

DB_USER=user 

#数据库密码 

DB_PASS=123 

#DAYS=15代表删除15天前的备份,即只保留近15天的备份 

DAYS=15 

#最终保存的数据库备份文件 

TAR_BAK="mongodb_bak_$DATE.tar.gz" 

cd $OUT_DIR 

rm -rf $OUT_DIR/* 

mkdir -p $OUT_DIR/$DATE 

#备份全部数据库 

$DUMP -h 15.62.32.112:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE 

#压缩为.tar.gz格式 

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE 

#删除15天前的备份文件 

find $TAR_DIR/ -mtime +$DAYS -delete 

exit 

三、修改文件属性,使其可执行


chmod +x MongoDB_bak.sh

四、修改/etc/crontab,添加计划任务


vi /etc/crontab

#每星期六晚上20:30开始执行MongoDB数据库备份脚本

30 20 * * 6 root /data/mongodb_bak/MongoDB_bak.sh 

附录:MongoDB数据库恢复


#恢复全部数据库

mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/

#恢复单个数据库

mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore -d dbname --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/dbname

部分参数说明 drop参数:恢复数据之前删除原来的数据,避免数据重复 noIndexRestore参数:恢复数据时不创建索引 dir参数:数据库备份目录 -d参数:后面跟要恢复的数据库名称

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Linux下MongoDB数据库实现自动备份详解