回滾段表空間損壞處理(ORA-01552)處理方法

beatony發表於2010-05-19
測試環境:
OS :linux
DB:9201
本測試測試瞭如下情況:
a.正常關閉資料庫,資料庫(未)歸檔,回滾段表空間丟失,成功恢復
b.非正常關閉資料庫,資料庫非歸檔,有活動事務,回滾段表空間丟失,成功恢復
c.非正常關閉資料庫,資料庫歸檔,有活動事務,回滾段表空間丟失,恢復失敗,目前不知原因
a.正常關閉資料庫, 資料庫(未)歸檔
如shutdown normal,shutdown immediate
1.正常關閉資料庫,模擬回滾段表空間丟失
SQL> conn sys/test@jumper as sysdba
已連線。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host rm -rf  /oradata/uat8/UNDOTBS01.DBF
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 2 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 2: /oradata/uat8/UNDOTBS01.DBF'
2.確認回滾段表空間丟失
SQL> select file#,online_status,error from v$recover_file;
FILE# ONLINE_ status error
---------- -------
2 ONLINE FILE NOT FOUND
SQL> select name from v$datafile where file#=2;
NAME
----------------------------------------------------
D:ORACLE/ORADATA/JUMPER/UNDOTBS01.DBF
3.開啟資料庫
SQL> alter database datafile '/oradata/uat8/UNDOTBS01.dbf' offline drop;
資料庫已更改。
SQL> alter database open;
資料庫已更改。
4.建立新的回滾段表空間
SQL> select segment_name ,tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
_SYSSMU1$ UNDOTBS1 OFFLINE
_SYSSMU2$ UNDOTBS1 OFFLINE
_SYSSMU3$ UNDOTBS1 OFFLINE
_SYSSMU4$ UNDOTBS1 OFFLINE
_SYSSMU5$ UNDOTBS1 OFFLINE
_SYSSMU6$ UNDOTBS1 OFFLINE
_SYSSMU7$ UNDOTBS1 OFFLINE
_SYSSMU8$ UNDOTBS1 OFFLINE
_SYSSMU9$ UNDOTBS1 OFFLINE
_SYSSMU10$ UNDOTBS1 OFFLINE
已選擇11行。
SQL> create undo tablespace undots datafile '/oradata/uat8/undotbs02.dbf' size 100m autoextend on next 10m maxsize 200m
2 ;
表空間已建立。
SQL> alter system set undo_tablespace=undots;
系統已更改。
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
表空間已丟棄。
SQL> select segment_name ,tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ---------------
SYSTEM SYSTEM ONLINE
_SYSSMU11$ UNDOTS ONLINE
_SYSSMU12$ UNDOTS ONLINE
_SYSSMU13$ UNDOTS ONLINE
_SYSSMU14$ UNDOTS ONLINE
_SYSSMU15$ UNDOTS ONLINE
_SYSSMU16$ UNDOTS ONLINE
_SYSSMU17$ UNDOTS ONLINE
_SYSSMU18$ UNDOTS ONLINE
_SYSSMU19$ UNDOTS ONLINE
_SYSSMU20$ UNDOTS ONLINE
已選擇11行。
5.重新啟動
SQL> startup force;
ORACLE 例程已經啟動。
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648




©2009 VB.NET專題站點

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-663106/,如需轉載,請註明出處,否則將追究法律責任。

相關文章