Mongodb
嘗試重命名 .turtle 時出現 WiredTiger 恐慌導致所有數據失去
本週我們已經在不同的伺服器上看到了兩次(一個登台,一個生產)。
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向前修復。