专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » ora01552:回滚段表空间损坏处理(ORA-01552)处理方法 »正文

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条 分0页

发表评论

  • 昵称:
  • 内容: