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