mongodb自動(dòng)備份與恢復(fù)

通過(guò)腳本執(zhí)行備份操作,使用crontab實(shí)現(xiàn)定時(shí)功能,并刪除指定天數(shù)前的備份

備份

1、創(chuàng)建數(shù)據(jù)庫(kù)備份臨時(shí)目錄和存放目錄

// 臨時(shí)目錄
/data/backup/mongodb_bak/mongodb_bak_now
// 存放目錄
/data/backup/mongodb_bak/mongodb_bak_list

2、創(chuàng)建mongodb備份腳本

// 使用vim新建文件
vim /home/crontab/mongodb_bak.sh

腳本內(nèi)容如下:

#!/bin/sh

DUMP=/usr/local/mongodb/bin/mongodump #mongodump備份文件執(zhí)行路徑

OUT_DIR=/data/backup/mongodb_bak/mongodb_bak_now #臨時(shí)備份目錄

TAR_DIR=/data/backup/mongodb_bak/mongodb_bak_list #備份存放路徑

DATE=`date +%Y_%m_%d_%H_%M_%S` #獲取當(dāng)前系統(tǒng)時(shí)間

DB_USER=user #數(shù)據(jù)庫(kù)賬號(hào)

DB_PASS=password #數(shù)據(jù)庫(kù)密碼

DAYS=30 #DAYS=30代表刪除30天前的備份,即只保留最近30天的備份

TAR_BAK="mongodb_bak_$DATE.tar.gz" #最終保存的數(shù)據(jù)庫(kù)備份文件名

cd $OUT_DIR

rm -rf $OUT_DIR/*

mkdir -p $OUT_DIR/$DATE

$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #備份全部數(shù)據(jù)庫(kù)

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式

find $TAR_DIR/ -mtime +$DAYS -delete #刪除30天前的備份文件

3、修改文件屬性使其可執(zhí)行

chmod +x /home/crontab/mongodb_bak.sh

4、修改crontab添加任務(wù)

crontab -e

在后面添加這句(表示每天凌晨1:00執(zhí)行備份)

0 1 * * * /home/crontab/mongodb_bak.sh

定時(shí)任務(wù)擴(kuò)展:
前五位分別是時(shí)、、,最后為要執(zhí)行的任務(wù)
操作符:
星號(hào)表示取值范圍內(nèi)的所有數(shù)字
斜杠表示每過(guò)多少個(gè)數(shù)字
橫杠表示從多少到多少
逗號(hào)表示選擇多個(gè)數(shù)字
示例:
1、每分鐘執(zhí)行:* * * * *
2、每過(guò)2分鐘執(zhí)行:*/2 * * * *
3、第3到第5分鐘執(zhí)行:3-5 * * * *
4、第3和第5分鐘執(zhí)行:3,5 * * * *

5、重啟crond使其生效

service crond reload

6、加入開機(jī)自啟

chkconfig --level 35 crond on

為做演示每分鐘備份一次,備份目錄有這些文件就大功告成了

恢復(fù)

1、全部恢復(fù)

mongorestore –-drop path

2、單個(gè)恢復(fù)

mongorestore -–drop -d dataname path

-–drop 恢復(fù)數(shù)據(jù)之前刪除原來(lái)數(shù)據(jù)庫(kù)數(shù)據(jù),避免數(shù)據(jù)重復(fù)
-d 后面跟要恢復(fù)的數(shù)據(jù)庫(kù)名稱
path 數(shù)據(jù)庫(kù)備份目錄

crontab命令

// 啟動(dòng)服務(wù)
service crond start
// 關(guān)閉服務(wù)
service crond stop
// 重啟服務(wù)
service crond restart
// 重新載入
service crond reload
// 加入開機(jī)自啟
chkconfig --level 35 crond on
// 查看crontab文件
crontab -l
// 編輯crontab文件
crontab -e
// 刪除crontab文件
crontab -r
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容