mongodb 数据自动备份

创建Mongodb数据库备份目录

mkdir -p ~/backup/mongod_bak/mongod_bak_now
mkdir -p ~/backup/mongod_bak/mongod_bak_list

新建Mongodb数据库备份脚本

mkdir ~/crontab/ && vi ~/crontab/mongod_bak.sh #新建文件,输入以下代码

#!/bin/sh
DUMP=~/mongodb-linux-x86_64-4.0.1/bin/mongodump # mongodump备份文件执行路径
OUT_DIR=~/backup/mongod_bak/mongod_bak_now # 临时备份目录
TAR_DIR=~/backup/mongod_bak/mongod_bak_list # 备份存放路径
DATE=`date +%Y_%m_%d` # 获取当前系统时间
DB_USER=youuser # 数据库账号
DB_PASS=youpassword # 数据库密码
DB_NAME=diary # 要备份的数据恢复库名字
DAYS=30 # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
TAR_BAK="mongod_$DB_NAME_bak_$DATE.tar.gz" # 最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1 --port 27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE # 备份全部数据库
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件

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

chmod +x ~/crontab/mongod_bak.sh #修改文件属性,使其可执行

修改/etc/crontab #添加计划任务

crontab -e
在下面添加
30 1 * root ~/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份

重新启动crond使设置生效

/sbin/service crond reload #重新载入配置
chkconfig --level 35 crond on  #加入开机自动启动:
/sbin/service crond start   #启动服务
crontab -l #列出crontab文件

恢复备份

./mongorestore -h 127.0.0.1 —port 27017 -u youuser -p youpassword -d diary ~/backup/mongod_bak/mongod_bak_now/

?

原文地址:https://www.cnblogs.com/daysme/p/10013879.html

时间: 2024-10-18 20:22:36

mongodb 数据自动备份的相关文章

关于Linux/Unix数据自动备份工具

我们在编写程序的时候经常会需要对数据进行备份,那么就需要使用到自动备份工具,那么你对Linux/Unix数据自动备份工具了解有多少呢? 下面我们就一起去看看关于Linux/Unix数据自动备份工具的内容. primabackup.sh 说明文档 版本:2.0.1 0. 版本更新 * 2006-11-23 SWsoft.com.cn v2.0.2 - [fix] 修复resin路径 * 2005-03-28 ValueOf.com v2.0.1 - [fix] 备份resin和tomcat的配置

VSS数据自动备份

VSS 的全称为 Visual Source Safe ,作为 Microsoft Visual Studio 的一名成员,它的主要任务就是负责项目文件的管理,几乎可以适用于任何软件项目, 占用空间小并且方便各个版本代码和文档的获取,对开发小组中源代码的访问进行有效的协调. VSS 2005界面如下: 为了防止主服务器发生故障导致数据丢失,我们需要定期备份代码数据到备份服务器,VSS自带的备份工具为安装目录下的ssarc.exe,用法如下: 手动备份比较麻烦,查找了一下相关资料,编写了一个bat

GitLab 数据自动备份

gitlab自动备份 周期性计划任务: crontab -e 0 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create service crond restart 每天凌晨备份gitlab的数据 删除过期的备份文件: 因为每天都会进行一次备份,而备份的数据比较大,磁盘空间会被大量使用,因此,定期删除过期的文件 vim /var/opt/gitlab/backups/remove.sh !/bin/bash find "/var/opt/

Android M 新特性——应用数据自动备份功能

一.功能介绍 Android m 的自动备份数据功能运用的是Android Backup Service,将数据备份到了google drive中.Android Backup Service其实在安卓2.2就已经有了.但一开始谷歌的备份服务并不是用来同步备份应用数据,而是为了方便用户可以在不同设备上获取到备份的数据.而现在,只要你的app数据发生变化,或者系统升级时,Android M的应用数据备份功能便会启动.所以应用可以随时恢复之前存储过的数据,即使是设备恢复过出厂设置或者更换了新的设备.

MongoDB 数据自动同步到 ElasticSearch

我们产品中需要全文检索的功能,后端数据存储主要使用了 MySQL + MongoDB,而其中需要检索的内容是在 MongoDB 中的. MongoDB 本身是自带文本索引功能的,但是,不支持中文.术业有专攻,MongoDB 是数据存储应用,那么全文检索就使用专业的全文搜索引擎吧. 预选的几个选手有:Solr.ElasticSearch.Xapian.Sphinx.XunSearch.由于我们的数据量比较大,觉得现在单机已经有些力不从心了,MongoDB 也开始计划做分片,那么全文搜索如果自带分布

用shell脚本实现MongoDB数据库自动备份

一.创建MongoDB备份目录 用来存放数据 mkdir -p /data/mongodb_bak/mongodb_bak_now mkdir -p /data/mongodb_bak/mongodb_bak_list 二.创建MongoDB数据库备份脚本 #!/bin/bash# DUMP=/usr/local/mongodb/bin/mongodump    #mongodump命令路径 OUT_DIR=/data/mongodb_bak/mongodb_bak_now    #临时备份目录

MySQL数据库的自动备份与数据库被破坏后的恢复1

一.前言: 当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小. 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么.灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统. 这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法.在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数

SQL SERVER 2012设置自动备份数据库

为了防止数据丢失,这里给大家介绍SQL SERVER2012数据自动备份的方法: 一.打开SQL SERVER 2012,如图所示: 服务器类型:数据库引擎: 服务器名称:127.0.0.1(本地),也可以选择远程连接; 身份验证:包含Windows身份验证和 SQL Server身份验证,此处选择Windows 身份验证; 二.如图,选择[管理]-->[维护计划]-->[维护计划向导]: 三.在[SQL SERVER 维护计划向导]界面,点击[下一步]: 四.填写如图所示:名称和说明,点击[

MySQL自动备份及灾难恢复

[转自51cto]http://bbs.51cto.com/thread-820965-1.html ? ? 当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小. 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么.灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统. 这一节,介绍数据库自动备份以及数据库