+ -
当前位置:首页 → 问答吧 → oracle数据备份与恢复 无法恢复被删除的表

oracle数据备份与恢复 无法恢复被删除的表

时间:2011-12-21

来源:互联网

我使用的是热备份(用sys用户登录的):
alter system set log_archive_start=true scope=spfile;
shutdown immediate; startup mount; alter database archivelog; alter database open;
alter tablespace users begin backup; (然后我将users01.dbf文件拷贝到了另一个磁盘)alter tablespace users end backup;
我用上面的完成了备份。之后将用户scott下的表s删除,试图用归档模式恢复表s,操作如下:
drop table scott.s;(删除用户scott.s)
(接下来我进行了日志归档): alter system archive log current; alter system switch logfile; alter system switch logfile; alter system switch logfile;
(接下来进行恢复):shutdown immediate;(然后我将oradata下的users01.dbf删除) startup; 
alter database datafile 4 offline drop; alter database open; (然后将之前备份的users01.dbf拷贝回oradata目录下)
recover datafile 4; (接着我选择了auto模式) 然后是alter database datafile 4 online;
至此,我以为已经恢复了表s,但是我select * from scott.s;时提示的是表不存在
请问各位大侠,这是怎么回事?小弟刚学oracle,很多不懂,还请见谅~知道原因的大侠请指导下,谢啦
其中有一些错误提示如下:
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 272630224 bytes
Database Buffers 255852544 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'E:\ORACLE\ORADATA\STUDENT\USERS01.DBF'
SQL> recover datafile 4;
ORA-00279: 更改 2447330 (在 12/21/2011 03:15:15 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\BACKUP\ARC0000000075_0769753361.0001
ORA-00280: 更改 2447330 (用于线程 1) 在序列 #75 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 2447466 (在 12/21/2011 03:16:30 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\BACKUP\ARC0000000076_0769753361.0001
ORA-00280: 更改 2447466 (用于线程 1) 在序列 #76 中


已应用的日志。
完成介质恢复。

作者: YJ_LOVE   发布时间: 2011-12-21

不能用 recover aotu  
而应该指定截止时间, recover datafile until time to_date ()
不然重做日志又把表删除了。

作者: huangdh12   发布时间: 2011-12-21