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:

   [[email protected] ~]# vi test.sh
   [[email protected] ~]# 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、然后设置定时任务:

  [[email protected] ~]# cd /etc/cron.d
  [[email protected] cron.d]# ls
   0hourly  raid-check  sysstat
  [[email protected] cron.d]# vi test

5、test文件内容如下:(这里设置的是每五分钟自动备份一次)

  */5 * * * * root /root/test.sh

6、然后执行crontab命令:

  [[email protected] cron.d]# crontab test

7、这样就可以了,之后ll查看/root/admin就可以看到每过5分钟,admin这个目录以及里边的内容都会改变一次

二、非root用户:

1、环境:mongodb目录:/home/tuzongxun/mongodb306/mongodb305/bin

2、创建admin目录,创建脚本test.sh并编辑:

   [[email protected] ~]# mkdir /root/admin
   [[email protected] ~]# 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、然后设置定时任务:

  [[email protected] ~]# cd /etc/cron.d
  [[email protected] cron.d]# ls
   0hourly  raid-check  sysstat test
  [[email protected] 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命令:

   [[email protected] cron.d]# crontab test111

三、以上两个操作的时候,test.sh文件默认不是可执行文件,需要赋予可执行权限。

在使用crontab定时操作之前,为了验证test.sh文件是否能正确有效执行,可以先手动执行一次,确定没问题的情况下,再使用定时任务 。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 20:32:48

linux系统中实现mongodb3.0.5数据库自动备份的相关文章

linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该主

另外个电脑ping这个台电脑,从此就ping不通这个电脑了.没有设置之前是可以正常相互ping通的.另外还发现虽然外面无法ping这台电脑,但是这台电脑可以正常ping外面的电脑 通过抓包进行简单的分析没有lo:0的情况下,电脑A ping linux的eth0时, 首先发arp包,eth0应答arp包,告诉电脑A(自己的eth0的mac地址)电脑A知道linux eth0的mac地址后,封装并发送icmp request包,linux eth0收到icmp request包后应答 icmp r

Linux系统中数据库启动和关闭&Basic SQL

第一步:使用oracle用户登录 第二步:在oracle用户下输入sqlplus /nolog 第三步:如需使用管理员权限,则输入connect /as sysdba 第四步:启动和关闭 startup startup nomount #只启动实例 startup mount   #打开控制文件 startup open    #打开数据文件和重做日志 shutdown shutdown normal        #不接受新的连接,需要等待所有的用户断开连接 shutdown immediat

Linux 系统中的MySQL数据库默认区分大小写

今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不区分大小写的,后来查资料才发现,在Linux系统中MySQL默认是严格区分大小 写的,可以在配置文件中添加配置, 用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:

Linux系统中安装MySQL数据库操作手册

Linux系统中MySQL数据库安装手册 一.安装概述: 在Linux操作系统中安装MySQL数据库是一个我们必须要掌握的一门技术,也决定了你以后找工作的薪资待遇,所以你知道它的厉害了吧!学会安装只是第一步,你还得学好数据库的基本操作,以及搭建一个数据库的主从配置等等.这些我都会在后面的博文中说到.下面我就简单的写一些安装MySQL数据库的一些步骤,仅供参考,如有什么不妥的地方,还请见谅! 二.安装步骤: (一)基本准备工作 1.打开虚拟机,在虚拟机中下载好最新版的MySQL数据库的压缩包.在M

Linux 系统中重启数据库

Linux 系统中重启数据库: 1.进入数据库用户:  su - oracle 2.先关闭监听: lsnrctl stop 3.再关闭数据库服务 :  sqlplus shutdown immediate 4.开启数据库服务:sqlplus startup 5.开启监听:lsnrctl start 版权声明:本文为博主原创文章,未经博主允许不得转载.

mysqladmin在SuSE linux系统中--sleep参数使用不准确问题

我们都知道,在MySQL中,可以使用mysqladmin命令的extended-status选项来查看MySQL的运行状态,比如获取我们常常关注的几个值: # mysqladmin -uroot -proot ext |grep "Questions\|Queries\|Innodb_rows\|Com_select \|Com_insert \|Com_update \|Com_delete " | Com_delete                               |

CentOS 6.5系统中RPM安装配置MySQL数据库

一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内, 这样就增加了速度并提高了灵活性.MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策(本词条"授权政策"), 它分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作

Linux 系统中安装Mysql_5.6

                                  Linux 系统中安装Mysql_5.6 安装包下载地址(http://pan.baidu.com/s/1o8G5qmI) 1.Linux 创建普通用户并分配权限(root用户操作): 创建用户组: groupadd mysql 创建用户并且分配组: useradd -g  mysql   mysql 设置用户密码:passwd  mysql 给用户组授权:chown -R mysql:mysql /usr/local/  2.

Linux系统中程序的安装及管理、创建私有yum仓库实验

各位小伙伴今天要和大家分享的是Linux系统中程序的安装及管理,以及创建私有yum仓库的操作实验.本次我们会从以下几个部分进行说明: Linux应用程序基础 查询RPM软件包信息 安装.升级.卸载.RMP软件包.yum仓库 源代码编译安装 应用程序与系统命令的关系:1.文件位置? 系统命令:一般在/bin和/sbin目录中? 应用程序:通常在/usr/local目录中2.主要用途? 系统命令:完成对系统的基本管理工作,例如IP配置工具? 应用程序:完成相对独立的其它辅助任务,例如网页浏览3.适用