您的位置:首页 > 其它

用归档日志恢复丢失的数据文件

2006-11-22 17:23 579 查看
由于删除文件时不小心,删除了一个数据文件,在操作系统级该文件不能被恢复。

数据库是自动归档的数据库。经查看,有所有的归档日志。

SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 d:/oracle/ora92/RDBMS
最早的概要日志序列 6
下一个存档日志序列 8
当前日志序列 8

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 85006980 bytes
Fixed Size 453252 bytes
Variable Size 58720256 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。

SQL> create tablespace test datafile 'D:/ORACLE/ORADATA/ORA92/TEST01.DBF' SIZE 10M;

表空间已创建。

SQL> create table a (b char) tablespace test;

表已创建。

再删除数据文件:

'D:/ORACLE/ORADATA/ORA92/TEST01.DBF

启动数据库:

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 85006980 bytes
Fixed Size 453252 bytes
Variable Size 58720256 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'D:/ORACLE/ORADATA/ORA92/TEST01.DBF'

SQL> alter database create datafile 7 as 'D:/ORACLE/ORADATA/ORA92/TEST01.DBF';

数据库已更改。

SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01113: 文件 7 需要介质恢复
ORA-01110: 数据文件 7: 'D:/ORACLE/ORADATA/ORA92/TEST01.DBF'

SQL> recover datafile 7;
完成介质恢复。
SQL> alter database open;

数据库已更改。

SQL> select * from a;

未选定行

SQL> insert into a values ('2');

已创建 1 行。

SQL> truncate table a;

表已截掉。

SQL> drop table a;

表已丢弃。

SQL> drop tablespace test including contents and datafiles;

表空间已丢弃。

注意:

对于以前用 RESETLOGS 选项启动数据库,并且数据文件是在使用前创建的数据文件,就不能用这种方法。

SQL> alter database create datafile 5 as 'D:/ORACLE/ORADATA/ORA92/USERS01.DBF';
alter database create datafile 5 as 'D:/ORACLE/ORADATA/ORA92/USERS01.DBF'
*
ERROR 位于第 1 行:
ORA-01181: 文件5在最后一个 RESETLOGS 之前创建,无法重新创建
ORA-01110: 数据文件 5: 'D:/ORACLE/ORADATA/ORA92/USERS01.DBF'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: