基本情况:
数据库:9.2.0.1.0 操作系统:windows XP
数据库是归档模式
数据库中存在两个UNDO表空间: UNDOTBS1 ,UNDO_SMALL
数据库默认表空间:UNDOTBS1
实验一:
模拟回退表空间的数据文件出现问题
SQL>sys/@blqt as sysdba
SQL>SHUTDOWN IMMEDIATE;
将回退数据文件放到别的路径,
SQL>STARTUP
数据库装载完毕,报错
Errors in file f:oracleadminoradbwyjbdumporadbwyj_dbw0_3588.trc:
ORA-01157: cannot identify/lock data file 2 - see DBWR trace file
ORA-01110: data file 2: 'ORA_DATABASEORADATAORADBWYJUNDOTBS01.DBF'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL>alter database datafile 2 offline;
SQL>alter database open;
SQL> select * from v$recover_file;
有一行记录:表示数据文件2需要恢复
SQL>ALTER system set undo_tablespace=undo_small scope=spfile;
SQL>shutdown immediate
SQL>STARTUP OPEN
SQL>DROP tablespace undotbs1;
SQL> select * from v$recover_file;
未选定行
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDO_SMALL
实验二
如果数据库只有一个回退表空间(UNDOTBS1),当回退表空间的数据文件出现问题
SQL>alter database datafile 2 offline;
SQL>alter database open;
SQL>CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE ‘F:ORACLEORADATAORADBWYJUNDOTBS2_01.DBF’ SIZE 100M;
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=’UNDOTBS2’ SCOPE=SPFILE;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
SQL>DROP TABLESPACE UNDOTBS1 INCLUDING CONTENSTS AND DATAFILES;
总结:
个人认为可以在数据库中建立两个UNDO表空间,其中一个认为默认,另外一个可能做为备份。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/526592/viewspace-236701/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/526592/viewspace-236701/