linux系统中实现mongodb3.0.5数据库自动备份
最近两天,因公司业务需要,要定期备份mongodb数据库中的数据。
查了很多资料后,发现mongodb似乎并没有自带的定时备份功能,于是只好转移目标到linux系统的定时任务上,于是学习并使用了crontab,并成功定时备份。
参考文档:http://blog.itpub.net/519536/viewspace-659881/
http://www.linuxdiyf.com/viewarticle.php?id=4344
http://blog.csdn.net/love__coder/article/details/6890997
http://www.cnblogs.com/cosiray/archive/2012/03/09/2387361.html
我的实现过程大体上分了两步,一个是在root用户下,一个是其他非root用户。因为测试机上的mongodb等都是用的root用户,所以一开始迷迷糊糊的就直接操作了。
一、root用户下:
1、环境:redhet 6.3
mongodb安装目录:/mongodb305/mongodb305/bin
mongdb中存在数据库admin,用户名admin,密码admin
2、首先写了一个mongodb备份的脚本test.sh,并且在root目录下创建一个目录admin:
[root@213 ~]# vi test.sh
[root@213 ~]# mkdir /root/admin
3、test.sh文件的内容如下: (这里有两个命令,第一个命令后的分号不能少,至少我在操作的时候不加分号就不行)
rm -rf /root/admin; /mongodb305/mongodb305/bin/mongodump --port 27017 -u admin -p admin -d admin -o /root/admin ~ ~ ~ ~ ~ -- INSERT --
4、然后设置定时任务:
[root@213 ~]# cd /etc/cron.d [root@213 cron.d]# ls 0hourly raid-check sysstat [root@213 cron.d]# vi test
5、test文件内容如下:(这里设置的是每五分钟自动备份一次)
*/5 * * * * root /root/test.sh
6、然后执行crontab命令:
[root@213 cron.d]# crontab test
7、这样就可以了,之后ll查看/root/admin就可以看到每过5分钟,admin这个目录以及里边的内容都会改变一次
二、非root用户:
1、环境:mongodb目录:/home/tuzongxun/mongodb306/mongodb305/bin
2、创建admin目录,创建脚本test.sh并编辑:
[tuzongxun@213 ~]# mkdir /root/admin
[tuzongxun@213 ~]# vi test.sh
3、test.sh文件内容如下:
rm -rf /home/tuzongxun/admin; /home/tuzongxun/mongodb306/mongodb305/bin/mongodump --port 27017 -u admin -p admin -d admin -o /home/tuzongxun/admin ~ ~ ~ ~ ~ -- INSERT --
4、然后设置定时任务:
[root@213 ~]# cd /etc/cron.d [root@213 cron.d]# ls 0hourly raid-check sysstat test [root@213 cron.d]# vi test111
5、test111文件内容如下:(这里设置的是每五分钟自动备份一次)
*/5 * * * * tuzongxun /home/tuzongxun/test.sh
6、这里需要注意的是:如果这里使用的数据库就是刚才用root用户操作过的,那么有一些地方需要修改,否则任务将不能执行。
例如:1、/tmp下的mongo开头的那些文件,还有mongodb数据存储目录下journal目录以及j._0文件;都要更改用户权限,否则将不能用非root用户启动mongodb
2、要在/etc中更改cron.allow文件,在里边加入需要使用的用户,例如:tuzongxun;
7、执行crontab命令:
[tuzongxun@213 cron.d]# crontab test111
三、以上两个操作的时候,test.sh文件默认不是可执行文件,需要赋予可执行权限。
在使用crontab定时操作之前,为了验证test.sh文件是否能正确有效执行,可以先手动执行一次,确定没问题的情况下,再使用定时任务 。
linux系统中实现mongodb3.0.5数据库自动备份的更多相关文章
- Linux 系统中的MySQL数据库默认区分大小写
今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...
- Linux系统中Oracle11g数据库的安装与验证
1.查看Linux系统的位数 2.下载Oracle10g数据库软件 https://blog.csdn.net/xiezuoyong/article/details/81197688 (需要注册Ora ...
- 在linux系统中安装MySQL
1.安装Linux系统中自带的MySQL安装包 在现在常用的发行版本里都集中了MySQL安装包 CentOS系统中的YUM中包含了MySQL安装包,版本是MySQL5,rpm软件包的名称是mysql- ...
- Linux系统中安装软件方法总结
Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...
- Linux系统中的Device Mapper学习
在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...
- Linux 系统中僵尸进程
Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...
- 77 swapon-激活Linux系统中交换空间
Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存. 语法 /sbin/swapon -a [-v] /sbin/swapon [-v] ...
- [转]理解Linux系统中的load average
转自:http://heipark.iteye.com/blog/1340384 谢谢,写的非常好的文章. 一.什么是load average linux系统中的Load对当前CPU工作量的度量 (W ...
- Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名
Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名 转载自:http://b ...
随机推荐
- HDU 5918 KMP/模拟
Sequence I Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- zoj3623 Battle Ships ——完全背包?简单DP!|| 泛化背包
link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3623 看起来像完全背包,但是物品价值是变化的,所以很多人搞的很复 ...
- Python科学画图小结
Python画图主要用到matplotlib这个库.具体来说是pylab和pyplot这两个子库.这两个库可以满足基本的画图需求,而条形图,散点图等特殊图,下面再单独具体介绍. 首先给出pylab神器 ...
- Redis安装及基本配置
一.Redis介绍 1.Redis是一个key-value存储系统 2.官方站点http://redis.io 3.Redis和Memcached类似,但支持数据持久化 4.支持更多value类型,除 ...
- linux之df命令
介绍: Linux中df命令可以用来显示目前在Linux系统上的文件系统的磁盘使用情况统计.这些工具可以方便地知道哪些文件系统消耗多少内存.此外,如果被拾起,并且提供一个特定的文件名作为df命令的参数 ...
- springMvc源码学习之:利用springMVC随时随地获取HttpServletRequest等对象
一.准备工作: 在web.xml中添加 <listener> <listener-class> org.springframework.web.context.request. ...
- Nginx-limit_req限速配置示例
#以用户二进制IP地址,定义三个漏桶,滴落速率1-3req/sec,桶空间1m,1M能保持大约16000个(IP)状态 limit_req_zone $binary_remote_addr zone= ...
- js定义变量需赋予初始值
这是console.log打印出来的日志,就是多了一个undefined 日志: hitTableObjectID:undefinedbfa4be7b-32fc-459a-9092-ecde316b3 ...
- ABBYY哪些工具和命令可以进行区域校正
ABBYY FineReader OCR文字识别软件在运行文档识别过程前,会对文档的逻辑结构进行分析,并检测包含文本.图片.表格.条码的区域.程序将通过该分析来确定区域和识别顺序.此信息有助于重建原始 ...
- FrameBuffer
http://blog.csdn.net/luxiaoxun/article/details/7622988 http://blog.csdn.net/godspirits/article/detai ...