MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。html
MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。mongodb
它支持的數據結構很是鬆散,是相似json的bson格式,所以能夠存儲比較複雜的數據類型。shell
Mongo最大的特色是它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。數據庫
[root@localhost data]# mkdir -p /data/backup/mongo/mongodb_bak_tmp
[root@localhost data]# mkdir -p /data/backup/mongo/mongodb_bak_path
#!/bin/bash # @Author: Tse先生 # @Create date: 2019-11-21 # @full backup MongoDB #mongodump命令路徑 DUMP=/usr/local/mongodb/bin/mongodump #tar備份包臨時備份目錄,這個tar包最好定時傳到本地存儲作備份 OUT_DIR=/data/backup/mongo/mongodb_bak_tmp #完整備份目錄路徑 TAR_DIR=/data/backup/mongo/mongodb_bak_path #獲取當前系統時間 DATE=`date +%Y_%m_%d_%H_%M` #數據庫帳號 DB_USER=root #數據庫密碼 DB_PASS=123456 #DAYS=15表明刪除15天前的備份,即只保留近15天的備份 DAYS=15 #最終保存的數據庫備份文件 TAR_BAK="mongodb_bak_$DATE.tar.gz" cd $OUT_DIR #rm -rf $OUT_DIR/* mkdir -p $OUT_DIR/$DATE #備份所有數據庫 $DUMP -h 127.0.0.1:3717 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE #壓縮爲.tar.gz格式 tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #刪除15天前的備份文件 find $TAR_DIR/ -mtime +$DAYS -delete #刪除tar備份包10天前的備份文件 find $OUT_DIR/ -mtime +10 -name "*.tar.gz" -exec rm -rf {} \; exit
[root@localhost script]# chmod +x mongodbfullbackup.sh
[root@localhost script]# crontab -e #天天凌晨3點開始執行MongoDB完整備份腳本 0 3 * * * sh /data/script/mongodbfullbackup.sh >/dev/null 2>&1
關於須要修改crontab的定時任務時間的,能夠參考博主另一篇隨筆文章說明:json
http://www.javashuo.com/article/p-rmovnffl-m.htmlbash
#恢復單個庫: /usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 123456 --drop --stopOnError --db local /tmp/2019_11_21_14_57/local #恢復全部庫: /usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 123456 --drop --stopOnError /tmp/2019_11_21_14_57
參數說明:數據結構
--authenticationDatabase admin:驗證庫,也就驗證你帳號密碼的
--drop:恢復數據以前刪除原來的數據,避免數據重複
--stopOnError:恢復時候遇到錯誤就中止
--db:恢復單個庫的時候,後面加庫名