【undo表空间的丢失-恢复-1】(二)

2015-01-27 22:40:39 · 作者: · 浏览: 65
cle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/oracle/oradata/jadl10g/system01.dbf
/u01/oracle/oradata/jadl10g/undotbs01.dbf
/u01/oracle/oradata/jadl10g/sysaux01.dbf
/u01/oracle/oradata/jadl10g/users01.dbf
/u01/oracle/oradata/jadl10g/example01.dbf

SQL> ho ls /u01/oracle/oradata/jadl10g/undotbs01.dbf
ls: cannot access /u01/oracle/oradata/jadl10g/undotbs01.dbf: No such file or directory

SQL> create undo tablespace undotbs2 datafile '/u01/oracle/oradata/jadl10g/undotbs02.dbf' size 10m autoextend on;
create undo tablespace undotbs2 datafile '/u01/oracle/oradata/jadl10g/undotbs02.dbf' size 10m autoextend on
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 2
ORA-01110: data file 2: '/u01/oracle/oradata/jadl10g/undotbs01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

create undo tablespace 命令不能正常执行的话,只能采用上面的方法恢复;如果能创建成功,可以不关闭数据库

alter system set undo_tablespace=undotbs2;

执行以下命令会错:
drop tablespace undotbs01;
alter tablespace undotbs01 offline;

可以执行以下命令脱机不在使用的文件:
alter database datafile 2 offline;
也可以将原来的文件还原回来:
进入rman:
restore datafile 2;
recover datafile 2;
进入sqlplus:
alter database datafile 2 online;
alter system set undo_tablespace=undotbs1;

****此时需要重新备份数据库;需要注意正在使用的undo是不能脱机的额。
****不清空缓存的话是可以建立的。还有就是建立两个undo,以防止丢失一个,可以切换到另外一个上面。
****system表空间是必须关闭数据库的噢噢