Mongodb 定时备份和恢复
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
定時對數(shù)據(jù)庫進行備份可以有效地保護數(shù)據(jù)
mongodump -h 127.0.0.1 --port 2777 -u ruiyi -p zhuan1yi -d adrobot_v4 -c deviceMongoDB 數(shù)據(jù)備份
在 MongoDB 中我們使用 mongodump 命令來備份 MongoDB 數(shù)據(jù)
語法如下:
> mongodump -h dbhost -d dbname -o dbdirectory -u?user?-p?password-
-h MongDB所在服務(wù)器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
-
-d 需要備份的數(shù)據(jù)庫實例,例如:test
-
-o 備份的數(shù)據(jù)存放位置,例如:c:datadump,當然該目錄需要提前建立,在備份完成后,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)。
-
-u -p 如果有設(shè)置用戶和密碼,需要設(shè)置對應(yīng)的用戶名和密碼,否則沒有權(quán)限
MongoDB 數(shù)據(jù)恢復(fù)
mongodb 使用 mongorestore 命令來恢復(fù)備份的數(shù)據(jù)
>mongorestore -h?<hostname><:port>?-d dbname?<path>-
--host <:port>, -h <:port>:
MongoDB所在服務(wù)器地址,默認為: localhost:27017 -
--db , -d :
需要恢復(fù)的數(shù)據(jù)庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2 -
--drop:
恢復(fù)的時候,先刪除當前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。就是說,恢復(fù)后,備份后添加修改的數(shù)據(jù)都會被刪除,慎用哦! -
<path>:
最后的一個參數(shù),設(shè)置備份數(shù)據(jù)所在位置,例如:c:datadumptest。
你不能同時指定 <path> 和 --dir 選項,--dir也可以設(shè)置備份目錄。
-
--dir:
指定備份的目錄
你不能同時指定 <path> 和 --dir 選項。
定時備份 mongodb
環(huán)境
操作系統(tǒng): Centos 7
一、 備份 shell 腳本 (/home/crontab/mongobk.sh)
#!/bin/sh # dump 命令執(zhí)行路徑,根據(jù)mongodb安裝路徑而定 DUMP=/usr/bin/mongodump # 臨時備份路徑 OUT_DIR=/home/backup/mongod_bak/mongod_bak_now # 壓縮后的備份存放路徑 TAR_DIR=/home/backup/mongod_bak/mongod_bak_list # 當前系統(tǒng)時間 DATE=`date +%Y-%m-%d` # 數(shù)據(jù)庫賬號 DB_USER=user # 數(shù)據(jù)庫密碼 DB_PASS=password # 代表刪除7天前的備份,即只保留近 7 天的備份 DAYS=7 # 最終保存的數(shù)據(jù)庫備份文件 TAR_BAK="mongod_bak_$DATE.tar.gz" cd $OUT_DIR rm -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)建對應(yīng)的備份目錄
mkdir -p /home/backup/mongodb_bak/mongodb_bak_now mkdir -p /home/backup/mongodb_bak/mongodb_bak_list三、修改文件屬性,使其可執(zhí)行
chmod?+x?MongoDB_bak.sh四、添加到計劃任務(wù)
cron服務(wù)是Linux的內(nèi)置服務(wù),但它不會開機自動啟動??梢杂靡韵旅顔雍屯V狗?wù):
/sbin/service crond start/sbin/service crond stop/sbin/service crond restart/sbin/service crond reload以上1-4行分別為啟動、停止、重啟服務(wù)和重新加載配置。
要把cron設(shè)為在開機的時候自動啟動,在 /etc/rc.d/rc.local 腳本中加入 /sbin/service crond start 即可
查看當前用戶的crontab,輸入 crontab -l;
編輯crontab,輸入 crontab -e;
刪除crontab,輸入 crontab -r
1 進入編輯界面
crontab?-e2 添加任務(wù)
30?18?* * * /home/crontab/mongobk.sh基本格式 :
* command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用或者 /1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
3 保存后退出,啟動服務(wù)
service crond?start4 設(shè)置開機自啟動
chkconfig crond?on參考資源
-
centos(7.0) 上 crontab 計劃任務(wù)
-
MongoDB的備份(mongodump)與恢復(fù)(mongorestore)
-
MongoDB 備份(mongodump)與恢復(fù)(mongorestore)
-
Centos7:利用crontab定時執(zhí)行任務(wù)
-
Linux下MongoDB自動備份
-
mongodb 中文文檔
轉(zhuǎn)載于:https://my.oschina.net/mickelfeng/blog/1543399
總結(jié)
以上是生活随笔為你收集整理的Mongodb 定时备份和恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新书发布《每天5分钟玩转Docker容器
- 下一篇: flume采集数据报错问题解决