归档模式下直接删除数据文件并重启数据库,通常情况下需要备份来恢复,但是如果从创建这个数据文件到目前为止的归档都在,那是可以一条命令快速恢复的。
重要事情说三遍:确保所有的归档日志都存在
重要事情说三遍:确保所有的归档日志都存在
重要事情说三遍:确保所有的归档日志都存在
模拟数据
- 
模拟业务表空间test create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 5M autoextend off;
- 
新建用户test并指定表空间test create user test identified by test default tablespace test; grant dba to test;
- 
模拟数据直至空间不足 create table test as select * from dba_segments; insert into test select * from test; 
- 
增加数据文件 alter tablespace test add datafile '/u01/app/oracle/oradata/orcl/test02.dbf' size 5M autoextend on;
- 
再次复制数据 insert into test select * from test; 
- 
检查数据文件 
  
模拟破坏
- 
删除文件test02.dbf cd /u01/app/oracle/oradata/orcl rm -f test02.dbf
- 
再次插入数据报错 
  
- 
关库报错,强制重启到mount阶段 
  
- 
检查日志 
  
- 
检查文件目录 
  
恢复过程
- 
恢复数据文件 alter database create datafile 7; 
- 
检查数据文件目录,test02.dbf恢复出来了,但是文件大小不对 
  
- 
继续恢复,追加归档 recover datafile 7; - 复核数据文件目录,文件大小已恢复
  
- 
开库 
  
- 
验证 
  
参考官方文档(ID 286355.1)