0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)】MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)遷移報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

Frombyte ? 來(lái)源:Frombyte ? 作者:Frombyte ? 2022-12-06 11:46 ? 次閱讀

關(guān)于MongoDB數(shù)據(jù)庫(kù):

MongoDB數(shù)據(jù)庫(kù)存儲(chǔ)方式是將文檔存儲(chǔ)在集合之中,而不是像Oracle、MySQL一樣的關(guān)系型數(shù)據(jù)庫(kù)。

MongoDB數(shù)據(jù)庫(kù)是開(kāi)源數(shù)據(jù)庫(kù),也提供具有附加功能的商業(yè)版本。

MongoDB中的數(shù)據(jù)是以鍵值對(duì)(key-value pairs)的形式顯示的,數(shù)據(jù)庫(kù)受到的約束更少。對(duì)于具有快速增長(zhǎng)或其他變化需求的數(shù)據(jù)來(lái)說(shuō),使用MongoDB數(shù)據(jù)庫(kù)是非常有利的。如下圖所示,MongoDB數(shù)據(jù)庫(kù)提供了預(yù)定義結(jié)構(gòu),用戶可以按需采用MongoDB數(shù)據(jù)庫(kù)預(yù)定義的結(jié)構(gòu)。

MongoDB數(shù)據(jù)庫(kù)包含了以“順次存放”的方式填充的文檔集合,這些文檔本身包含了各種字段和信息類(lèi)型,能夠存儲(chǔ)的內(nèi)容和數(shù)據(jù)量是極其豐富的。

MongoDB數(shù)據(jù)庫(kù)的安全特性:基于角色的訪問(wèn)控制、身份驗(yàn)證、授權(quán)和審核、安全傳輸層(TLS)和SSL協(xié)議等。

作為文檔數(shù)據(jù)庫(kù),MongoDB數(shù)據(jù)庫(kù)并不限制存儲(chǔ)數(shù)據(jù)的體量和類(lèi)型,因此適合大數(shù)據(jù)的應(yīng)用環(huán)境,適合基于云的服務(wù)。得益于水平可擴(kuò)展能力、與云服務(wù)的敏捷性結(jié)合,MongoDB數(shù)據(jù)庫(kù)不但能夠減少開(kāi)發(fā)者的工作量,簡(jiǎn)化業(yè)務(wù)與項(xiàng)目的擴(kuò)展流程,還能夠提供高可用性和數(shù)據(jù)的快速恢復(fù)。不過(guò),MongoDB在數(shù)據(jù)的可靠性、一致性、以及安全性等方面不如MySQL。

MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例:

MongoDB數(shù)據(jù)庫(kù)故障&初檢:
公司一臺(tái)MongoDB數(shù)據(jù)庫(kù)由于業(yè)務(wù)需要進(jìn)行數(shù)據(jù)遷移,遷移后出現(xiàn)錯(cuò)誤提示:“Windows無(wú)法啟動(dòng)MongoDB服務(wù)(位于 本地計(jì)算機(jī) 上)錯(cuò)誤1067:進(jìn)程意外終止?!?/p>

poYBAGOOusCASpg5AASwQOzxuZM932.png

北亞數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)

北亞數(shù)據(jù)恢復(fù)工程師檢查了故障MongoDB數(shù)據(jù)庫(kù)環(huán)境及底層數(shù)據(jù),發(fā)現(xiàn)故障MongoDB數(shù)據(jù)庫(kù)在遷移過(guò)程中丟失了_mdb_catalog.wt文件,所以啟動(dòng)數(shù)據(jù)庫(kù)報(bào)錯(cuò)。

MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)過(guò)程:
1、恢復(fù)MongoDB數(shù)據(jù)庫(kù)丟失的數(shù)據(jù)需要在底層數(shù)據(jù)中找到丟失的_mdb_catalog.wt文件,對(duì)底層數(shù)據(jù)進(jìn)行多次掃描后發(fā)現(xiàn)該文件已經(jīng)被覆蓋。
2、數(shù)據(jù)恢復(fù)工程師調(diào)整數(shù)據(jù)恢復(fù)方法,由于故障MongoDB數(shù)據(jù)庫(kù)是基于WiredTiger存儲(chǔ)引擎的,數(shù)據(jù)恢復(fù)工程師在Windows環(huán)境下編譯出可執(zhí)行的wt工具。

poYBAGOOus-AIZBXAAENkCcGnCQ480.png

北亞數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)

3、借助編譯后的wt工具對(duì)故障MongoDB數(shù)據(jù)庫(kù)集合文件內(nèi)所有數(shù)據(jù)清洗回寫(xiě),讀取數(shù)據(jù)結(jié)果并寫(xiě)入到文件中。
4、創(chuàng)建一個(gè)全新的MongoDB數(shù)據(jù)庫(kù),創(chuàng)建相應(yīng)數(shù)據(jù)量的集合,將文件逐一寫(xiě)入集合中,查詢數(shù)據(jù)集并重建索引信息。
5、通過(guò)查詢集合中的記錄,確定記錄類(lèi)型,重建集合索引,集合恢復(fù)完成,可以正常查看其中數(shù)據(jù)。

pYYBAGOOutyACWN2AAEsnCi1zbY454.png

北亞數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)

pYYBAGOOutuAUMODAAGsi31TYaI791.png

北亞數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)

6、協(xié)助用戶對(duì)全部集合進(jìn)行索引重建之后,用戶對(duì)數(shù)據(jù)庫(kù)整體進(jìn)行查詢驗(yàn)證,發(fā)現(xiàn)數(shù)據(jù)無(wú)誤,此次數(shù)據(jù)恢復(fù)完成。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)恢復(fù)

    關(guān)注

    10

    文章

    573

    瀏覽量

    17453
  • mongodb
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    367
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫(kù)故障: Mysql數(shù)據(jù)庫(kù)表記錄丟失。 Mysql數(shù)據(jù)庫(kù)故障表現(xiàn): 1、Mysql數(shù)據(jù)庫(kù)表中無(wú)任何數(shù)據(jù)或只有部分
    的頭像 發(fā)表于 12-16 11:05 ?152次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>流程

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

    試圖恢復(fù)數(shù)據(jù)庫(kù),發(fā)現(xiàn)有數(shù)個(gè)ndf文件大小變?yōu)?KB。 雖然NDF文件大小變?yōu)?KB,但是NDF文件在磁盤(pán)上還可能存在??梢試L試通過(guò)掃描&拼接數(shù)據(jù)庫(kù)碎片來(lái)恢復(fù)NDF文件,然后修復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 10-31 13:21 ?224次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—通過(guò)拼接<b class='flag-5'>數(shù)據(jù)庫(kù)</b>碎片<b class='flag-5'>恢復(fù)</b>SQLserver<b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle ASM實(shí)例無(wú)法掛載的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境&故障: Oracle ASM磁盤(pán)組由4塊磁盤(pán)組成。Oracle ASM磁盤(pán)組掉線 ,ASM實(shí)例不能mount。 Oracle數(shù)據(jù)庫(kù)故障分析&
    的頭像 發(fā)表于 10-28 11:26 ?162次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Oracle ASM實(shí)例無(wú)法掛載的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)打開(kāi)報(bào)錯(cuò)數(shù)據(jù)恢復(fù)案例

    打開(kāi)oracle數(shù)據(jù)庫(kù)時(shí)報(bào)錯(cuò),報(bào)錯(cuò)信息:“system01.dbf需要更多的恢復(fù)來(lái)保持一致性,數(shù)據(jù)庫(kù)無(wú)法打開(kāi)”。急需
    的頭像 發(fā)表于 10-17 13:20 ?232次閱讀
    oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>打開(kāi)<b class='flag-5'>報(bào)錯(cuò)</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫(kù)庫(kù)報(bào)錯(cuò)數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫(kù)故障: 機(jī)房異常斷電后,Oracle數(shù)據(jù)庫(kù)庫(kù)報(bào)錯(cuò):“system01.dbf需要更多的恢復(fù)來(lái)保持一致性,
    的頭像 發(fā)表于 09-30 13:31 ?305次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>啟<b class='flag-5'>庫(kù)</b><b class='flag-5'>報(bào)錯(cuò)</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例

    打開(kāi)oracle數(shù)據(jù)庫(kù)報(bào)錯(cuò)“system01.dbf需要更多的恢復(fù)來(lái)保持一致性,數(shù)據(jù)庫(kù)無(wú)法打開(kāi)”。
    的頭像 發(fā)表于 09-21 14:25 ?355次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件system01.dbf損壞的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server附加數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫(kù)失敗。數(shù)據(jù)庫(kù)沒(méi)有備份,無(wú)法通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù)。
    的頭像 發(fā)表于 09-20 11:46 ?351次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)delete刪除的數(shù)據(jù)恢復(fù)方法

    刪除Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)一般有以下2種方式:delete、drop或truncate。下面針對(duì)這2種刪除oracle數(shù)據(jù)庫(kù)數(shù)據(jù)的方式探討一下oracle
    的頭像 發(fā)表于 09-11 11:45 ?378次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫(kù)底層File Record被截?cái)酁?的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)無(wú)法被讀取。 經(jīng)過(guò)數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)工程師的初步檢測(cè),發(fā)現(xiàn)SQL Server
    的頭像 發(fā)表于 07-26 11:27 ?390次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SqlServer<b class='flag-5'>數(shù)據(jù)庫(kù)</b>底層File Record被截?cái)酁?的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)所在分區(qū)空間不足報(bào)錯(cuò)數(shù)據(jù)恢復(fù)案例

    Server數(shù)據(jù)庫(kù)故障: 存放SQL Server數(shù)據(jù)庫(kù)的D盤(pán)分區(qū)容量不足,管理員在E盤(pán)中生成了一個(gè).ndf的文件并且將數(shù)據(jù)庫(kù)路徑指向E盤(pán)繼續(xù)使用。數(shù)據(jù)庫(kù)繼續(xù)運(yùn)行一段時(shí)間后出現(xiàn)故障
    的頭像 發(fā)表于 07-10 13:54 ?499次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤(pán)組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運(yùn)行了Sql Server數(shù)據(jù)庫(kù),存儲(chǔ)空間在操作系統(tǒng)層面劃分
    的頭像 發(fā)表于 05-08 11:43 ?512次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—ndf文件大小變?yōu)?KB的數(shù)據(jù)恢復(fù)案例

    存儲(chǔ)設(shè)備損壞導(dǎo)致存儲(chǔ)中SQL Server數(shù)據(jù)庫(kù)崩潰。對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行恢復(fù)后,用戶發(fā)現(xiàn)有4個(gè)ndf文件的大小變?yōu)?KB。該SQL Server數(shù)據(jù)庫(kù)每10天生成一個(gè)大小相同的NDF文件
    的頭像 發(fā)表于 05-07 11:19 ?421次閱讀

    MongoDB數(shù)據(jù)恢復(fù)MongoDB數(shù)據(jù)庫(kù)文件損壞的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)Windows Server操作系統(tǒng)服務(wù)器,服務(wù)器上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB
    的頭像 發(fā)表于 04-23 14:48 ?406次閱讀
    <b class='flag-5'>MongoDB</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>MongoDB</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件損壞的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫(kù)ASM實(shí)例無(wú)法掛載的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫(kù)ASM磁盤(pán)組掉線,ASM實(shí)例不能掛載。數(shù)據(jù)庫(kù)管理員嘗試修復(fù)數(shù)據(jù)庫(kù),但是沒(méi)有成功。
    的頭像 發(fā)表于 02-01 17:39 ?524次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>】Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>ASM實(shí)例無(wú)法掛載的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例