從 ext2 檔案系統損壞中恢復

從 ext2 檔案系統損壞中恢復

我的裝置上有一個 TinyCore (3.6) Linux 發行版,它使用模組磁碟或緊湊型快閃儲存。

檔案系統是ext2。

我在此裝置上有一個 LAMP 堆疊,並且正在使用包含 400 多個表 (myisam) 的 MySQL 資料庫。寫入操作每 15 分鐘有系統地發生一次。

這些表是由我的 Web 應用程式根據我的設定需求產生的。

現在,由於缺乏電力,該設備可能會突然關閉。

發生的情況是,如果 MySQL 正在執行某些寫入操作(即updatedeleteinsert),則某些資料和索引檔案可能會損壞。

這當然沒什麼大不了的,但是執行repair table手術也沒有那麼糟。表被修復,應用程式可以繼續運行,即使不幸的是一些數據丟失了(在我的情況下這是可以接受的)。

問題是,通常,當發生突然關閉時,幾個 mysql 表文件(FRM 或 MYI 或 MYD)處於“輸入/輸出錯誤”狀態,並且我的 MySQL 前端報告“存儲引擎錯誤 5”(I/ O 錯誤)對於這些表。使用資料庫的應用程式顯然無法正確運作。

我不想阻止類似的事件(我認為在某種程度上是不可避免的),我想考慮一些正確且可能自動從上述場景派生的文件 I/O 錯誤情況中恢復的方法。

有任何想法嗎?

編輯: 不幸的是,我無法切換到 ext3,我必須堅持使用 ext2,也是因為 ext3 會嚴重影響固態記憶體寫入週期。

答案1

我認為如果你使用CF,則不可能使用DM多路徑或其他更高可用性的功能,那麼您至少應該使用「noatime」選項來掛載這些檔案系統,以延長壽命(您自己的腳本不依賴atime等)。

除此之外,它聽起來並不是最強大的平台。

相關內容