当前位置:  数据库>oracle

Oracle在归档模式下删除非系统文件的恢复

    来源: 互联网  发布时间:2017-06-09

    本文导语: 众所周知,我们的核心生产数据库通常都是在归档模式下运行的,更不用说还配置DG环境的了。开启归档,并保证所有归档不丢失,就能保证我们对数据库所做的任何修改不会丢失,归档日志可谓是恢复的根本,如果丢失归档,...

众所周知,我们的核心生产数据库通常都是在归档模式下运行的,更不用说还配置DG环境的了。开启归档,并保证所有归档不丢失,就能保证我们对数据库所做的任何修改不会丢失,归档日志可谓是恢复的根本,如果丢失归档,那么即使RMAN功能再强大,也无法对丢失的数据进行恢复。所以我们通常配置的RMAN策略就是全备+归档+控制文件自动备份。这里的归档不是指数据库创建以来生成的归档(那量也太大了),而是当进行RMAN非一致性备份时新产生的那部分归档日志,用来保证数据库可以前推到一致性状态,这样才能顺利open数据库。以下的测试只是想说明归档日志对恢复数据的重要性,并没有用到RMAN来进行恢复。

--------------------------------------分割线 --------------------------------------

Oracle 11G RAC 修改归档模式

Oracle手工完全恢复案例(归档模式)

Oracle手工恢复案例(非归档模式)

Oracle归档模式设置的相关指令与简要说明

Oracle 10g 归档模式下备份脚本

Oracle 归档模式与非归档模式的切换

--------------------------------------分割线 --------------------------------------

 
测试一:归档日志健全未丢失
 
--连接到Oracle,确保是运行在归档模式下
[oracle@ora10g ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 10.2.0.1.0 - Production on 8 13:46:53 2014
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
 
SQL> archive log list
Database log mode                 
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     172
Next log sequence to archive   174
Current log sequence           174
SQL> set lin 130 pages 130
SQL> col name for a45
SQL> select file#,name from v$datafile;
 
     FILE# NAME
---------- ---------------------------------------------
         1 /u01/app/oracle/oradata/ora10g/system01.dbf
         2 /u01/app/oracle/oradata/ora10g/undotbs01.dbf
         3 /u01/app/oracle/oradata/ora10g/sysaux01.dbf
         4 /u01/app/oracle/oradata/ora10g/users01.dbf
         5 /u01/app/oracle/oradata/ora10g/example01.dbf
 
--创建测试表空间、用户、表
SQL> create tablespace zlm_test datafile '/u01/app/oracle/oradata/ora10g/zlm01.dbf' size 50m;
 
Tablespace created.
 
SQL> create user zlm identified by zlm default tablespace zlm_test;
 
User created.
 
SQL> grant  to zlm; 
 
Grant succeeded.
 
SQL> select file#,name from v$datafile;
 
     FILE# NAME
---------- ---------------------------------------------
         1 /u01/app/oracle/oradata/ora10g/system01.dbf
         2 /u01/app/oracle/oradata/ora10g/undotbs01.dbf
         3 /u01/app/oracle/oradata/ora10g/sysaux01.dbf
         4 /u01/app/oracle/oradata/ora10g/users01.dbf
         5 /u01/app/oracle/oradata/ora10g/example01.dbf
            
 
6 rows selected.
 
SQL> create table zlm.test1 as select rownum as id,object_name from dba_objects where rownum col object_name for a15
SQL> select * from zlm.test1;
 
        ID OBJECT_NAME
---------- ---------------
         1 ICOL$
         2 I_USER1
         3 CON$
         4 UNDO$
         5 C_COBJ#
 
--查看当前online日志文件状态
SQL> select group#,status,archived from v$log;
 
    GROUP# STATUS           ARC
---------- ---------------- ---
         1 INACTIVE         YES
         2 INACTIVE         YES
            
 
--归档当前日志(多次)
SQL> alter system archive log current;
 
System altered.
 
SQL> alter system archive log current;
 
System altered.
 
SQL> alter system archive log current;
 
System altered.
 
这里进行了3次归档当前日志文件的操作,目的是使online日志被刷新,强制其归档,写到归档日志中去,因为我们要测试的是归档,否则恢复文件时,会自动去online日志中查找,即便是非归档模式,只要online日志还未被刷新,依旧是可以恢复的
 
SQL> select group#,status,archived from v$log;
 
    GROUP# STATUS           ARC
---------- ---------------- ---
         1 INACTIVE         YES
         2 INACTIVE         YES
            
 
--保险起见,再归档一次(可选)
SQL> alter system archive log current;
 
System altered.
 
SQL> select group#,status,archived from v$log;
 
    GROUP# STATUS           ARC
---------- ---------------- ---
         
         2 INACTIVE         YES
         
 
--一致性关闭数据库,在OS级别删除测试文件datafile 6
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> !
[oracle@ora10g ~]$ cd $ORACLE_BASE/oradata/ora10g
[oracle@ora10g ora10g]$ ll -lrth
total 1.7G
-rw-r----- 1 oracle oinstall  51M Sep  5 10:13 test02.dbf
-rw-r----- 1 oracle oinstall 301M Sep  5 10:13 test01.dbf
-rw-r----- 1 oracle oinstall 201M Sep 16 16:56 temp01.dbf
-rw-r----- 1 oracle oinstall  51M Sep 18 13:49 redo02.log
-rw-r----- 1 oracle oinstall  51M Sep 18 13:51 redo03.log
-rw-r----- 1 oracle oinstall  31M Sep 18 13:51 users01.dbf
-rw-r----- 1 oracle oinstall 166M Sep 18 13:51 undotbs01.dbf
-rw-r----- 1 oracle oinstall 561M Sep 18 13:51 system01.dbf
-rw-r----- 1 oracle oinstall 271M Sep 18 13:51 sysaux01.dbf
-rw-r----- 1 oracle oinstall  51M Sep 18 13:51 redo01.log
-rw-r----- 1 oracle oinstall 101M Sep 18 13:51 example01.dbf
-rw-r----- 1 oracle oinstall 7.2M Sep 18 13:52 control03.ctl
-rw-r----- 1 oracle oinstall 7.2M Sep 18 13:52 control02.ctl
-rw-r----- 1 oracle oinstall 7.2M Sep 18 13:52 control01.ctl
[oracle@ora10g ora10g]$  
[oracle@ora10g ora10g]$ exit
exit
 
--重启数据库
SQL> startup
ORACLE instance started.
 
Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size              88082000 bytes
Database Buffers          192937984 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157:  - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/ora10g/zlm01.dbf'
 
可以看到,此时是无法open数据库的,因为数据库文件物理上已经不存在,而在控制文件中是有记录的,这里提示的是“cannot identify/lock data file 6”,而当如果仅仅是物理上存在,数据文件头中的信息与控制文件中记录的数据文件头信息不一致时,会提示xxx文件需要恢复
 
--手动创建一个datafile 6
SQL> ;
 
Database altered.
 
注意,此时仅仅是创建了一个不一致的datafile 6而已,也可以通过RMAN的;命令来实现,作用是一样的

 

更多详情见请继续阅读下一页的精彩内容:


    
 
 

您可能感兴趣的文章:

  • 切换Oracle的归档模式以及非归档模式
  • oracle的归档模式 ORACLE数据库归档日志常用命令
  • 更改Oracle数据库的归档模式
  • 查看修改Oracle10G归档日志空间的限制
  • 关于Oracle将目标数据库设为归档模式应该注意的问题
  • Oracle 删除归档日志实例
  • oracle 如何关闭打开归档日志
  • Oracle数据库归档模式的切换
  • Linux下Oracle归档日志自动清理脚本代码(sh)
  • Oracle中归档模式的定义简述
  • Oracle10g自动归档设置
  • 更改Oracle数据库到归档模式
  • c/c++ iis7站长之家
  • Oracle 11G闪回数据归档新功能详述
  • win平台oracle rman备份和删除dg备库归档日志脚本
  • Oracle相关:Rman Crosscheck删除失效归档
  • Oracle切换为归档模式的步骤及问题解决
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • 在linux 中如何删除oracle db 与卸载oracle.
  • Oracle删除表前判断表名是否存在若存在则删除
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • oracle 彻底删除方法
  • Oracle删除后不能重新安装的解决方法
  • ubuntu如何彻底删除oracle
  • 彻底删除Oracle数据库的方法
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • shell脚本操作oracle删除表空间、创建表空间、删除用户
  • 技巧分享 删除Oracle10G中的垃圾表
  • Oracle删除带有空格的表
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • Linux环境下完全删除Oracle
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  • Oracle数据库备份恢复最佳实践
  • oracle如何恢复被覆盖的存储过程
  • rman恢复方案和oracle异机恢复
  • oracle数据库创建备份与恢复脚本整理
  • ORACLE 数据库RMAN备份恢复
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,