日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

一則 MongoDB 副本集遷移實(shí)操案例

來源: 責(zé)編: 時(shí)間:2023-11-28 17:10:31 266觀看
導(dǎo)讀1背景介紹客戶要將生產(chǎn)環(huán)境上一套副本集架構(gòu)的 MongoDB 進(jìn)行遷移,數(shù)據(jù)量 240GB 左右。經(jīng)過測(cè)試,全量備份耗時(shí) 3.5 小時(shí),恢復(fù)耗時(shí) 4.5小時(shí)。為了減少割接時(shí)間,采取全量 + 增量 Oplog 的遷移方式。提前一天進(jìn)行全備,割接當(dāng)天

1背景介紹

客戶要將生產(chǎn)環(huán)境上一套副本集架構(gòu)的 MongoDB 進(jìn)行遷移,數(shù)據(jù)量 240GB 左右。經(jīng)過測(cè)試,全量備份耗時(shí) 3.5 小時(shí),恢復(fù)耗時(shí) 4.5小時(shí)。zfA28資訊網(wǎng)——每日最新資訊28at.com

為了減少割接時(shí)間,采取全量 + 增量 Oplog 的遷移方式。提前一天進(jìn)行全備,割接當(dāng)天只需備份增量的 Oplog 恢復(fù)即可,可大幅減少割接窗口。zfA28資訊網(wǎng)——每日最新資訊28at.com

2實(shí)操過程

查看 Oplog 信息

檢查并評(píng)估生產(chǎn)環(huán)境 Oplog 的產(chǎn)生信息,以防全量和增量備份期間產(chǎn)生的 Oplog 被覆蓋掉。zfA28資訊網(wǎng)——每日最新資訊28at.com

mongo> db.getReplicationInfo(){"logSizeMB" : 20480,"usedMB" : 20374.38,"timeDiff" : 7074665,"timeDiffHours" : 1965.18,"tFirst" : "Fri Feb 24 2023 18:36:32 GMT+0800 (CST)","tLast" : "Wed May 17 2023 15:47:37 GMT+0800 (CST)","now" : "Wed May 17 2023 15:47:43 GMT+0800 (CST)"}

可以看出在 1965.18h 的運(yùn)行中,產(chǎn)生了 20374.38MB 大小的 Oplog。zfA28資訊網(wǎng)——每日最新資訊28at.com

全量備份

全量備份并拷貝備份期間產(chǎn)生的 Oplog 用來增量還原。zfA28資訊網(wǎng)——每日最新資訊28at.com

#!/bin/bashuser=adminpassword=123host=127.0.0.1port=27017outputdir=/data/mongobak_`date +%F`authenticationdatabase=adminstart_time=`date +%s`mongodump -u$user --host $host --port $port -p$password --authenticationDatabase $authenticationdatabase --oplog --gzip -o $outputdirstop_time=`date +%s`duration=$((stop_time-start_time)) echo "Spend times: $duration seconds"

全量恢復(fù)

利用全備進(jìn)行數(shù)據(jù)恢復(fù)。zfA28資訊網(wǎng)——每日最新資訊28at.com

#!/bin/bashstart_time=`date +%s`user=adminpassword=123host=127.0.0.1port=27017authenticationdatabase=adminmongorestore -u$user --host $host --port $port -p$password --authenticationDatabase $authenticationdatabase --oplogReplay --gzip /data/mongobak_2023-07-17stop_time=`date +%s`duration=$((stop_time-start_time)) echo "Spend times: $duration seconds"

提取增量備份開始的時(shí)間點(diǎn)

全備備份出來的 Oplog,可以利用 bsondump 工具將 bson 轉(zhuǎn)換為 json 格式,查看備份時(shí)間產(chǎn)生的最后的 Oplog 的時(shí)間戳,根據(jù)此時(shí)間戳來進(jìn)行增量的 Oplog 備份。zfA28資訊網(wǎng)——每日最新資訊28at.com

shell> cd /data/ mongobak_2023-07-17shell> mv oplog.bson oplog.bson.gzshell> gzip -d oplog.bson.gzshell> bsondump --pretty oplog.bson > op.json

查看 op.json 文件,找出增量備份開始的時(shí)間點(diǎn)。zfA28資訊網(wǎng)——每日最新資訊28at.com

"ts": {          "$timestamp": {                      "t": 1686669429,                      "i": 4          }},

增量備份

備份 Oplog(時(shí)間戳大于上一次全備結(jié)束時(shí)的時(shí)間)。zfA28資訊網(wǎng)——每日最新資訊28at.com

#!/bin/bashuser=adminpassword=123host=127.0.0.1port=27017outputdir=/tmp/oplog_`date +%F`authenticationdatabase=adminstart_time=`date +%s`mongodump -u$user --host $host --port $port -p$password --authenticationDatabase $authenticationdatabase -d local -c oplog.rs -q '{"ts":{"$gt": {"$timestamp":{"t":1686669429, "i":4}}}}' -o $outputdirstop_time=`date +%s`duration=$((stop_time-start_time)) echo "Spend times: $duration seconds"

增量恢復(fù)

#!/bin/bashuser=adminpassword=123host=127.0.0.1port=27017authenticationdatabase=adminstart_time=`date +%s`mongorestore -u$user --host $host --port $port -p$password --authenticationDatabase $authenticationdatabase --oplogReplay  /data/oplog_2023-07-17stop_time=`date +%s`duration=$((stop_time-start_time)) echo "Spend times: $duration seconds"

增量遷移后業(yè)務(wù)文檔數(shù)量對(duì)比

分別在源端和目標(biāo)端運(yùn)行腳本,檢查遷移完成后業(yè)務(wù)數(shù)據(jù)庫下文檔數(shù)量是否一致。zfA28資訊網(wǎng)——每日最新資訊28at.com

#!/bin/bashuser=adminpassword=123host=127.0.0.1port=27017authenticationdatabase=adminmpid=`pidof mongod`tooldir=`dirname $(ls -l /proc/$mpid/exe | awk '{print $11}')`database=$(echo "show dbs" | $tooldir/mongo -uadmin --host $host --port $port -p$password --authenticationDatabase $authenticationdatabase  --quiet |awk '{print $1}'| sed -E '/^admin$|^config$|^local$/d')for db in $databasedo  collections=$(echo -e "use $db/n show collections" | $tooldir/mongo -u $user --host $host --port $port -p $password  $authenticationdatabase --quiet | sed '/switched to db/d')  for table in $collections  do    count=$(echo -e "use $db/n db.$table.count()" | $tooldir/mongo -u $user --host $host --port $port -p $password  --authenticationDatabase $authenticationdatabase  --quiet | sed '/switched to db/d')    echo "$db.$table have $count documents"  donedone

源端運(yùn)行結(jié)果:

圖片圖片zfA28資訊網(wǎng)——每日最新資訊28at.com

目標(biāo)端運(yùn)行結(jié)果:

圖片圖片zfA28資訊網(wǎng)——每日最新資訊28at.com

3注意事項(xiàng)

  • 使用 secondary 備份時(shí),在割接停止業(yè)務(wù)后,增量備份前,首先檢查下從庫與主庫的延時(shí),確保主從沒有延時(shí),防止備份出的數(shù)據(jù)和主庫不一致。
  • 如果全備時(shí)指定了 gzip,在提取時(shí)間戳?xí)r要重命名 oplog.bson 為 oplog.bson.gz,然后解壓,再利用 bsondump 工具解析 bson 文件,否則會(huì)報(bào)錯(cuò)。

本文鏈接:http://www.www897cc.com/showinfo-26-34896-0.html一則 MongoDB 副本集遷移實(shí)操案例

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 如何用 AI 做好會(huì)議紀(jì)要?看這一篇就夠了!

下一篇: 六種常見負(fù)載均衡算法

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 容量越大越不壞?24萬塊硬盤故障率報(bào)告公布 這些產(chǎn)品零故障

    8月5日消息,云存儲(chǔ)服務(wù)商Backblaze發(fā)布了最新的硬盤故障率報(bào)告,年故障率有所上升。Backblaze發(fā)布的硬盤季度統(tǒng)計(jì)數(shù)據(jù),其中包括故障率等重要方面。這些結(jié)
  • 消息稱迪士尼要拍真人版《魔發(fā)奇緣》:女主可能也找黑人演員

    8月5日消息,迪士尼確實(shí)有點(diǎn)忙,忙著將不少動(dòng)畫改成真人版,繼《美人魚》后,真人版《白雪公主》、《魔發(fā)奇緣》也在路上了。據(jù)外媒消息稱,迪士尼將打造真人版
  • 十個(gè)可以手動(dòng)編寫的 JavaScript 數(shù)組 API

    JavaScript 中有很多API,使用得當(dāng),會(huì)很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對(duì)它們進(jìn)行一次小總結(jié)。現(xiàn)在開始吧。1.forEach()forEach()用于遍歷數(shù)組接收一參
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個(gè)線程之間通過某種機(jī)制進(jìn)行協(xié)調(diào)和交互,例如,線程等待和通知機(jī)制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實(shí)現(xiàn)手段有以下幾種方式:Object 類下
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會(huì)開放:路由網(wǎng)關(guān)、注冊(cè)中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問;圖片對(duì)于測(cè)試「Tes」環(huán)境或者
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營,這意味著騰訊音樂長音頻業(yè)務(wù)走向消亡。騰訊在長音頻領(lǐng)域還在摸索。為
  • 騰訊蓋樓,字節(jié)拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗(yàn)嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 華為HarmonyOS 4升級(jí)計(jì)劃公布:首批34款機(jī)型今日開啟公測(cè)

    8月4日消息,今天下午華為正式發(fā)布了HarmonyOS 4系統(tǒng),在更流暢的前提下,還帶來了不少新功能,UI設(shè)計(jì)也有變化,會(huì)讓手機(jī)煥然一新。華為宣布,首批機(jī)型將會(huì)在
  • OPPO K11采用全方位護(hù)眼屏:三大護(hù)眼能力減輕視覺疲勞

    日前OPPO官方宣布,全新的OPPO K11將于7月25日正式發(fā)布,將主打旗艦影像,和同檔位競(jìng)品相比,其最大的賣點(diǎn)就是將配備索尼IMX890主攝,堪稱是2000檔位影像表
Top 主站蜘蛛池模板: 松江区| 嘉禾县| 射阳县| 康马县| 思茅市| 水城县| 沛县| 新密市| 老河口市| 武平县| 渭源县| 扶余县| 双牌县| 滨海县| 高陵县| 沁水县| 鄢陵县| 万全县| 洪泽县| 廉江市| 梓潼县| 柯坪县| 垣曲县| 五华县| 福清市| 绍兴县| 清流县| 冀州市| 葫芦岛市| 湖州市| 珲春市| 岳西县| 左云县| 宜兰市| 板桥市| 东阿县| 北川| 恩施市| 灵寿县| 南和县| 兴山县|