回滾段表空間損壞處理(ORA-01552)處理方法
測試環境:
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
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 回滾段表空間資料檔案丟失或損壞處理方法(1) (轉)Oracle
- UNDO表空間損壞的處理
- ORA-01552 非系統表空間不能使用系統回滾段處理
- undo表空間損壞的處理過程
- 回滾段表空間資料檔案損壞解決方法
- sysaux表空間檔案損壞的處理(zt)UX
- 段頭損壞的處理
- 回滾段完蛋了的處理
- 系統表空間IO錯誤 資料損壞處理一則
- 處理塊損壞
- sysaux 表空間爆滿處理方法UX
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- oracle回滾段 undo 表空間Oracle
- undo 表空間滿了的處理方法
- undo表空間故障處理
- oracle - redo 損壞或刪除處理方法Oracle
- oracle10g rac 表決盤損壞、ocr損壞處理Oracle
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- oracle中undo表空間丟失處理方法Oracle
- Oracle undo表空間爆滿的處理方法Oracle
- Oracle提交和回滾處理Oracle
- 第7章 處理塊損壞
- exp,imp 不同表空間大欄位處理方法
- sysaux 表空間不足問題處理UX
- Oracle Temp臨時表空間處理Oracle
- oracle 表空間 不足時如何處理Oracle
- RAC磁碟頭損壞問題處理
- undo表空間佔用磁碟空間滿案例處理
- 回滾段損壞後的引數設定
- Undo和Current Online Redo損壞的處理方法
- Current online Redo 和 Undo 損壞的處理方法
- 表空間資料檔案故障處理
- 刪除臨時表空間hang處理
- 傳輸表空間及問題處理
- 處理TEMP表空間滿的問題
- SAP匯率損益處理方法
- ORACLE資料庫壞塊的處理 (處理無物件壞快的方法)Oracle資料庫物件
- 【Oracle】Current online Redo 和 Undo 損壞的處理方法Oracle