亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

通過WT工具對(duì)Mongodb進(jìn)行數(shù)據(jù)恢復(fù)

IT那活兒 / 2950人閱讀
通過WT工具對(duì)Mongodb進(jìn)行數(shù)據(jù)恢復(fù)
[
概述
]


在數(shù)據(jù)庫運(yùn)維過程中,如果運(yùn)維不規(guī)范,未建立容災(zāi)環(huán)境并未制定合適的備份策略并備份,在某些極端情況下(比如主機(jī)異常斷電),可能導(dǎo)致數(shù)據(jù)庫實(shí)例無法啟動(dòng)。此時(shí),怎么盡最大的可能拯救數(shù)據(jù)?


在Oracle中,提供了一些隱含參數(shù)或者方法讓數(shù)據(jù)庫強(qiáng)制啟動(dòng),并在撈出數(shù)據(jù)后重建數(shù)據(jù)庫,或者利用DUL等工具盡可能的進(jìn)行數(shù)據(jù)提取。那么在mongodb數(shù)據(jù)庫的運(yùn)維過程中,遭遇數(shù)據(jù)庫文件損壞,實(shí)例無法啟動(dòng)的時(shí)候怎么辦?我們都知道Mongodb從3.2版開始,默認(rèn)使用的wiredTiger開源存儲(chǔ)引擎,通過在github上下載wt引擎的源碼,可以編譯生成一個(gè)wt工具,利用該工具可以從mongodb數(shù)據(jù)文件中撈出數(shù)據(jù)。


[
數(shù)據(jù)恢復(fù)
]


工具安裝


軟件下載地址:https://github.com/wiredtiger/wiredtiger,安裝方法:


  1. 安裝依賴包

yum-y install snappy.x86_64 snappy-devel.x86_64


  1. 編譯安裝

./configure--enable-snappy –prefix=/usr/local/wiredTiger

make&&makeinstall


數(shù)據(jù)恢復(fù)


在mongodb數(shù)據(jù)目錄的文件結(jié)構(gòu)中,包括數(shù)據(jù)庫文件和WiredTiger.wt等元數(shù)據(jù)文件,若元數(shù)據(jù)文件丟失,則會(huì)導(dǎo)致wt工具也無法恢復(fù)數(shù)據(jù),出現(xiàn)類似如下報(bào)錯(cuò):

[1600001107:222670][28965:0x7f7a4a987740],file:WiredTiger.wt, connection: __posix_open_file, 715:/data/mongodb/WiredTiger.wt: handle-open: open: No such file ordirectory


如上圖所示,需保證紅框外的文件都在,才能從數(shù)據(jù)文件中抓取數(shù)據(jù)。

wt -v -h /data/mongodb -C"extensions=[/usr/local/wiredtiger/lib/libwiredtiger_snappy.so]"list –列出所有的對(duì)象名稱,由于WT引擎默認(rèn)使用了snappy壓縮算法,所以需要使用extensions顯示指定類文件位置。


從數(shù)據(jù)文件中導(dǎo)出數(shù)據(jù):

/usr/local/wiredtiger/bin/wt -v -h /data/mongodb -C"extensions=[/usr/local/wiredtiger/lib/libwiredtiger_snappy.so]" dump -f /home/mongo/a.dmp test/collection/7-6614138329248103296

導(dǎo)出的文件在此時(shí)不是json文件,不能直接讀取,需導(dǎo)入一個(gè)臨時(shí)數(shù)據(jù)庫中


>show dbs;

admin  0.000GB

config 0.000GB

local  0.000GB

>use test

>db.createCollection("test");

{"ok" : 1 }

>show tables;

test

>db.test.stats().wiredTiger.uri;

statistics:table:test/collection/0--2648066414802528487  --獲取臨時(shí)集合的數(shù)據(jù)文件信息


[mongo@node1~]$ mongod -f /etc/mongodb/mongodb1.conf ---shutdown##停止臨時(shí)數(shù)據(jù)庫,否則在導(dǎo)入的時(shí)候會(huì)報(bào)資源忙

[1600004969:259849][25396:0x7f9657853740],wiredtiger_open: __posix_file_lock, 410:/data/mongodb1/WiredTiger.lock: handle-lock: fcntl: Resourcetemporarily unavailable

[1600004969:259905][25396:0x7f9657853740],wiredtiger_open: __conn_single, 1720: WiredTiger database is alreadybeing managed by another process: Device or resource busy


數(shù)據(jù)導(dǎo)入:

[mongo@node1~]$  /usr/local/wiredtiger/bin/wt  -v -h /data/mongodb1 -C"extensions=[/usr/local/wiredtiger/lib/libwiredtiger_snappy.so]"-R load -f /home/mongo/a.dmp  -rtest/collection/0--2648066414802528487

file:test/collection/0--2648066414802528487:100002  --提示導(dǎo)入了100002個(gè)document

啟動(dòng)數(shù)據(jù)庫,但是我們發(fā)現(xiàn)此時(shí)導(dǎo)入的數(shù)據(jù)可以find,但是count為0,如下圖:



此時(shí),我們采用導(dǎo)出和導(dǎo)入的方法更新元數(shù)據(jù)


再次查詢,集合文檔數(shù)據(jù)量count可正常顯示,見下圖:

注:wt工具導(dǎo)出和導(dǎo)入數(shù)據(jù)只能按集合逐一進(jìn)行,mongodump和mongorestore修復(fù)元數(shù)據(jù),可以按庫多個(gè)集合同時(shí)修正。


[
總結(jié)
]


本文檔使用的案例是在測試環(huán)境的測試案例。本文僅僅是提供一種在極端情況下盡可能救援?dāng)?shù)據(jù)的一種方法,但使用過程中也有諸多限制。本人認(rèn)為,成熟的運(yùn)維應(yīng)該是制定完善的運(yùn)維方案,建立合適的數(shù)據(jù)庫備份策略和數(shù)據(jù)庫容災(zāi)架構(gòu),不到萬不得已,不使用此類非常規(guī)的手段恢復(fù)數(shù)據(jù)。


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/130142.html

相關(guān)文章

  • 團(tuán)隊(duì)協(xié)作工具 Worktile 技術(shù)架構(gòu)揭秘

    摘要:現(xiàn)在已經(jīng)成為的官方標(biāo)準(zhǔn),如,以及的擴(kuò)展協(xié)議。作者簡介李會(huì)軍,聯(lián)合創(chuàng)始人,關(guān)注團(tuán)隊(duì)協(xié)作領(lǐng)域,致力于用工具解決中小團(tuán)隊(duì)的協(xié)作問題。 Worktile自上線兩年多以來,以良好的用戶體驗(yàn)和穩(wěn)定的服務(wù),獲得了用戶的認(rèn)可和喜愛。截止筆者寫這篇文章的時(shí)候,已經(jīng)有超過10萬家團(tuán)隊(duì)在使用Worktile。作為團(tuán)隊(duì)協(xié)作工具,從技術(shù)上分析首先要解決如下幾個(gè)問題: 基于Web的跨平臺(tái)設(shè)計(jì),讓用戶在任何地方都...

    heartFollower 評(píng)論0 收藏0
  • MongoDB Security Tutorial

    摘要:通過指定,并在生產(chǎn)線上關(guān)閉的接口來達(dá)到規(guī)避網(wǎng)絡(luò)進(jìn)口的安全問題。避免同樣的悲劇在發(fā)生。上海小胖原創(chuàng)地址歡迎各位大神前來評(píng)論。每周五,敬請(qǐng)期待,上海小胖獨(dú)更。 序 原本這周想寫一個(gè)系列關(guān)于 GDPR(General Data Protection Regulation) MongoDB 的,但是昨天(2017.09.05)又爆出超2.6W 個(gè)MongoDB 節(jié)點(diǎn)被劫持。所以臨陣變卦,決定寫...

    simpleapples 評(píng)論0 收藏0
  • mongodb

    摘要:并依賴于提供的機(jī)制提供高數(shù)據(jù)可靠性,目前支持單機(jī)事務(wù)。源通知目標(biāo)開始同步數(shù)據(jù)源收到發(fā)送的命令后,會(huì)向目標(biāo)發(fā)送的命令,通知目標(biāo)開始遷移數(shù)據(jù)真正的數(shù)據(jù)遷移由目標(biāo)主動(dòng)發(fā)起。源收到的結(jié)果,整個(gè)數(shù)據(jù)遷移的步驟完成。 本文分兩部分,分布式和單機(jī)。單個(gè)db的存儲(chǔ)引擎,物理和數(shù)據(jù)存儲(chǔ)簡介,事務(wù)實(shí)現(xiàn)等。分布式架構(gòu),分布式涉及的復(fù)制集,分片等可靠性和擴(kuò)展性保障。 第一部分 單機(jī)存儲(chǔ)引擎介紹mondod 引...

    lscho 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<