萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> 處理Oracle數據庫中的壞塊

處理Oracle數據庫中的壞塊

一 什麼是數據庫的壞塊

首先我們來大概看一下數據庫塊的格式和結構——數據庫的數據塊有固定的格式和結構,分三層 cache layer,transaction layer,data layer。在我們對數據塊進行讀取寫入操作的時候,數據庫會對要讀寫的數據塊做一致性的檢查,其中包括 數據塊的類型、數據塊的地址信息、數據塊的SCN號以及數據塊的頭部和尾部。如果發現其中有不一致的信息,那數據庫就會標記這個數據塊為壞塊了。數據庫的壞塊分為兩種,邏輯壞塊和物理壞塊。

二 壞塊對數據庫產生的影響

如果數據庫出現壞塊,數據庫的告警日志文件裡面會存在有如下的一些報錯信息 Ora-1578以及Ora-600 and trace file in bdump directory,其中Ora-600錯誤的第一個參數值的范圍是[2000]-[8000],不同的值代表著數據塊的不同的層出現問題,具體的如下表所示:

Range block layer

Cache layer 2000 – 4000

Transaction layer 4000 – 6000

Data layer 6000 - 8000

壞塊產生影響的對象可能是數據字典表、回滾段表、臨時段、用戶數據表和索引等。不同的對象產生壞塊後的處理方法不盡相同。

三 壞塊產生的原因

Oracle調用標准C的系統函數,對數據塊進行讀寫操作,因此,壞塊是有可能由以下幾種原因產生:

硬件的I/O錯誤

操作系統的I/O錯誤或緩沖問題

內存或paging問題

磁盤修復工具

一個數據文件的一部分正在被覆蓋

Oracle試圖訪問一個未被格式化的系統塊失敗

數據文件部分溢出

Oracle或者操作系統的bug

  • 共4頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved