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 ...
随机推荐
- 精美的HTML5 Loadding页面
以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动 ...
- Android——复选按钮和开关按钮
复选按钮和开关按钮代码如下: <LinearLayout android:layout_width="match_parent" android:layout_height= ...
- Linux查找文件
which 可以查找可执行文件的位置 evilxr@IdeaPad:~$ which ping /bin/ping whereis whereis -m 可查询到命令的帮助文档在什么地方 evilxr ...
- Mac OS实用技巧
→常用快捷键Win+Space Spotlight查找Win+↑ 平铺所有窗口Win+↓ 平铺当前焦点应用的所有窗口Win+←/→ 桌面之间切换 ...
- 学习ARM7、ARM9的操作系统选择经验! [转]
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位.广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌 ...
- Lua快速入门
-- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释. --]] ---------------------------------------------------- -- 1. ...
- ADC 分辨率和精度的区别
分辨率和精度这两个,经常拿在一起说,才接触的时候经常混为一谈.对于ADC来说,这两样也是非常重要的参数,往往也决定了芯片价格,显然,我们都清楚同一个系列,16位AD一般比12位AD价格贵,但是同样是1 ...
- 使用支持向量机训练mnist数据
# encoding: utf-8 import numpy as np import matplotlib.pyplot as plt import cPickle import gzip clas ...
- Apache Shiro 手册
(一)Shiro架构介绍 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录 ...
- Openjudge计算概论-DNA排序
/*===================================== DNA排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组 ...