簡介
在計算機技術中(特別是數據傳輸和數據存儲),塊是一段標準長度(塊大小)的位元組或比特。錯誤塊簡單地說是指塊原有的組織結構受到了破壞,一般有兩種:
1. 指的是存儲設備一個存儲區受到破壞,不能再使用;
2. 程式讀取的塊數據不完整,發生錯誤。
錯誤塊在計算機中很常見,特別是在程式套用中。例如我們在運行一個程式時有時會出現錯誤塊的提示。
塊
計算機技術中(特別是數據傳輸和數據存儲),塊是一段標準長度(塊大小)的位元組或比特。在處理電腦程式產生的數據流時,塊化數據可以簡化處理過程。一般情況下,一次會讀取一個完整的塊。向9軌磁帶、旋轉介質如軟碟、硬碟、光碟和NAND快閃記憶體存儲數據時,塊化數據幾乎是唯一的選擇。
大多數檔案系統都是基於塊設備,即存取規定數據塊的硬體抽象層。有時檔案系統中的塊大小可能是物理塊大小的幾倍。傳統檔案系統中,單個塊可能只包含單個檔案的一部分。但由於檔案長度通常不是塊大小的整數倍,這樣檔案的最後一塊不會完全填滿,由此產生的內部碎片會導致空間利用率不高。因此會有鬆散空間(slack space),平均每個檔案半塊。一些較新的檔案系統會用子塊分配和尾部合併技術解決它。
塊存儲經常由檔案系統或資料庫管理系統(DBMS)抽象出來,提供給應用程式或最終用戶使用。物理或邏輯卷可以通過塊I/O訪問,背後可能是通過SCSI或光纖通道直接連線伺服器的內部設備,或通過iSCSI、AoE等協定訪問存儲區域網路(SAN)的遠程設備。資料庫管理系統通常使用自己的塊I/O,以在DBMS的檔案系統之上提高性能和可恢復性。
錯誤塊處理示例
修復塊上的I/O 錯誤
如果在資料庫伺服器操作期間發生 I/O 錯誤,那么發生了錯誤的塊的狀態將更改為脫機。
如果塊脫機,那么 onstat -d 將顯示主塊的塊狀態為 PD-,鏡像塊的塊狀態為 MD-。
另外,訊息日誌列出了帶有出錯位置和建議的解決方案的訊息。所列解決方案是可能的解決辦法,但不一定能糾正該問題。
如果脫機塊已鏡像,那么資料庫伺服器繼續使用鏡像塊操作。使用作業系統實用程式來確定脫機塊的問題並糾正該問題。然後您必須定向資料庫伺服器以復原鏡像塊數據。
如果脫機的塊未鏡像並且包含邏輯日誌檔案、物理日誌檔案或根資料庫空間,那么資料庫伺服器將立即啟動停止操作。否則,資料庫伺服器可以繼續操作,但無法寫入或讀取脫機塊或該塊所在資料庫空間中的任何其他塊。必須採取步驟以確定 I/O 錯誤發生的原因、糾正問題並從備份復原資料庫空間。
如果當某塊標記為脫機 (D) 時將資料庫伺服器變為脫機方式,那么您可以重新啟動資料庫伺服器,前提是標記為脫機的塊不包含關鍵數據(邏輯日誌檔案、物理日誌檔案或根資料庫空間)。