萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> 用ORACLE8i修復數據庫壞塊的三種方法

用ORACLE8i修復數據庫壞塊的三種方法

在進行SUN CLUSTER雙機切換、意外斷電或其它情況下,有時會發生共享盤MOUNT不上的情況,需要使用FSCK對共享盤進行修復。修復完成後,在數據庫啟動過程中,卻又出現“數據塊損壞,無法啟動數據庫”的現象,此時,可以根據不同的數據塊損壞類型,檢測並修復錯誤。在此介紹三種使用Oracle8i修復損壞數據塊的方法。

一、數據塊損壞,錯誤代碼為ORA-01578

ORA-1115 I/O ERROR READING BLOCK

通常後跟ORA-737X錯誤與操作系統錯誤(如UNIX中的錯誤號5)

產生原因:

1.硬件問題(磁盤控制器問題或磁盤問題)

2.物理級的數據塊損壞(通常由前一原因造成)

3.處理巨型文件時,後跟錯誤代碼ORA-7371

確定故障原因與恢復的方法:

1.查看alert.log文件中其它ORA-1115錯誤的發生情況:

1) 如果指向不同磁盤的文件,則是磁盤控制器的問題,查看V$DATAFILE,有哪些文件位於該控制器下,轉到第二步。

2) 如果指向相同磁盤的不同文件,則是磁盤的問題,轉到第二步。

3) 如果指向同一個文件,執行以下語句查找文件名:

SELECT SEGMENT_NAME,SEGMENT_TYPE FROM DBA_EXTENTS
WHERE FILE_ID=<文件號> AND <塊號> BETWEEN BLOCK_ID
 AND BLOCK_ID+BLOCKS-1;

其中,文件號與塊號是ORA-1115中指出的,如果該查詢持續指向某表或索引,則重建它們即可。

2.如果文件是SYSTEM表空間,或處於NOARCHIVELOG模式,關閉數據庫,轉到第四步。

3.如果數據庫處於ARCHIVELOG模式,仍應關閉數據庫,如果不能關閉數據庫,則將相應的數據文件脫機:ALTER DATABASE DATAFILE '文件名' OFFLINE;

4.試著將數據文件拷貝到別的磁盤。

5.如果拷貝失敗,則文件將丟失。

6.STARTUP MOUNT;

7.將數據文件重命名為成功拷貝到別的磁盤的文件名:

ALTER DATABASE RENAME FILE '老路徑文件名' TO '新路徑文件名';

8.ALTER DATABASE OPEN;

9.RECOVER DATAFILE 文件名;

ALTER DATABASE DATAFILE '文件名' ONLINE;

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