ora01552:回滚段表空间损坏处理(ORA-01552)处理方法来源: 发布时间:星期六, 2008年9月27日 浏览:2次 评论:0
测试环境:
OS :XP DB:9201 本测试测试了如下情况: a.正常关闭数据库,数据库(未)归档,回滚段表空间丢失,成功恢复 b.非正常关闭数据库,数据库非归档,有活动事务,回滚段表空间丢失,成功恢复 c.非正常关闭数据库,数据库归档,有活动事务,回滚段表空间丢失,恢复失败,目前不知原因 a.正常关闭数据库, 数据库(未)归档 如shutdown normal,shutdown immediate 1.正常关闭数据库,模拟回滚段表空间丢失 SQL> conn sys/test@jumper as sysdba 已连接。 SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> host del D:oracleoradatajumperUNDOTBS01.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: 'D:ORACLEORADATAJUMPERUNDOTBS01.DBF' 2.确认回滚段表空间丢失 SQL> select file#,online_status,error from v$recover_file; FILE# _disibledevent=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 bytes 数据库装载完毕。 数据库已经打开。 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行。 SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ----------------------------- undo_management string AUTO undo_retention integer 10800 undo_suppress_errors boolean FALSE undo_tablespace string UNDOTS 通过上述方法,(未)归档都可以正常打开数据库 b.非正常关闭数据库(数据库未归档) 如shutdown abort或crash 1.生成测试数据 SQL> conn test/test@jumper 已连接。 SQL> truncate table test; 表已截掉。 SQL> insert into test values(1); 已创建 1 行。 2.非正常关闭数据库,删除回滚段表空间 再打开一窗口 SQL> shutdown abort ORACLE 例程已经关闭。 SQL> host del D:oracleoradatajumperUNDOTBS01.DBF 3.创建启动参数文件 SQL> startup ORACLE 例程已经启动。 Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 2: 'D:ORACLEORADATAJUMPERUNDOTBS01.DBF' 0
相关文章
读者评论
发表评论 |