MongoDB在Windows系統和Linux系統中實現自動定時備份

在這里插入圖片描述

本文主要介紹MongoDB在Windows系統和Linux系統中如何實現自動定時備份。

目錄

  • MongoDB在Windows系統中實現自動定時備份
  • MongoDB在Linux系統中實現自動定時備份
    • 備份步驟
    • 備份恢復

MongoDB在Windows系統中實現自動定時備份

要在Windows系統中實現自動定時備份MongoDB數據庫,可以使用Windows任務計劃程序和MongoDB自帶的mongodump工具。
下面是MongoDB在Windows系統中實現自動定時備份的操作步驟:

  1. 創建備份目錄。在計算機上創建一個用于存儲備份文件的目錄。例如,在D盤根目錄下創建一個文件夾,命名為“mongodb_backup”。

  2. 創建備份腳本。使用文本編輯器(如Notepad++)創建一個批處理文件,命名為“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. 設置定時任務。使用Windows系統的任務計劃程序,創建一個新的任務來定時運行備份腳本。在任務計劃程序中創建一個基本任務,并設置以下屬性:

  • 在“觸發器”選項卡中,選擇要運行備份腳本的日期和時間。

  • 在“操作”選項卡中,將操作設置為“啟動程序”,并輸入備份腳本的路徑和名稱。

  • 在“條件”選項卡中,根據需要設置其他選項,例如僅在計算機處于活動狀態時運行任務等。

  1. 測試備份是否成功。手動運行備份腳本,檢查備份文件是否被正確創建。如果備份文件正確生成,則說明備份已經成功,可以刪除手動創建的備份文件。

這樣就完成了MongoDB在Windows系統中實現自動定時備份的操作步驟。需要注意的是,備份腳本中的“dbName”需要替換為實際要備份的數據庫名稱。另外需要定期清理備份文件,以避免備份文件過多占用磁盤空間。

MongoDB在Linux系統中實現自動定時備份

備份步驟

下面是在Linux系統中使用crontab實現MongoDB自動定時備份的步驟:

  1. 創建一個備份腳本

首先,創建一個備份腳本,這個腳本將用來執行實際的備份操作。可以使用mongodump命令進行備份。以下是一個簡單的備份腳本,名為mongobackup.sh:

#!/bin/sh
#mongoDB目錄
PATH=/root/mongodb/bin:/sbin:/bin:/usr/sbin:/usr/bin
#設置備份目錄
OUT_DIR=/data/backup/mongod_bak/mongod_bak_now #臨時備份目錄
TAR_DIR=/data/backup/mongod_bak/mongod_bak_list #備份存放路徑
DATE=`date +%Y_%m_%d` #獲取當前系統時間
DB_HOST=127.0.0.1:27017 #數據庫地址和端口號
DB_USER=username #數據庫賬號
DB_PASS=password #數據庫密碼
DB_NAME='-d dbName' #備份的數據庫名稱,-d 不能刪除
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最終保存的數據庫備份文件名
cd $OUT_DIR #進入此目錄
rm -rf $OUT_DIR/* #刪除臨時目錄
mkdir -p $OUT_DIR/$DATE #創建目錄
mongodump $DB_NAME -h=$DB_HOST -u=$DB_USER -p=$DB_PASS -o $OUT_DIR/$DATE/ #備份全部數據庫
cd $OUT_DIR #進入此目錄
tar -zcvf $TAR_DIR/$TAR_BAK $DATE #壓縮為.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #刪除7天前的備份文件

上述代碼的功能是執行MongoDB的備份命令,將備份文件夾自動打包成.tar.gz文件格式,并且可指定保留N天內的備份文件,過期自動刪除。mongodump命令用于備份MongoDB數據庫,-h選項指定MongoDB服務器的主機地址,-o選項指定備份文件的輸出目錄。

  1. 給備份腳本授予執行權限

使用chmod命令為備份腳本賦予執行權限:

chmod +x mongobackup.sh
  1. 添加crontab任務

使用crontab命令添加自動備份任務。例如,以下命令將在每天凌晨2點執行備份操作:

crontab -e

在打開的文件中添加以下內容:

0 2 * * * /path/to/mongobackup.sh

這將在每天凌晨2點運行備份腳本,備份文件將保存在指定的目錄中。

  1. 驗證備份是否成功

可以手動運行備份腳本來驗證備份是否成功,并檢查備份文件是否正確生成。如果備份文件已經生成,則說明自動備份任務已經成功設置。

使用上述步驟,可以在Linux系統中實現MongoDB自動定時備份,并且可以通過修改crontab任務的配置,來更改備份的時間間隔。

備份恢復

執行以下備份恢復命令即可恢復備份。

mongorestore -d dbName -u=username -p=password --drop /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName

這段代碼的具體功能如下:

  • mongorestore:表示使用MongoDB自帶的恢復工具mongorestore。

  • -d dbName:表示將備份數據恢復到名為dbName的數據庫中。

  • -u=username -p=password:表示用于連接MongoDB數據庫的用戶名和密碼。

  • –drop:表示在恢復數據之前刪除目標數據庫中的所有文檔,避免出現沖突。

  • /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName:表示備份數據所在的文件夾路徑,即要恢復的備份文件所在的路徑和備份時使用的數據庫名稱。

這段代碼的作用是將指定路徑下的MongoDB備份文件恢復到指定的數據庫RV中,并在恢復前刪除RV中的所有文檔。用戶名和密碼用于連接MongoDB數據庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215472.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215472.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈實驗室(32) - 下載arm64的Prysm

Prysm是Ethereum的共識層。 1. 下載prysm.sh curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod x prysm.sh2. 下載x86版prysm共識客戶端 ./prysm.sh beacon-chain --download-only3.下載arm64版prysm共識客…

刪除當前目錄及其子目錄下的重復文件

言歸正傳&#xff0c;直接看代碼 public class RemoveDuplicateFiles {public static void main(String[] args) throws IOException {String directoryPath "D:\\dir";List<File> allFiles getAllFiles(directoryPath);removeDuplicateFile(allFiles);}pri…

HP108w打印機出現Direct.....無線網,連接不上

本人用手機打印的&#xff0c;安卓 這種情況我也不知道為啥出現&#xff0c;如果出現上面的情況&#xff0c;可以 一直按住&#xff0c;會發藍光的&#xff0c;無線信號樣子的按鈕&#xff0c;持續按20s&#xff0c;松手后觀察自己的wifi列表&#xff0c;本人出現了&#xff…

Linux——web網站服務(一)

一、安裝httpd服務器Apache網站服務 1、準備工作 為了避免發送端口沖突&#xff0c;程序沖突等現象&#xff0c;卸載使用rpm方式安裝的httpd #使用命令檢查是否下載了httpd [rootserver ~]# rpm -qa httpd #如果有則使用 [rootserver ~]# rpm -e httpd --nodeps Apache的配置…

抖音小店經營規則解析:避免被扣分的關鍵因素

抖音小店是一個受歡迎的電商平臺&#xff0c;為創業者提供了良好的銷售和推廣機會。為了確保在抖音小店的運營中不會被扣分或出現其他問題&#xff0c;不若與眾整理了幾個關鍵的規則需要注意和遵守。 1. 產品合規性&#xff1a; 抖音小店要求所有銷售的產品必須合法合規&#x…

欣賞動態之美,不如欣賞C語言實現動態內存管理之美 ! ! !

本篇會加入個人的所謂‘魚式瘋言’ ??????魚式瘋言:??????此瘋言非彼瘋言 而是理解過并總結出來通俗易懂的大白話, 我會盡可能的在每個概念后插入魚式瘋言,幫助大家理解的. 可能說的不是那么嚴謹.但小編初心是能讓更多人能接受我們這個概念 &#xff01;&#xff0…

ubuntu解決問題:E: Unable to locate package manpages-posix-dev

sudo apt-get install manpages-posix-dev 想要在ubuntu里面安裝manpages-posix-dev這個包&#xff0c;發現彈出錯誤 E: Unable to locate package manpages-posix-dev 解決方法如下&#xff1a; 1 查看當前ubuntu的版本 abhishekitsfoss:~$ lsb_release -a No LSB module…

python自動化測試實戰 —— WebDriver API的使用

軟件測試專欄 感興趣可看&#xff1a;軟件測試專欄 自動化測試學習部分源碼 python自動化測試相關知識&#xff1a; 【如何學習Python自動化測試】—— 自動化測試環境搭建 【如何學習python自動化測試】—— 瀏覽器驅動的安裝 以及 如何更…

河南省專業技術人員職稱評審之繼續教育

&#xff08;一&#xff09;職稱評審時會遇到一個關于繼續教育學時是否足夠的問題&#xff0c;作為新人很容易一頭霧水&#xff0c;這里以河南省為例&#xff0c;先在管理系統 http://manage.hnzjgl.gov.cn 注冊&#xff0c;根據自己單位選擇&#xff0c;有些高校雖然在地方而不…

力扣題:數字與字符串間轉換-12.12

力扣題-12.12 [力扣刷題攻略] Re&#xff1a;從零開始的力扣刷題生活 力扣題1&#xff1a;539. 最小時間差 解題思想&#xff1a;將字符串的時間形式換成數字形式的時間&#xff0c;然后計算差值即可&#xff0c;最重要的是最小的值加上一天的時間加入到數組最后&#xff08…

圖文教程:stable-diffusion的基本使用教程 txt2img(多圖)

之前我介紹了SD的安裝過程&#xff0c;那么這篇將介紹怎么使用SD 使用模型 SD安裝好之后&#xff0c;我們只有一個默認的模型。這個模型很難滿足我們的繪圖需求&#xff0c;那么有2種方法。 1是自己訓練一個模型&#xff08;有門檻&#xff09;2是去網站上找一個別人練好的模…

Python3 數據類型轉換 ----20231211

# 有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,一般情況下你只需要將數據類型作為函數名即可。Python 數據類型轉換可以分為兩種:隱式類型轉換 - 自動完成 顯式類型轉換 - 需要使用類型函數來轉換 隱式類型轉換 在隱式類型轉換中,Python 會自動將一種數據類型…

windows 鏡像下載地址

HelloWindows.cn - 精校 完整 極致 Windows系統下載倉儲站

python自動化運維快速入門,python自動化運維教程

大家好&#xff0c;給大家分享一下python自動化運維需要掌握的技能&#xff0c;很多人還不知道這一點。下面詳細解釋一下。現在讓我們來看看&#xff01; 面向學員 熟練使用計算機&#xff0c;對Windows、Linux 有一點了解從業職或在校學生 對目前從事互聯網運維&#xff0c;想…

附錄:已實現的多品種回測收益

聲明&#xff1a; 本人不進行任何投資建議&#xff0c;也不出售任何包括策略、算法的程序代碼。 僅作為個人的2023年開發心路總結&#xff0c;有任何異議可以在評論區留言&#xff0c;可以討論&#xff0c;如果你杠&#xff0c;那就是你對。 這世上有很多條路&#xff0c;每個…

12.11作業

第一個界面的頭文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMovie> #include <QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidg…

代理IP的正確打開方式,使用IPIDEA解決性能困境

目錄 1、王婆賣瓜&#xff0c;自賣自夸2、問問2023最專業的AI機器人3、有事沒事找吒哥 一、代理IP的困境和問題1、困境一&#xff1a;所在公司網絡環境不好2、困境2&#xff1a;代理協議使用不當3、困境3&#xff1a;免費的代理服務器寬帶小4、困境4&#xff1a;代理服務器距離…

第二百零二回 介紹一個三方包bluetooth_enable_fork

文章目錄 1. 概念介紹2. 使用方法2.1 自定義主題2.2 覆蓋父主題 3. 示例代碼 我們在上一章回中介紹了圖片縮放相關的內容&#xff0c;本章回中將介紹如使用主題.閑話休提&#xff0c;讓我們一起Talk Flutter吧。 1. 概念介紹 我們在這里說的主題包含兩方面的內容&#xff1a;…

Leetcode93 復原IP地址

復原IP地址 題解1 回溯(同分割回文字符串)Tips&#xff1a;換成deque<string>tmp會更快 有效 IP 地址正好由四個整數&#xff08;每個整數位于 0 到 255 之間組成&#xff0c;且不能含有前導 0&#xff09;&#xff0c;整數之間用 ‘.’ 分隔。 例如&#xff1a;“0.1.2…

SpringCloud面試題——Sentinel

一&#xff1a;什么是Sentinel&#xff1f; Sentinel是一個面向分布式架構的輕量級服務保護框架&#xff0c;實現服務降級、服務熔斷、服務限流等功能 二&#xff1a;什么是服務降級&#xff1f; 比如當某個服務繁忙,不能讓客戶端的請求一直等待,應該立刻返回給客戶端一個備…