undo表空間資料檔案損壞處理方法
問題描述: 當乙個回滾段表空間資料檔案丟失或損壞時,而且又指定了另外的回歸段表空間,此時資料庫可以正常開啟,查詢、插入、刪除資料等都沒有問題,當新增乙個表時,會提示如下錯誤:
ora-00604:遞迴sql級別1出現錯誤
ora-00376:此時無法讀取檔案 44
ora-01110:資料檔案44:'e/oradata/orcl/undotemp.ora'
具體解決步驟如下: 1、
先shutdown,以restrict模式開啟資料庫:
sql>startup restrict mount;
2、以offline drop選項刪除丟失或損壞的資料檔案:
sql>alter database datafile 44 offline drop;
3、開啟資料庫:
sql>alter database open;
4、修改initsid.ora的檔案,並且加入如下一行:
_corrupted_rollback_segments = (
,...,)
這個引數應當包含rollback_segments中損壞的表空間的所有的回滾段,例如:
_corrupted_rollback_segments = (_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$)
5、以restrict模式指定pfile開啟資料庫:
sql>startup restrict pfile="c:/oracle/product/10.2.0/db_1/database/initorcl.ora";
6、刪除掉損壞的資料檔案所屬的回滾段表空間:
sql>drop tablespace "undotemp" including contents and datafiles; 7
、重建回滾段表空間:
sql>create undo tablespace undotbs datafile 'e:/oradata/orcl/undotbs.dbf' size 100m reuse autoextend on;
sql>alter system set undo_tablespace=undotbs;
sql>drop tablespace undo0702 including contents;
sql>select * from dba_tablespaces;
8、在initsid.ora中把你重新建立的回滾段再一次包括進來,如:
undo_tablespace=undotbs
9、以該pfile再次重啟資料庫,一切正常,表建立成功。
類似問題參考**:
Undo表空間資料檔案損壞
undo表空間資料檔案和system表空間資料檔案都是資料庫的關鍵資料檔案,如果損壞會導致sql執行失敗,使用者無法登入,甚至例項崩潰等。同樣恢復undo表空間資料檔案也必須在資料庫mount狀態下進行。資料庫在執行過程中發現undo表空間資料檔案損壞,此時是無法正常關閉資料庫的 sql shutd...
移動表空間資料檔案
2011年5月31日 移動表空間資料檔案方法 一 首先啟用介質恢復即開啟歸檔模式,用sys使用者 如果已經開啟則省略該步驟 sql shutdown immediate 資料庫已經關閉。已經解除安裝資料庫。oracle 例程已經關閉。sql startup mount oracle 例程已經啟動。t...
ORA 01157 表空間資料檔案損壞需重建時
em控制台報錯如下 處理步驟 1 備份該資料檔案所在的表空間 tbs hy 的資料 exp pcs hs hn pcs jwzh tablespaces tbs hy file d jwzhpt oracle bak tbs hy.dmp log d jwzhpt oracle bak tbs hy...