a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > MongoDB > 正文

Linux中MongoDB如何實現遠程自動備份詳解

2024-09-07 00:22:38
字體:
來源:轉載
供稿:網友

前言

看過上一篇接手老項目的痛――MongoDB學習及集群搭建知道,最近接手了一個后媽養的項目,項目的數據庫沒有人維護,DBA以各種理由推脫暫時不接,面對裸奔沒有備份的數據庫,我的內心很焦灼,于是花了點時間把生產環境的自動備份給搞起來。

下面話不多說了,來一起看看詳細的介紹吧

一些準備

既然都備份了,為了保險起見,備份與庫就不放在同一臺服務器上了,于是向運維申請了一臺服務器,同時安裝好mongo,如果不知道怎么安裝mongo的話可以看我的上一篇文章。

安裝完之后,首先測試下是否可以遠程訪問目標mongodb,到安裝好mongo的bin目錄下

./mongo 10.100.1.101:27017 #目標mongo的ip及端口

然后創建些必要的目錄,比如備份文件放在哪個目錄之類的。

接下來測試下利用mongodump來備份數據庫:

./bin/mongodump --host test/10.100.1.101:27017,10.100.1.102:27017 -d testdb --out /data/temp# test為副本集名稱# 10.100.1.101:27017,10.100.1.102:27017為副本集節點,有多個可以多個# -d testdb是要備份的庫名,不填默認副本集下全部# --out 保存路徑

到這里,mongo的備份已經實現,現在要完成的就是自動啦。

編寫腳本

自動定時備份其實就是通過crontab命令來實現啦。但前提是我們需要編寫個定時跑的腳本。首先我們新建個腳本:

vi /home/local/mongod_bak.sh

然后編寫對應的腳本,腳本上有對應的注釋,供大家參考,這里主要做了三個動作,首先是備份,然后將備份的文件壓縮,然后只保留最近7天的文件。

#!/bin/bashsourcepath='/home/local/mongodb/bin'  #mongodb文件路徑targetpath='/home/local/mongodb_bak' #備份的路徑nowtime=$(date +%Y-%m-%d-%H)replicationname='test'  #副本集名dbname='testdb' #庫名port='27017' #端口ip1='10.100.1.101' #ipip2='10.100.1.102'echo "============== start backup ${nowtime} =============="start(){ ${sourcepath}/mongodump --host ${replicationname}/${ip1}:${port},${ip2}:${port} -d ${dbname} --out ${targetpath}/${nowtime}}execute(){ start if [ $? -eq 0 ] then echo "back successfully!" else echo "back failure!" fi} if [ ! -d "${targetpath}/${nowtime}/" ]then mkdir ${targetpath}/${nowtime}fiexecuteecho "============== back end ${nowtime} =============="echo "============== start zip ${nowtime} =============="zip -r ${targetpath}/${nowtime}.zip ${targetpath}/${nowtime}rm -rf ${targetpath}/${nowtime}echo "============== zip end ${nowtime} =============="echo "============== start delete seven days ago back ${nowtime} =============="find ${targetpath} -type f -mtime +7 -name "*" -exec rm -rf {} /; echo "============== delete end ${nowtime} =============="

編寫完之后,給到文件可執行權限,并可以手動執行測試下:

chmod +x /home/local/mongod_bak.sh

定時任務

最后就是添加執行計劃了,修改/etc/crontab

crontab -e

添加執行腳本,保存即可。

30 1 * * * /home/local/mongod_bak.sh #表示每天凌晨1點30執行備份

這里簡單介紹下crontab。

crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于crontab文件中,以供之后讀取和執行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲精品视频免费 | 欧美日韩精品免费观看视频 | 成人伊人| 国产精品久久久久久一区二区三区 | 久久精品免费视频播放 | 天天看天天操 | 97在线免费视频 | 不卡一区二区三区四区 | 成人免费在线观看视频 | 不卡一区 | www.久久久.com | 一区二区精品 | 在线免费毛片 | 99热在线播放 | 狠狠操狠狠操 | 九九99| 超级乱淫片国语对白免费视频 | 青青久久久 | 精品国产不卡一区二区三区 | 99久久精品免费看国产免费软件 | 欧美日韩精品一区二区三区在线观看 | 国产成人 综合 亚洲 | 自拍视频免费 | 亚洲精品福利视频 | 国产精品久久免费视频 | 永久91嫩草亚洲精品人人 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲精品久久久久久国产精华液 | 奇米精品一区二区三区在线观看 | 色吊丝在线永久观看最新版本 | av在线二区| 日本中文在线观看 | 亚洲人成中文字幕在线观看 | 国产精品乱码一区二区三区 | 国产精品久久久久久吹潮 | 一区不卡 | 欧美成人精品一区二区 | 亚洲久悠悠色悠在线播放 | 亚洲精品白浆高清久久久久久 | 免费日本黄色 | 久热av在线 |