原文出处:http://blog.csdn.net/wyzxg/archive/2010/09/10/5874726.aspx
undo表空间故障特殊恢复(二)------ORA-01092: ORACLE 实例终止。强制断开连接
这个测试的是instance recover(单实例里就是crash recovery)的恢复需要故障undo里的数据,
一般的情况instance recover使用联机日志文件的,当发生多版本更新的故障,也可需要回滚段数据的。
测试表
SQL> select count(1) from tabtest;
COUNT(1)
----------
17732
SQL> insert into tabtest select * from tabtest where rownum<2001;
已创建2000行。
SQL> insert into tabtest select * from tabtest where rownum<2001;
已创建2000行。
模拟断电故障,让回滚段的数据没来得回滚,使回滚段在数据库关闭时,保留未commit的事务
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> quit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
只有退出sqlplus环境,才能更改回滚段数据文件,删除回滚数据文件,模拟回滚段丢失
C:\Documents and Settings\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 9月 9 22:23:50 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 574619648 bytes
Fixed Size 1297944 bytes
Variable Size 234881512 bytes
Database Buffers 331350016 bytes
Redo Buffers 7090176 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 2: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS13.DBF'
错误出现了,因为我已经删除文件“E:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS13.DBF”
SQL> shutdown abort;
ORACLE 例程已经关闭。
这里startup force是模拟instance recover时需要回滚段里的数据情况,为什么能模拟出来,我也不清楚,我是经过多次测试发现的,哪位高人知道原因,请指点????
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 574619648 bytes
Fixed Size 1297944 bytes
Variable Size 234881512 bytes
Database Buffers 331350016 bytes
Redo Buffers 7090176 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 2: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS13.DBF'
SQL> alter database datafile 2 offline drop;
数据库已更改。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01092: ORACLE 实例终止。强制断开连接
这里instance recover需要回滚段里数据,但是回滚段丢失,所以实例出现异常直接关闭
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> quit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
C:\Documents and Settings\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 9月 9 22:27:05 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。