###########################################################################
 
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. C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得

    在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...

  2. jquery deferred promise

    <script type="text/javascript">/* Deferredstate (then,done, fail, always,pipe, progr ...

  3. stm32 继电器的配置

    你可以把继电器当成一个led来控制,只不过就是电路图不一样,但配置原理是一样的, 控制相对应的GPIO口,推挽输出,就行了,然后仿真一下就会发现哒哒哒的声音.

  4. .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况

    一个简单的 Task 不会消耗多少时间,但如果你不合适地将 Task 转为同步等待,那么也可能很快耗尽线程池的所有资源,出现类似死锁的情况. 本文将以一个最简单的例子说明如何出现以及避免这样的问题. ...

  5. codeforces 724c Ray Tracing

    好题 原题: There are k sensors located in the rectangular room of size n × m meters. The i-th sensor is ...

  6. LG3369 【模板】普通平衡树

    题意 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多个相 ...

  7. 自动AC机

    可以在lemon和cena环境下使用. #include<iostream> #include<cstdio> #include<cstring> #include ...

  8. systemd开机启动

    SUMMARY = "rvc_os temporary version" HOMEPAGE = "http://www.desay-svautomotive.com&qu ...

  9. proc文件系统漫谈

    1. /proc/buddyinfo:/proc/buddyinfo是linuxbuddy系统管理物理内存的debug信息. 在linux中使用buddy算法解决物理内存的外碎片问题,其把所有空闲的内 ...

  10. 来自官方的一些dbt 最佳实践

    限制对原始数据的依赖性 您的项目将取决于存储在数据库中的原始数据.我们建议制作所谓的“基本模型”,以最大限度地减少对原始数据表的依赖性.在此约定中,基本模型可以具有以下职责: 仅选择与当前分析相关的字 ...