Mongodb 定時備份和恢復

定時對數據庫進行備份能夠有效地保護數據html

MongoDB 數據備份

在 MongoDB 中咱們使用 mongodump 命令來備份 MongoDB 數據mongodb

語法以下:shell

> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
  • -h MongDB所在服務器地址,例如:127.0.0.1,固然也能夠指定端口號:127.0.0.1:27017數據庫

  • -d 須要備份的數據庫實例,例如:testcentos

  • -o 備份的數據存放位置,例如:c:datadump,固然該目錄須要提早創建,在備份完成後,系統自動在dump目錄下創建一個test目錄,這個目錄裏面存放該數據庫實例的備份數據。服務器

  • -u -p 若是有設置用戶和密碼,須要設置對應的用戶名和密碼,不然沒有權限yii

MongoDB 數據恢復

mongodb 使用 mongorestore 命令來恢復備份的數據操作系統

>mongorestore -h <hostname><:port> -d dbname <path>
  • --host <:port>, -h <:port>:
    MongoDB所在服務器地址,默認爲: localhost:27017.net

  • --db , -d :
    須要恢復的數據庫實例,例如:test,固然這個名稱也能夠和備份時候的不同,好比test2rest

  • --drop:
    恢復的時候,先刪除當前數據,而後恢復備份的數據。就是說,恢復後,備份後添加修改的數據都會被刪除,慎用哦!

  • <path>:

  1. 最後的一個參數,設置備份數據所在位置,例如:c:datadumptest。

你不能同時指定 <path> 和 --dir 選項,--dir也能夠設置備份目錄。

  • --dir:
    指定備份的目錄

你不能同時指定 <path> 和 --dir 選項。

定時備份 mongodb

環境

操做系統: Centos 7

1、 備份 shell 腳本 (/home/crontab/mongobk.sh)

#!/bin/sh
# dump 命令執行路徑,根據mongodb安裝路徑而定
DUMP=/usr/bin/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=user
# 數據庫密碼
DB_PASS=password
# 表明刪除7天前的備份,即只保留近 7 天的備份
DAYS=7
# 最終保存的數據庫備份文件
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 -delete

exit

2、建立對應的備份目錄

mkdir -p /home/backup/mongodb_bak/mongodb_bak_now
mkdir -p /home/backup/mongodb_bak/mongodb_bak_list

3、修改文件屬性,使其可執行

chmod +x MongoDB_bak.sh

4、添加到計劃任務

cron服務是Linux的內置服務,但它不會開機自動啓動。能夠用如下命令啓動和中止服務:

/sbin/service crond start

/sbin/service crond stop

/sbin/service crond restart

/sbin/service crond reload

以上1-4行分別爲啓動、中止、重啓服務和從新加載配置。

要把cron設爲在開機的時候自動啓動,在 /etc/rc.d/rc.local 腳本中加入 /sbin/service crond start 便可

查看當前用戶的crontab,輸入 crontab -l;

編輯crontab,輸入 crontab -e;

刪除crontab,輸入 crontab -r

1 進入編輯界面

crontab -e

2 添加任務

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 保存後退出,啓動服務

service crond start

4 設置開機自啓動

chkconfig crond on

參考資源

相關文章
相關標籤/搜索