码迷,mamicode.com
首页 > 数据库 > 详细

linux系统中实现mongodb3.0.5数据库自动备份

时间:2015-08-28 11:08:02      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:mongodb   linux   备份   

最近两天,因公司业务需要,要定期备份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数据库自动备份

标签:mongodb   linux   备份   

原文地址:http://blog.csdn.net/tuzongxun/article/details/48047739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!