《保證數(shù)據(jù)安全,不可不知道的MongoDB備份與恢復(fù)》要點(diǎn):
本文介紹了保證數(shù)據(jù)安全,不可不知道的MongoDB備份與恢復(fù),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:非關(guān)系型數(shù)據(jù)庫(kù)
大家在項(xiàng)目中如果使用MongoDB作為NOsql數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),那一定涉及到數(shù)據(jù)的備份與恢復(fù),下面給大家介紹下:
MongoDB 數(shù)據(jù)備份方法
在 MongoDB 中我們使用 mongodump 命令來(lái)備份 MongoDB 數(shù)據(jù)
語(yǔ)法如下:
> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
-h MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號(hào):127.0.0.1:37017
-d 需要備份的數(shù)據(jù)庫(kù)實(shí)例,例如:testDb
-o 備份的數(shù)據(jù)存放位置,例如:c:datadump,當(dāng)然該目錄需要提前建立,在備份完成后,系統(tǒng)自動(dòng)在dump目錄下建立一個(gè)test目錄,這個(gè)目錄里面存放該數(shù)據(jù)庫(kù)實(shí)例的備份數(shù)據(jù).
-u -p 如果有設(shè)置用戶和密碼,需要設(shè)置對(duì)應(yīng)的用戶名和密碼,否則沒(méi)有權(quán)限
MongoDB 數(shù)據(jù)恢復(fù)
mongodb 使用 mongorestore 命令來(lái)恢復(fù)備份的數(shù)據(jù)
>mongorestore -h <hostname><:port> -d dbname <path>
–host <:port>, -h <:port>:
MongoDB所在服務(wù)器地址,默認(rèn)為: localhost:27017
–db , -d :
需要恢復(fù)的數(shù)據(jù)庫(kù)實(shí)例,例如:test,當(dāng)然這個(gè)名稱(chēng)也可以和備份時(shí)候的不一樣,比如test2
–drop:
恢復(fù)的時(shí)候,先刪除當(dāng)前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù).就是說(shuō),恢復(fù)后,備份后添加修改的數(shù)據(jù)都會(huì)被刪除,慎用哦!
<path>:
最后的一個(gè)參數(shù),設(shè)置備份數(shù)據(jù)所在位置,例如:c:datadumptest.
你不能同時(shí)指定 <path> 和 –dir 選項(xiàng),–dir也可以設(shè)置備份目錄.
–dir:
指定備份的目錄
你不能同時(shí)指定 <path> 和 –dir 選項(xiàng).
定時(shí)備份 mongodb
環(huán)境
操作系統(tǒng): Centos 7
一、 備份 shell 腳本 (/home/crontab/mongobak.sh)
#!/bin/sh# dump 命令執(zhí)行路徑,根據(jù)mongodb安裝路徑而定DUMP=/usr/bin/mongodump# 臨時(shí)備份路徑OUT_DIR=/home/backup/mongod_bak/mongod_bak_now# 壓縮后的備份存放路徑TAR_DIR=/home/backup/mongod_bak/mongod_bak_list# 當(dāng)前系統(tǒng)時(shí)間DATE=`date +%Y-%m-%d`# 數(shù)據(jù)庫(kù)賬號(hào)DB_USER=user# 數(shù)據(jù)庫(kù)密碼DB_PASS=password# 代表刪除30天前的備份,即只保留近 30天的備份DAYS=30# 最終保存的數(shù)據(jù)庫(kù)備份文件TAR_BAK="mongod_bak_$DATE.tar.gz"cd $OUT_DIRrm -rf $OUT_DIR/*mkdir -p $OUT_DIR/$DATE$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d dbname -o $OUT_DIR/$DATE# 壓縮格式為 .tar.gz 格式tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE# 刪除 15 天前的備份文件find $TAR_DIR/ -mtime +$DAYS -deleteexit
二、創(chuàng)建對(duì)應(yīng)的備份目錄
mkdir -p /home/backup/mongodb_bak/mongodb_bak_nowmkdir -p /home/backup/mongodb_bak/mongodb_bak_list
三、修改文件屬性,使其可執(zhí)行
chmod +x MongoDB_bak.sh
四、添加到計(jì)劃任務(wù)
cron服務(wù)是Linux的內(nèi)置服務(wù),但它不會(huì)開(kāi)機(jī)自動(dòng)啟動(dòng).可以用以下命令啟動(dòng)和停止服務(wù):
/sbin/service crond start/sbin/service crond stop/sbin/service crond restart/sbin/service crond reload
以上1-4行分別為啟動(dòng)、停止、重啟服務(wù)和重新加載配置.
要把cron設(shè)為在開(kāi)機(jī)的時(shí)候自動(dòng)啟動(dòng),在 /etc/rc.d/rc.local 腳本中加入 /sbin/service crond start 即可
查看當(dāng)前用戶的crontab,輸入 crontab -l;
編輯crontab,輸入 crontab -e;
刪除crontab,輸入 crontab -r
1 進(jìn)入編輯界面
crontab -e
2 添加定時(shí)任務(wù)
30 18 * * * /home/crontab/mongobak.sh
基本格式 :
* command
分 時(shí) 日 月 周 命令
第1列表示分鐘1~59 每分鐘用或者 /1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
3 保存后退出,啟動(dòng)服務(wù)
service crond start
4 設(shè)置開(kāi)機(jī)自啟動(dòng)
chkconfig crond on
維易PHP培訓(xùn)學(xué)院每天發(fā)布《保證數(shù)據(jù)安全,不可不知道的MongoDB備份與恢復(fù)》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10148.html