用归档日志恢复丢失的数据文件
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'
数据库是自动归档的数据库。经查看,有所有的归档日志。
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'
相关文章推荐
- oracle的数据文件全部丢失,但有归档和重做日志,如何恢复?
- Oracle rman不完全恢复(数据文件,归档日志,控制文件全部丢失)
- 拥有归档日志 如何恢复一个丢失的数据文件
- 拥有归档日志 如何恢复一个丢失的数据文件
- rman 恢复---归档丢失and数据文件损坏
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- oracle数据库丢失数据文件、控制文件、重做日志文件、初始化文件恢复方法
- Linux中误删除数据文件和归档日志的恢复方法
- 丢失归档日志文件的数据库恢复方法
- ORACLE基础学习-RMAN应用之(归档模式无备份,丢失数据文件的恢复)
- 没有备份、只有归档日志,如何恢复数据文件?
- 没有备份、只有归档日志,如何恢复数据文件?
- 利用DBMS_BACKUP_RESETORE从备份中恢复控制文件数据文件和归档日志
- 一个归档模式无备份丢失数据文件的恢复
- 没有备份、只有归档日志,如何恢复数据文件?
- 未启用归档数据库非数据文件(spfile,control,redo,undo,temp)全丢失的恢复方法
- SQL的日志文件丢失,只有MDF文件,怎么把数据恢复
- 模拟控制文件全部丢失与归档日志文件丢失的不完全恢复
- Oracle:只有rman备份(数据,参数,日志,控制文件全丢失)的恢复
- 丢失控制文件和数据文件,但是有冷备份和全部归档文件的恢复