丢失归档日志文件后数据库应当如何恢复[2]

作者&投稿:黎卿 (若有异议请与网页底部的电邮联系)
~

  这里是Oracle使用其硬线路的位置 由于转储的数据文件不能恢复到与其他文件一致的位置 所以可能存在中断的数据并且Oracle不允许正常打开数据库

  第 步 设置未文档化的实例参数并打开数据库

  在初始化参数文件中首先需要将job_queue_processes设置为 然后设置_allow_resetlogs_corruption=TRUE 更改该参数后 切换到保存新控制文件的目录 第一步创建的位置 然后以 SYSDBA连接并运行新的控制文件创建脚本

  此时数据库可以打开了

  SQL> SELECT COUNT(*) FROM OE orders;

  第 步 执行导出并提取数据

  在这一步可以很容易的看到那些表导出了全部的数据

  第 步 转储备份的数据库

  这一步 以及下面两步可选 这三步结合在一起允许提取更多的数据 这一步从备份的数据库转储可以高效的撤销任何由于使用_allow_resetlogs_corruption参数造成的毁坏 因此 这一步不会恢复任何丢失的数据文件

  第 步 使毁坏的数据文件offline

  ALTER DATABASE DATAFILE /u /oradata/PRD/ordtab dbf OFFLINE;

  这一步得到数据库的完全一致性状态

  第 步 执行导出并提取额外的数据

  这一步可能能够提取从第四步不能提取的额外数据 如索引中的数据

  第 步 转储数据库

  这是最后一次转储数据库 这一步正式回滚数据库到使用隐含参数前那一刻 然后将数据库返回到正常状态 如果从第五步转储以来没有更新任何数据 可以跳过这一步

  第 步 删除有问题的表空间

  首先需要查看是否有完整性约束限制 使用以下查询

  SELECT CR constraint_name  FROM dba_constraints CR dba_constraints CP dba_tables TP dba_tables TR  WHERE CR r_owner = CP owner  AND CR r_constraint_name = CP constraint_name  AND CR constraint_type = R   AND CP constraint_type IN ( P U )  AND CP table_name = TP table_name  AND CP owner = TP owner  AND CR table_name = TR table_name  AND CR owner = TR owner  AND TR tablespace_name <> ORDTAB   AND TP tablespace_name = ORDTAB ;

  如果有约束 可能需要创建重建脚本 如果使用export dump重建数据 约束可以从导出文件转储

  DROP TABLESPACE ordtab INCLUDING CONTENTS CASCADE CONSTRAINTS;

  第 步 重建表空间

  第 步 重建数据

  执行导入后 结束

lishixinzhi/Article/program/SQL/201311/16188



深入解析Oracle数据库安全策略
答:每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。3.回滚段用于存储正在进行的事务(为未提交...

使用Rman备份的归档日志恢复数据库时,需要先还原归档日志吗
答:Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)Kernel \r on an \m [oracle@linux3 ~]$ sqlplus -V SQL*Plus: Release 11.2.0.1.0 Production a、备份数据文件及归档日志 RMAN> list backup of archivelog all; --->列出当前数据库已经备份的归档日志 specification does ...

oracle数据库恢复方法(oracle数据库恢复数据)
答:安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。注:恢复必须要有以下文件a、初始化参数文件INIT.ORAb、所有数据文件.dbfc、所有重做日志文件(联机日志、归档日志)redod、所有控制文件crtle、internal密码文件。

配置归档日志,让数据库管理更加顺畅
答:三 设置归档文件的存储位置 在操作系统管理中 系统管理员往往会重新设置我的文档 IE收藏夹等存储位置 以防止系统奔溃时这些数据的丢失 其实 在Oracle归档日志文件管理中也是如此 当数据库管理员把日志操作模式从非归档模式转换为归档模式时 需要根据实际情况 重新设置归档文件的存储位置 当数据库处于归档模式...

oracle数据库怎么备份恢复
答:(1) 完全介质恢复可恢复全部丢失的修改。一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。(2) 不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损的数据库,使其恢复...

数据库损坏如何处理
答:控制文件损坏的恢复 由于某种原因,例如介质损坏导致所有控制文件都不可用时,管理员可以使用RMAN的控制文件自动备份,对控制文件进行恢复。为了描述的方便,这里我们假设在一套归档方式运行的数据库中,所有控制文件由于介质损坏导致不可用。其他数据库文件,包括数据文件、参数文件(SPFILE)、归档日志文件、联机...

LOG FILE 归档怎样做
答:Oracle以循环方式向日志文件写入:当第一个日志文件被填满时,就向第二个文件写入,依次类推,到所有日志文件都被填满时,就又回到第一个日志文件,用新事务的数据对其进行重写。当数据库运行在ARCHIVELOG模式时,数据库在重写日志文件前将先对其进行备份。这些归档日志文件可以在任何时候用来恢复数据库的...

redo日志的作用是什么?
答:在Oracle数据库中,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。Archive redo log归档日志(archive log)主要用于硬件级别的错误。这就要使用归档日志文件,通过归档日志文件。...

oracle数据库一般需要备份那些文件?
答:数据文件,控制文件,联机日志文件,初始化参数文件,口令文件,还有归档日志文件。。。

如何提取RMAN备份的归档日志文件
答:s: 日志序列号:S: 日志序列号(带有前导0)t: 重做线程编号.T: 重做线程编号(带有前导0)a: 活动ID号 d: 数据库ID号 r RESETLOGS的ID值.从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.2,使用LOG_ARCHIVE_DEST配置归档位置 如果不使用备用...