欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MongoDB備份和還原的操作指南

 更新時間:2024年05月20日 10:01:12   作者:*老工具人了*  
MongoDB備份和還原是指將MongoDB數(shù)據(jù)庫中的數(shù)據(jù)和集合備份到另一個存儲位置,并在需要的時候恢復這些備份的過程,備份和還原MongoDB數(shù)據(jù)庫非常重要,本文給大家介紹了MongoDB備份和還原的操作指南,需要的朋友可以參考下

MongoDB 提供的命令行實用程序mongodumpmongorestore創(chuàng)建備份和恢復數(shù)據(jù)的過程。

一、數(shù)據(jù)備份

mongorestoremongodump實用程序可處理BSON數(shù)據(jù)轉(zhuǎn)儲,對于創(chuàng)建小型部署的備份非常有用。要實現(xiàn)彈性且無中斷的備份,請將文件系統(tǒng)快照或區(qū)塊級磁盤快照與 MongoDB Atlas 的云備份結(jié)合使用。

性能影響

由于mongodump和mongorestore是通過與正在運行的mongod實例交互來進行操作的,因此它們可能會影響正在運行的數(shù)據(jù)庫的性能。這些工具不僅會為正在運行的數(shù)據(jù)庫實例創(chuàng)建流量,還會強制數(shù)據(jù)庫通過內(nèi)存讀取所有數(shù)據(jù)。當 MongoDB 讀取不常使用的數(shù)據(jù)時,它可能會逐出更頻繁訪問的數(shù)據(jù),從而導致數(shù)據(jù)庫常規(guī)工作負載的性能下降。

排除 local 數(shù)據(jù)庫

mongodump會在其輸出中排除local數(shù)據(jù)庫的內(nèi)容。

local數(shù)據(jù)庫:用于存儲診斷信息、復制集配置和操作日志等數(shù)據(jù),其中的集合不會被復制

基本 mongodump 操作

mongodump`實用程序通過連接到正在運行的`mongod來備份數(shù)據(jù)。

該工具可以為整個服務器、數(shù)據(jù)庫或集合創(chuàng)建備份,也可以結(jié)合查詢來僅備份一個集合的某一部分。

備份命令

export local_tar_dir="/opt/mongodb/upload_backup/"
export dump_name="backup-mongo{{ now_date |replace('-', '')}}"#顯示日期
mongodump \
-h {{ ansible_default_ipv4.address }} \
-u{{ mongo_user }} -p{{ mongo_password }} \
--authenticationDatabase admin \
-o {{ local_tar_dir }}/{{ dump_name }} \
--gzip
#-o: 指定輸出目錄

#打成壓縮包后進行上傳到對象存儲

備份命令其他參數(shù)

要限制數(shù)據(jù)庫轉(zhuǎn)儲中包含的數(shù)據(jù)量,可以指定--db--collection作為mongodump的選項。例如:

mongodump --collection=myCollection --db=test

二、集群還原

適用于整個集群不可用或者誤刪除了部分數(shù)據(jù)無法找回的情況

下載備份到指定目錄

#obs華為云
sudo /usr/local/bin/obsutil ls obs://jws2-live-cn-backup-01/db-db-mongodb/2024-03-28/05/ -s | grep "_master"
sudo /usr/local/bin/obsutil cp {{ first_tarball }} /tmp/

#gcp谷歌云
/bin/gsutil ls gs://{{cloud_backup_bucket}}/db-mongodb/{{now_date}}/{{now_hour}}/
/bin/gsutil  cp  {{ backup_file.stdout }}   /tmp/

基本 mongorestore 操作

mongorestore實用程序可恢復mongodump創(chuàng)建的二進制備份。默認情況下, mongorestore會在dump/目錄中查找數(shù)據(jù)庫備份。

mongorestore實用程序通過直接連接到正在運行的mongod來恢復數(shù)據(jù)。

mongorestore 可以恢復整個數(shù)據(jù)庫備份或部分的備份。

可以考慮使用mongorestore --drop選項從數(shù)據(jù)庫中刪除每個集合,然后再從備份恢復。

如果恢復到強制執(zhí)行訪問控制的實例,請同時包括--username和--authenticationDatabase 。

還原前準備

需要保證副本集正常運行,所有游戲服都停止,不會有客戶端對mongodb進行寫操作。

登錄mongodb副本集

#登錄mongodb副本集
mongo mongodb://root:mgwh7B8H9w5dc8j0@10.156.0.4:27017,10.156.0.5:27017,10.156.0.6:27017,/admin?replicaSet=jws2-test

查找主節(jié)點

rs.status()
#副本集配置成功后,172.16.60.205為主節(jié)點PRIMARY,172.16.60.206/207為副本節(jié)點SECONDARY。
health:1   1表明狀態(tài)是正常,0表明異常
state:1     值小的是primary節(jié)點、值大的是secondary節(jié)點
#"stateStr" : "PRIMARY",        (代表為主節(jié)點)

還原命令

副本集還原和單節(jié)點命令相同,需要注意一點,要保證-h參數(shù)指定的主機為副本集的主節(jié)點

以下為對單個庫進行還原,可以按照自己的需求進行還原操作。

mongorestore \
-h 172.16.185.222:27011 \
-p mgwh7B8H9w5dc8j0 -u root1 \
--authenticationDatabase=admin  \
--db=SilenceDB  --drop --gzip \
/home/jms_ops_all/backup-mongo20240507/SilenceDB/

三、單節(jié)點還原

適用于單機點不可用,但是集群可用的情況。

向副本集添加成員

MongoDB 提供了兩個用于恢復副本集從節(jié)點成員的選項:

  • 手動將數(shù)據(jù)庫文件復制到每個數(shù)據(jù)目錄。
  • 允許初始同步以自動分發(fā)數(shù)據(jù)。

具體步驟

停止數(shù)據(jù)異常的成員節(jié)點

sudo supervisorctl stop mongodb

清理數(shù)據(jù)異常的成員節(jié)點的數(shù)據(jù)目錄

mv ./mongodata ./mongodata_bak
mkdir ./mongodata

情況一:數(shù)據(jù)量不大,直接啟動即可,初始同步會將數(shù)據(jù)從主成員復制到新成員。

sudo supervisorctl start mongodb

情況二:數(shù)據(jù)量大,

將主成員的數(shù)據(jù)目錄復制到新的輔助成員,再啟動即可。

以上就是MongoDB備份和還原的操作指南的詳細內(nèi)容,更多關于MongoDB備份還原的資料請關注腳本之家其它相關文章!

相關文章

最新評論