Mongodb

嘗試重命名 .turtle 時出現 WiredTiger 恐慌導致所有數據失去

  • October 24, 2017

本週我們已經在不同的伺服器上看到了兩次(一個登台,一個生產)。

2017-10-19T12:50:37.525-0400 I ACCESS   [conn266] Successfully authenticated as principal ********* on admin
2017-10-19T13:00:42.782-0400 E STORAGE  [thread2] WiredTiger (-28817) [1508432442:782769][1520:8790690042448], file:WiredTiger.wt, WT_SESSION.checkpoint: c:\mongo\data\WiredTiger.turtle.set to c:\mongo\data\WiredTiger.turtle: file-rename: rename: Cannot create a file when that file already exists.
2017-10-19T13:00:42.784-0400 E STORAGE  [thread2] WiredTiger (-28817) [1508432442:784770][1520:8790690042448], checkpoint-server: checkpoint server error: Cannot create a file when that file already exists.
2017-10-19T13:00:42.785-0400 E STORAGE  [thread2] WiredTiger (-31804) [1508432442:785770][1520:8790690042448], checkpoint-server: the process must exit and restart: WT_PANIC: WiredTiger library panic
2017-10-19T13:00:42.785-0400 I -        [thread2] Fatal Assertion 28558
2017-10-19T13:00:42.785-0400 I -        [thread2] 

***aborting after fassert() failure

2017-10-19T13:00:42.805-0400 I -        [conn259] Fatal Assertion 28559
2017-10-19T13:00:42.806-0400 I -        [conn259] 

***aborting after fassert() failure

結果是管理員數據庫被清除了。要恢復,我們需要禁用身份驗證並重新創建所有使用者。原始數據文件似乎包含數據,但從 shell 命令中不再可見。

兩台伺服器都執行良好,獨立執行了幾個月。他們執行的是相同版本的 Mongo,但與之互動的軟體版本卻截然不同。

我想我有兩個問題:

1)什麼可能導致這種特殊的失敗?

c:\mongo\data\WiredTiger.turtle顯然此時不應該存在,但確實存在;什麼會導致這個?他們擁有廣泛的安全協議,包括 Bit9 和防病毒解決方案。我建議了一個計劃的碎片整理作業(他們正在執行 SSD,所以碎片整理不應該執行,但是嘿……)但他們找不到任何證據表明任何一台伺服器上都發生了碎片整理。

2) 什麼可能導致他們相隔一兩天經歷同樣的崩潰?

這兩個系統的唯一共同點是 Mongo。順便說一句,我們將建議使用日誌和複製(他們的生產環境仍處於測試階段,因此這次停機和數據失去是可以接受的)。

您使用的是什麼版本?這是已知的錯誤,已在版本3.2.13、3.4.4、3.5.6向前修復。

引用自:https://dba.stackexchange.com/questions/189216