天天看點

MongoDB 定時備份

一 、 建立MongoDB備份目錄

mkdir -p /home/frank/mongodb_bak/mongodb_bak_list

mkdir -p /home/frank/mongodb_bak/mongodb_bak_now

二 、建立MongoDB資料庫備份腳本

(/home/frank/mongodb_bak/MongoDB_bak.sh)

#!/bin/bash
#backup MongoDB
#臨時備份目錄
OUT_DIR=/home/frank/mongodb_bak/mongodb_bak_now

#備份存放目錄
TAR_DIR=/home/frank/mongodb_bak/mongodb_bak_list
#擷取目前系統時間并格式化
DATE=$(date +%Y_%m_%d)
#最終儲存的備份檔案
TAR_BAK="mongodb_bak_$DATE.tar.gz"

cd $OUT_DIR
rm -rf $OUT_DIR/*

mkdir -p $OUT_DIR/$DATE
#備份全部資料庫
mongodump -h dbhost -o $OUT_DIR/$DATE
#壓縮為tar.gz檔案
tar -zcvf $TAR_DIR/$TAR_BAK -C $OUT_DIR/ $DATE

exit      

整庫備份:

mongodump -h dbhost -d dbname -o dbdirectory

-h:MongDB所在伺服器位址,例如:127.0.0.1,當然也可以指定端口号:127.0.0.1:27017

-d:需要備份的資料庫執行個體,例如:test

-o:備份的資料存放位置,例如:c:\data\dump,當然該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立一個test目錄,這個目錄裡面存放該資料庫執行個體的備份資料。

整庫恢複:

mongorestore -h dbhost -d dbname –directoryperdb dbdirectory

-h:MongoDB所在伺服器位址

-d:需要恢複的資料庫執行個體,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2

–directoryperdb:備份資料所在位置,例如:c:\data\dump\test,這裡為什麼要多加一個test,而不是備份時候的dump,讀者自己檢視提示吧!

–drop:恢複的時候,先删除目前資料,然後恢複備份的資料。就是說,恢複後,備份後添加修改的資料都會被删除,慎用哦!

http://www.jb51.net/article/40285.htm

三、修改檔案屬性, 使其可執行

chmod +x MongoDB_bak.sh

四、修改/etc/crontab, 添加計劃任務

0 0 * * * /home/frank/mongodb_bak/MongoDB_bak.sh

每天零點零分執行計劃

若沒有root 權限不能修改/etc/crontab, 則為目前使用者建立cron服務

鍵入 crontab -e 編輯crontab服務檔案

0 0 * * * /home/frank/mongodb_bak/MongoDB_bak.sh

http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html

http://blog.chinaunix.net/uid-7552018-id-182133.html

一張網頁,要經曆怎樣的過程,才能抵達使用者面前?

一位新人,要經曆怎樣的曆練,才能站在技術之巅?