描述:
没有备份的情况下,恢复一个数据文件,不能是system或者undo段
准备
SQL> create tablespace testtbs datafile 'D:\oracle\oradata\ora\testtbs.dbf' size 1m;
SQL> alter system switch logfile;
SQL> create table scott.com4 (n1 number) tablespace testtbs;
SQL> alter system switch logfile;
SQL> insert into scott.com4 values(1);
SQL> commit;
SQL> alter system switch logfile;
搞坏 testtbs.dbf
我这里采取的办法是先将testtbs 表空间offline,然后把这个重命名(鼠标执行)。
SQL> alter tablespace testtbs offline;
SQL> select * from scott.com4;
select * from scott.com4
*
ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 2
ORA-01110: 数据文件 2: 'D:\ORACLE\ORADATA\ORA\TESTTBS.DBF'
恢复
再造一个文件
SQL> ALTER DATABASE CREATE DATAFILE
2 'D:\oracle\oradata\ora\testtbs.dbf';
SQL> recover tablespace testtbs;
SQL> recover tablespace testtbs;
ORA-00279: 更改 271420 (在 12/02/2007 01:19:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORADATA\ORA\AWU4.ARC''
ORA-00280: 更改 271420 对于线程 1 是按序列 # 4 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
已应用的日志。
完成介质恢复。
SQL> alter tablespace testtbs online;
SQL> select * from scott.com4;
N1
----------
1
阅读(2762) | 评论(0) | 转发(0) |