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'
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表空间是必须关闭数据库的噢噢