###########################################################################
 
SQL> create tablespace test datafile '/u01/app/oracle/oradata/orcl/test01.dbf' size 10M autoextend on next 1M;
 
Tablespace created.
 
SQL> create table test(id number,name varchar2(12)) tablespace test;                                              
Table created.
 
SQL> insert into test values (1,'colin');
 
1 row created.
 
SQL> insert into test values (2,'janey');
 
1 row created.
 
SQL> insert into test values (3,'tom');
 
1 row created.
 
SQL> insert into test values (4,'adele');
 
1 row created.
 
SQL> commit;
 
Commit complete.
 
SQL> select * from test;
 
        ID NAME
---------- ------------
         1 colin
         2 janey
         3 tom
         4 adele
 
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/test01.dbf' offline drop;
 
Database altered.
 
SQL> commit;
 
Commit complete.
 
SQL> select * from test;
select * from test
              *
ERROR at line 1:
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/test01.dbf'
 
SQL> select LOG_MODE,OPEN_MODE from v$database;
 
LOG_MODE     OPEN_MODE
------------ ----------
NOARCHIVELOG READ WRITE
 
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/test01.dbf' online;
alter database datafile '/u01/app/oracle/oradata/orcl/test01.dbf' online
*
ERROR at line 1:
ORA-01113: file 2 needs media recovery
ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/test01.dbf'
 
SQL> recover datafile '/u01/app/oracle/oradata/orcl/test01.dbf';
Media recovery complete.
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/test01.dbf' online;
 
Database altered.
 
SQL> select * from test;
 
        ID NAME
---------- ------------
         1 colin
         2 janey
         3 tom
         4 adele
 
恢复成功。那是因为日志还没有切换,使用了online日志。
 
###########################################################################
 
切换日志来测试:
 
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/test01.dbf' offline drop;
 
Database altered.
 
SQL> select * from test;
select * from test
*
ERROR at line 1:
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/test01.dbf'
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> /
 
System altered.
 
SQL> /
/
 
System altered.
 
SQL> 
System altered.
 
SQL> recover datafile '/u01/app/oracle/oradata/orcl/test01.dbf';
ORA-00279: change 654004 generated at 07/09/2012 21:07:18 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/arch/1_32_777559117.arc
ORA-00280: change 654004 for thread 1 is in sequence #32
 
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> /
 
System altered.
 
SQL> recover datafile '/u01/app/oracle/oradata/orcl/test01.dbf';
ORA-00279: change 654004 generated at 07/09/2012 21:07:18 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/arch/1_32_777559117.arc
ORA-00280: change 654004 for thread 1 is in sequence #32
 
Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log '/u01/app/oracle/arch/1_32_777559117.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
 
ORA-00308: cannot open archived log '/u01/app/oracle/arch/1_32_777559117.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
 
###########################################################################
通过以上测试表明,在非归档模式下使用了alter database datafile 'XXX' offline drop命令是不能被恢复的,虽然我上面的第一次实验成功了,那是因为online日志还没有切换,在日志中还能够找到相应的反操作。在第二个实验中,手工切换日志,会提示不能打开归档日志,因为我根本就没有归档,肯定找不到啊,所以不能够恢复的。切记,在非归档模型下不要随意使用一些drop命令,在实际生产环境中日志的切换是很频繁且快的,否则只有掏钱找oracle了。当然,如果在业务不繁忙的系统可以及时的通过online日志进行恢复,这种几率比较小。
 

使用alter database datafile 'XXX' offline drop 是否能够恢复(非归档模式下)的更多相关文章

  1. 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

    测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...

  2. 关于alter database datafile offline和alter database datafile offline drop 的区别

    转: https://blog.csdn.net/killvoon/article/details/46913183 -----------------------2015-07-16-------- ...

  3. 非归档数据文件offline的恢复

    本文主要介绍非归档模式下offline数据文件的恢复,测试过程如下: SQL> select * from v$version where rownum<3; BANNER ------- ...

  4. rman datafile恢复(归档模式)

    模拟环境   1. 做操作之前先备份数据库 RMAN> run {   # Hot database level 0 whole backup   allocate channel t1 typ ...

  5. Use ALTER DATABASE to Move Databases

    Use ALTER DATABASE to Move Databases Follow Our Daily Tips •facebook.com/TechNetTips• twitter.com/Te ...

  6. sql server:alter database name

    --step 1 : 修改数据库名称 USE master GO ALTER DATABASE GeovinDuCms SET SINGLE_USER WITH ROLLBACK IMMEDIATE ...

  7. [Hive - LanguageManual] Create/Drop/Alter Database Create/Drop/Truncate Table

    Hive Data Definition Language Hive Data Definition Language Overview Create/Drop/Alter Database Crea ...

  8. 丢失全部控制文件,noresetlogs重建控制文件,alter database open

    測试2: (1)一致性的全备 SQL> shutdown immediate; $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak ...

  9. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

随机推荐

  1. WebGL编程指南案例解析之3D视图视区问题

    var VSHADER_SOURCE = 'attribute vec4 a_Position;\n' + 'attribute vec4 a_Color;\n' + 'uniform mat4 u_ ...

  2. UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等) 分类: iOS学习-UI 2015-06-30 20:01 119人阅读 评论(0) 收藏

    UIView 视图类,视图都是UIView或者UIView子类 UIWindow 窗口类,用于展示视图,视图一定要添加window才能显示 注意:一般来说,一个应用只有一个window 创建一个UIW ...

  3. lintcode 刷题 by python 总结(1)

    博主之前在学习 python 的数据结构与算法的基础知识,用的是<problem-solving-with-algorithms-and-data-structure-using-python& ...

  4. Android manifest 获取源代码

    /********************************************************************************* * Android manifes ...

  5. 我的第一个Mybatis程序

    第一个Mybatis程序 在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“i ...

  6. 1010. Radix (25) pat

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  7. matplotlib 双y轴绘制及合并图例

    关键函数:twinx() refer to: https://www.cnblogs.com/Atanisi/p/8530693.html

  8. ballerina 学习 三十二 编写安全的程序

      ballerina编译器已经集成了部分安全检测,在编译时可以帮助我们生成错误提示,同时ballerina 标准库 已经对于常见漏洞高发的地方做了很好的处理,当我们编写了有安全隐患的代码,编译器就已 ...

  9. koa 知识点

    1. Koa 不支持 直接调用底层 res 进行响应处理.请避免使用以下 node 属性: res.statusCode res.writeHead() res.write() res.end() 2 ...

  10. FineUI 修改config表属性

    此功能可用来设置系统的不同的标题 private void SelectSystem() { ConfigHelper.Title = DropDownList1.SelectedText; Conf ...