說明:
Mongodb資料庫伺服器
作業系統:CentOS
Mongodb資料庫版本:mongodb-linux-x86_64-2.6.x
具體操作:
1、建立MongodbDatabase Backup目錄
mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list
2、建立MongodbDatabase Backup指令碼
vi /home/crontab/mongod_bak.sh #建立檔案,輸入以下代碼
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump #mongodump備份檔案執行路徑
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now #臨機操作備份目錄
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list #備份存放路徑
DATE=`date +%Y_%m_%d` #擷取當前系統時間
DB_USER=username #資料庫帳號
DB_PASS=123456 #資料庫密碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最終儲存的Database Backup檔案名稱
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #備份全部資料庫
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #刪除7天前的備份檔案
:wq! #儲存退出
3、修改檔案屬性,使其可執行
chmod +x /home/crontab/mongod_bak.sh
4、修改/etc/crontab #添加計劃任務
vi /etc/crontab #在下面添加
30 1 * * * root /home/crontab/mongod_bak.sh #表示每天淩晨1點30執行備份
5、重新啟動crond使設定生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #設為開機啟動
service crond start #啟動
每天在/home/backup/mongod_bak/mongod_bak_list目錄下面可以看到mongod_bak_2015_02_28.tar.gz這樣的
壓縮檔。
至此,Linux下自動備份Mongodb資料庫並刪除指定天數前的備份完成。
附錄:Mongodb資料庫恢複
恢複全部資料庫:
mongorestore --drop --directoryperdb /home/backup/mongod_bak/mongod_bak_now/2015_02_28/
恢複單個資料庫:
mongorestore --drop -d dataname --directoryperdb /home/backup/mongod_bak/mongod_bak_now/2015_02_28/dataname
--drop參數:恢複資料之前刪除原來資料庫資料,避免資料重複。
--directoryperdb參數:Database Backup目錄
-d參數:後面跟要恢複的資料庫名稱