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實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- windowns系統,oracle資料庫expdp自動備份Oracle資料庫
- 在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)Linux資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- windowns系統下oracle資料庫exp自動備份Oracle資料庫
- 在SQL Server 2005資料庫中實現自動備份SQLServer資料庫
- 資料庫自動備份資料庫
- Rman-ORACLE資料庫RMAN實現自動備份Oracle資料庫
- Mysql資料庫自動備份MySql資料庫
- 自動備份Oracle資料庫Oracle資料庫
- Facebook如何實現PB級別資料庫自動化備份資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- Linux環境下資料庫自動邏輯備份Linux資料庫
- aix oracle 10g實現資料庫的遠端自動備份AIOracle 10g資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- 陪玩系統原始碼中mysql資料庫備份還原的實現程式碼原始碼MySql資料庫
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- 實現MySQL資料庫的實時備份MySql資料庫
- linux下自動備份oracle資料庫-rmanLinuxOracle資料庫
- DB2資料庫自動備份方法TRDB2資料庫
- Linux下用PHP實現XML備份Mysql資料庫(轉)LinuxPHPXMLMySql資料庫
- Oracle自動備份資料(轉)Oracle
- vivo 資料庫備份恢復系統演化資料庫
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- win10系統如何設定自動備份資料檔案Win10
- 在Linux中,如何備份一個資料庫?Linux資料庫
- 自動備份SQL資料庫到雲端儲存StorageSQL資料庫
- 8種手動和自動備份MySQL資料庫的方法MySql資料庫
- Linux自動備份MySQLLinuxMySql
- 七牛雲+外掛實現wordpress自動備份資料庫及檔案(寶塔皮膚)資料庫
- Oracle自動備份指令碼的實現Oracle指令碼
- Linux 網路檔案系統的資料備份及恢復機制實現Linux
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- Homestead 新功能 —— 銷燬前自動備份資料庫資料庫
- windows下oracle資料庫的exp自動備份指令碼WindowsOracle資料庫指令碼
- SQL Server 2005 自動遠端資料庫備份SQLServer資料庫
- 讓資料庫更安全,Mysql自動備份指令碼(轉)資料庫MySql指令碼