線上mongodb版本升級(jí)——各種問題Invariant failure

1.? 升級(jí)mongodb線上版本到3.2.15,然后啟動(dòng)新的進(jìn)程,沒有問題。

其次,使用以前的數(shù)據(jù)文件啟動(dòng)另一個(gè)進(jìn)程(指定了新的配置文件,實(shí)測(cè)mongodb 2.4的配置文件在測(cè)試機(jī)器上也可以用來啟動(dòng)mongodb),在生產(chǎn)環(huán)境的機(jī)器上每一次都會(huì)報(bào)錯(cuò)如下:

Invariant failure cce.get() src/mongo/db/catalog/database.cpp 187

[initandlisten] Got signal: 6 (Aborted)

mongod(_ZN5mongo15invariantFailedEPKcS1_j 0xCB)

2. 嘗試了 https://jira.mongodb.org/browse/SERVER-9032 , http://www.cnblogs.com/sailrancho/p/3392181.html

提到的設(shè)置locale, 無效!

差點(diǎn)而就打算使用 /usr/bin/mongod -f /etc/mongod.conf --repair . 但是我不放棄,絕對(duì)不應(yīng)輕易采用修復(fù)數(shù)據(jù)庫的方式(記得這樣是會(huì)需要非常多的磁盤空間的)。

逛遍了各大網(wǎng)站,沒有看到解決方案!

比如 https://segmentfault.com/q/1010000000602546 , https://jira.mongodb.org/browse/SERVER-14238, https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/mongodb-user/3Ckmgph2Li4/IOznrpCYwAAJ , https://stackoverflow.com/questions/31273977/mongo-db-invariant-failure

3. 于是在測(cè)試機(jī)器和生產(chǎn)機(jī)器上參考官方配置文件,添加如下debug:

systemLog:

destination: file

logAppend: true

verbosity: 5

traceAllExceptions: true

#quiet: true

path: /sda/var/log/mongodb/mongodb300.log

4. 啟動(dòng)服務(wù),獲取日志。使用bcompare對(duì)比:

測(cè)試機(jī)器:

0800 D STORAGE? [initandlisten]? ? Recovering database: local

2017-07-24T13:34:21.374+0800 D STORAGE? [initandlisten]? ? Recovering database: mclog

后面一切正常

生產(chǎn)機(jī)器:

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten]? ? Recovering database: system

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten] mmf open /sda/var/lib/mongodb/system.ns

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten] mmf finishOpening 0x7fc51ac90000 /sda/var/lib/mongodb/system.ns len:16777216

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten] mmf open /sda/var/lib/mongodb/system.0

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten] mmf finishOpening 0x7fc515c90000 /sda/var/lib/mongodb/system.0 len:67108864

2017-07-24T13:25:04.906+0800 D STORAGE? [initandlisten] allocating new extent

2017-07-24T13:25:04.925+0800 D STORAGE? [initandlisten] MmapV1ExtentManager::allocateExtent desiredSize:4096 fromFreeList: 0 eloc: 0:102000

2017-07-24T13:25:04.925+0800 D STORAGE? [initandlisten] 30 writes (1 kB) covered by 30 pre-images (1 kB)

2017-07-24T13:25:04.925+0800 D STORAGE? [initandlisten] 0 pre-images coalesced into 6 write intents

2017-07-24T13:25:04.928+0800 I -? ? ? ? [initandlisten] Invariant failure cce.get() src/mongo/db/catalog/database.cpp 187

5. 于是非常懷疑生產(chǎn)機(jī)器的system命名空間是哪里來的,里面有啥?

進(jìn)入dbpath,看到system.0,system.ns.

于是在dbpath下創(chuàng)建目錄testbak并把上面兩個(gè)文件mv進(jìn)去。再次啟動(dòng),成功了??!

6. 對(duì)于老的服務(wù),已經(jīng)不會(huì)在寫入新的數(shù)據(jù)(之前的版本使用的"storageEngine":"mmapv1",所以新版本會(huì)延續(xù)使用),所以將journal目錄重命名,并且設(shè)置

storage:

dbPath: /sda/var/lib/mongodb

journal:

enabled: false

再次啟動(dòng),可以使用。那么可以刪除以前的舊數(shù)據(jù)中的日志了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Mac MongoDB安裝 一、安裝 MongoDB的安裝方法有很多,本文以官方文檔中的兩種方法為準(zhǔn)。 1. 手動(dòng)...
    Keriy閱讀 16,893評(píng)論 2 7
  • 簡(jiǎn)單介紹:MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,由c++語言編寫,為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)...
    hcc_9bf4閱讀 1,002評(píng)論 0 0
  • 個(gè)人最近正在研究mongo DB,是通過brew install mongodb安裝的。 然后通過 db.shu...
    廣州小單純閱讀 3,950評(píng)論 1 0
  • MongoDB是一個(gè)C++編寫的基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,是一個(gè)介于關(guān)系和非關(guān)系之間的數(shù)據(jù)庫,當(dāng)然也屬于NoSQ...
    Anwar_ec28閱讀 5,066評(píng)論 0 0
  • 上周五下班之前原本想等領(lǐng)導(dǎo)回來簽名的,可一直等很久都沒見他,主管領(lǐng)導(dǎo)說打電話給他,我說他忙,別老催他,他會(huì)不高興的...
    思言悟語閱讀 332評(píng)論 0 2

友情鏈接更多精彩內(nèi)容