MongoDB在Windows系統(tǒng)和Linux系統(tǒng)中實(shí)現(xiàn)自動定時備份的操作步驟
本文主要介紹MongoDB在Windows系統(tǒng)和Linux系統(tǒng)中如何實(shí)現(xiàn)自動定時備份。
MongoDB在Windows系統(tǒng)中實(shí)現(xiàn)自動定時備份
要在Windows系統(tǒng)中實(shí)現(xiàn)自動定時備份MongoDB數(shù)據(jù)庫,可以使用Windows任務(wù)計(jì)劃程序和MongoDB自帶的mongodump工具。
下面是MongoDB在Windows系統(tǒng)中實(shí)現(xiàn)自動定時備份的操作步驟:
1.創(chuàng)建備份目錄。在計(jì)算機(jī)上創(chuàng)建一個用于存儲備份文件的目錄。例如,在D盤根目錄下創(chuàng)建一個文件夾,命名為“mongodb_backup”。
2.創(chuàng)建備份腳本。使用文本編輯器(如Notepad++)創(chuàng)建一個批處理文件,命名為“backup.bat”。在備份腳本中輸入以下代碼:
@echo off SET date=%date:~0,4%%date:~5,2%%date:~8,2% SET time=%time:~0,2%%time:~3,2%%time:~6,2% SET datetime=%date%_%time% mongodump -h 127.0.0.1:27017 -d dbName -o "D:/mongodb_backup/%datetime%"
3.設(shè)置定時任務(wù)。使用Windows系統(tǒng)的任務(wù)計(jì)劃程序,創(chuàng)建一個新的任務(wù)來定時運(yùn)行備份腳本。在任務(wù)計(jì)劃程序中創(chuàng)建一個基本任務(wù),并設(shè)置以下屬性:
- 在“觸發(fā)器”選項(xiàng)卡中,選擇要運(yùn)行備份腳本的日期和時間。
- 在“操作”選項(xiàng)卡中,將操作設(shè)置為“啟動程序”,并輸入備份腳本的路徑和名稱。
- 在“條件”選項(xiàng)卡中,根據(jù)需要設(shè)置其他選項(xiàng),例如僅在計(jì)算機(jī)處于活動狀態(tài)時運(yùn)行任務(wù)等。
4.測試備份是否成功。手動運(yùn)行備份腳本,檢查備份文件是否被正確創(chuàng)建。如果備份文件正確生成,則說明備份已經(jīng)成功,可以刪除手動創(chuàng)建的備份文件。
這樣就完成了MongoDB在Windows系統(tǒng)中實(shí)現(xiàn)自動定時備份的操作步驟。需要注意的是,備份腳本中的“dbName”需要替換為實(shí)際要備份的數(shù)據(jù)庫名稱。另外需要定期清理備份文件,以避免備份文件過多占用磁盤空間。
MongoDB在Linux系統(tǒng)中實(shí)現(xiàn)自動定時備份
備份步驟
下面是在Linux系統(tǒng)中使用crontab實(shí)現(xiàn)MongoDB自動定時備份的步驟:
1.創(chuàng)建一個備份腳本
首先,創(chuàng)建一個備份腳本,這個腳本將用來執(zhí)行實(shí)際的備份操作??梢允褂胢ongodump命令進(jìn)行備份。以下是一個簡單的備份腳本,名為mongobackup.sh:
#!/bin/sh #mongoDB目錄 PATH=/root/mongodb/bin:/sbin:/bin:/usr/sbin:/usr/bin #設(shè)置備份目錄 OUT_DIR=/data/backup/mongod_bak/mongod_bak_now #臨時備份目錄 TAR_DIR=/data/backup/mongod_bak/mongod_bak_list #備份存放路徑 DATE=`date +%Y_%m_%d` #獲取當(dāng)前系統(tǒng)時間 DB_HOST=127.0.0.1:27017 #數(shù)據(jù)庫地址和端口號 DB_USER=username #數(shù)據(jù)庫賬號 DB_PASS=password #數(shù)據(jù)庫密碼 DB_NAME='-d dbName' #備份的數(shù)據(jù)庫名稱,-d 不能刪除 DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份 TAR_BAK="mongod_bak_$DATE.tar.gz" #最終保存的數(shù)據(jù)庫備份文件名 cd $OUT_DIR #進(jìn)入此目錄 rm -rf $OUT_DIR/* #刪除臨時目錄 mkdir -p $OUT_DIR/$DATE #創(chuàng)建目錄 mongodump $DB_NAME -h=$DB_HOST -u=$DB_USER -p=$DB_PASS -o $OUT_DIR/$DATE/ #備份全部數(shù)據(jù)庫 cd $OUT_DIR #進(jìn)入此目錄 tar -zcvf $TAR_DIR/$TAR_BAK $DATE #壓縮為.tar.gz格式 find $TAR_DIR/ -mtime +$DAYS -delete #刪除7天前的備份文件
上述代碼的功能是執(zhí)行MongoDB的備份命令,將備份文件夾自動打包成.tar.gz
文件格式,并且可指定保留N
天內(nèi)的備份文件,過期自動刪除。mongodump命令用于備份MongoDB數(shù)據(jù)庫,-h選項(xiàng)指定MongoDB服務(wù)器的主機(jī)地址,-o選項(xiàng)指定備份文件的輸出目錄。
2.給備份腳本授予執(zhí)行權(quán)限
使用chmod命令為備份腳本賦予執(zhí)行權(quán)限:
chmod +x mongobackup.sh
3.添加crontab任務(wù)
使用crontab命令添加自動備份任務(wù)。例如,以下命令將在每天凌晨2點(diǎn)執(zhí)行備份操作:
crontab -e
在打開的文件中添加以下內(nèi)容:
0 2 * * * /path/to/mongobackup.sh
這將在每天凌晨2點(diǎn)運(yùn)行備份腳本,備份文件將保存在指定的目錄中。
4.驗(yàn)證備份是否成功
可以手動運(yùn)行備份腳本來驗(yàn)證備份是否成功,并檢查備份文件是否正確生成。如果備份文件已經(jīng)生成,則說明自動備份任務(wù)已經(jīng)成功設(shè)置。
使用上述步驟,可以在Linux系統(tǒng)中實(shí)現(xiàn)MongoDB自動定時備份,并且可以通過修改crontab任務(wù)的配置,來更改備份的時間間隔。
備份恢復(fù)
執(zhí)行以下備份恢復(fù)命令即可恢復(fù)備份。
mongorestore -d dbName -u=username -p=password --drop /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName
這段代碼的具體功能如下:
- mongorestore:表示使用MongoDB自帶的恢復(fù)工具mongorestore。
- -d dbName:表示將備份數(shù)據(jù)恢復(fù)到名為dbName的數(shù)據(jù)庫中。
- -u=username -p=password:表示用于連接MongoDB數(shù)據(jù)庫的用戶名和密碼。
- –drop:表示在恢復(fù)數(shù)據(jù)之前刪除目標(biāo)數(shù)據(jù)庫中的所有文檔,避免出現(xiàn)沖突。
- /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName:表示備份數(shù)據(jù)所在的文件夾路徑,即要恢復(fù)的備份文件所在的路徑和備份時使用的數(shù)據(jù)庫名稱。
這段代碼的作用是將指定路徑下的MongoDB備份文件恢復(fù)到指定的數(shù)據(jù)庫RV中,并在恢復(fù)前刪除RV中的所有文檔。用戶名和密碼用于連接MongoDB數(shù)據(jù)庫。
到此這篇關(guān)于MongoDB在Windows系統(tǒng)和Linux系統(tǒng)中實(shí)現(xiàn)自動定時備份的文章就介紹到這了,更多相關(guān)MongoDB自動定時備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
分布式文檔存儲數(shù)據(jù)庫之MongoDB訪問控制的操作方法
這篇文章主要介紹了分布式文檔存儲數(shù)據(jù)庫之MongoDB訪問控制的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11mongoDB 多重?cái)?shù)組查詢(AngularJS綁定顯示 nodejs)
這篇文章主要介紹了mongoDB 多重?cái)?shù)組查詢(AngularJS綁定顯示 nodejs),需要的朋友可以參考下2017-06-06MongoDB系列教程(七):MongoDb數(shù)據(jù)結(jié)構(gòu)詳解
這篇文章主要介紹了MongoDB系列教程(七):MongoDb數(shù)據(jù)結(jié)構(gòu)詳解,本文講解了Collections、Document、GridFS等3種數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2015-05-05MongoDB中MapReduce編程模型使用實(shí)例
作為一個優(yōu)秀的編程模型,MapReduce在大數(shù)據(jù)處理中有很大的優(yōu)勢,而mongodb也支持這一編程模型,本文通過簡單的單詞計(jì)數(shù)示例論述在mongodb中如何使用MapReduce2014-04-04Centos7 yum安裝mongodb實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了Centos7 yum安裝mongodb實(shí)現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08解決MongoDB6.0報(bào)錯:"mongo"不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件
這篇文章主要給大家介紹了關(guān)于解決MongoDB6.0報(bào)錯:"mongo"不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MongoDB的基本操作實(shí)例詳解【服務(wù)端啟動,客戶端連接,CRUD操作】
這篇文章主要介紹了MongoDB的基本操作,結(jié)合實(shí)例形式分析了MongoDB數(shù)據(jù)庫的服務(wù)端啟動,客戶端連接,CRUD操作等基本實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04MongoDB磁盤空間占滿導(dǎo)致數(shù)據(jù)庫被鎖定的解決方法
我在實(shí)際項(xiàng)目中,遇到一個問題,隨著數(shù)據(jù)每天的不斷增加,導(dǎo)致mongodb的磁盤空間站滿了,數(shù)據(jù)庫被鎖了,無法使用,所以本文給大家介紹了清理MongoDB數(shù)據(jù)和磁盤空間的方法,需要的朋友可以參考下2024-04-04Linux服務(wù)器下MariaDB 10自動化安裝部署
這篇文章主要介紹了Linux服務(wù)器下MariaDB 10自動化安裝部署,需要的朋友可以參考下2016-08-08