参考:How to Recover from Loss Of Online Redo Log And ORA-312 And ORA-313 (Doc ID 117481.1)

  在线重做日志文件丢失后恢复的场景包括:

  • 在线重做日志的配置:镜像或非镜像
  • 介质故障的类型:临时或永久性
  • 受故障影响的联机重做日志文件的状态类型:CURRENT,ACTIVE,UNARCHIVED或INACTIVE
  • 在丢失archivelog文件之前,数据库是否正常关闭

1,丢失多member在线重做日志组成员后恢复

  如果是多个组员联机重做日志,并且每个联机重做日志组中至少有一个成员不受介质故障的影响,则数据库将继续正常运行,但会将错误消息写入日志写入器跟踪文件 和数据库的alert_SID.log。

如果硬件问题是临时的,则修复问题。

如果硬件问题是永久性的,则删除损坏的成员并使用以下过程添加新成员。

要替换重做日志组的损坏成员:

在v$logfile中找到损坏成员的文件名。 如果文件不可访问,则状态为INVALID:

SQL> SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE WHERE STATUS='INVALID';

GROUP#    STATUS       MEMBER
------- ----------- ---------------------
0002 INVALID /oracle/oradata/trgt/redo02.log

删除损坏的日志组成员:

SQL> ALTER DATABASE DROP LOGFILE MEMBER '/oracle/oradata/trgt/redo02.log';

添加新的日志组成员:

SQL> ALTER DATABASE ADD LOGFILE MEMBER '/oracle/oradata/trgt/redo02b.log' TO GROUP 2;
##如果添加的组员已经存在
SQL> ALTER DATABASE ADD LOGFILE MEMBER '/oracle/oradata/trgt/redo02b.log' REUSE TO GROUP 2;

2,丢失inactive在线重做日志组

  • 如果是硬件损坏,修复硬件,或者更改目录
  • 日志损坏但是已经归档,可以clear掉
ALTER DATABASE CLEAR LOGFILE GROUP 2;
  • 清除未归档的损坏日志

  如果数据库已关闭,则启动新实例并装入数据库

  startup mount

  使用UNARCHIVED关键字清除日志。例如,要清除日志组2

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;

  如果存在需要清除日志使其联机的脱机数据文件,则需要关键字UNRECOVERABLE DATAFILE。必须删除数据文件及其整个表空间,因为正在清除使其联机所需的重做,并且没有它的副本。

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2 UNRECOVERABLE DATAFILE;
  • 立即备份整个数据库,包括controlfile,以便您可以使用备份进行完全恢复,而无需依赖已清除的日志组
  • 由于介质故障,ALTER DATABASE CLEAR LOGFILE语句可能会因I / O错误而失败,重新指向新的目录,或者修复介质故障

3,丢失在线redo

  • 如果缺少的日志不是最新的,只需删除日志组(alter database drop logfile group N),只有两组的话,提前要加一组
  • 如果丢失的日志是最新的,他们应该只执行虚假恢复,然后打开resetlogs
sql> connect / as sysdba
sql> startup mount
sql> recover database until cancel;
(cancel immediately)
sql> alter database open resetlogs;

注意:如果实例恢复所需的当前在线日志丢失,则必须通过最后一个可用的归档日志文件(PITR   point-in-time recovery)基于时间点恢复和恢复数据库。

oracle redo日志文件损坏恢复的更多相关文章

  1. Oracle redo 日志损坏的几种情况下的恢复

    Oracle redo 日志损坏的几种情况下的恢复 第一:损坏的redo为非正在使用的redo log 1.归档模式,不是当前正在日志损坏,数据库打开模式. 模拟损坏:SQL> select * ...

  2. Oracle备份恢复之断电导致控制文件和日志文件损坏修复

    Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...

  3. 【恢复】Redo日志文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  4. 记录SQL Server2008日志文件损坏的恢复过程

    记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...

  5. 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结

    数据库一致性关闭下redo日志文件丢失的处理办法(归档和非归档都行) 1. inactive log  在一致性关闭后删除重启时可以在mount下(不丢失数据) alter database clea ...

  6. MySQL中的 redo 日志文件

    MySQL中的 redo 日志文件 MySQL中有三种日志文件,redo log.bin log.undo log.redo log 是 存储引擎层(innodb)生成的日志,主要为了保证数据的可靠性 ...

  7. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

  8. 2. 更改InnoDB redo日志文件的数量或大小

    2. 更改InnoDB redo日志文件的数量或大小 要更改InnoDB 重做日志文件的数量或大小,请执行以下步骤: 1)停止MySQL服务器,确保正常关闭且没有错误发生 2) 编辑my.cnf以更改 ...

  9. oracle删除日志文件

    oracle删除日志文件 删除日志文件的语法例如以下: alter database drop logfile member logfile_name; 删除日志文件须要注意例如以下几点: 1.该日志 ...

随机推荐

  1. rsync:基本命令和用法

    以下是rsync系列篇: 1.rsync(一):基本命令和用法 2.rsync(二):inotify+rsync详细说明和sersync 3.rsync算法原理和工作流程分析 4.rsync技术报告( ...

  2. Anatomy of a Database System学习笔记 - 事务:并发控制与恢复

    这一章看起来是讲存储引擎的.作者抱怨数据库被黑为“monolithic”.不可拆分为可复用的组件:但是实际上除了事务存储引擎管理模块,其他模块入解析器.重写引擎.优化器.执行器.访问方式都是代码相对独 ...

  3. pydev+Eclipse搭建教程

    学习Python一直用IDLE,一直再想有没有一种类似Eclipse那样软件可以编辑Python.遂在Eclipse上安装pydev 本文是在Eclipse环境已搭建好的基础上进行pydev的插件安装 ...

  4. zookeeper、solrcloud、rediscluster集群解决方案

        集群解决方案 课程目标 目标1:说出什么是集群以及与分布式的区别 目标2:能够搭建Zookeeper集群 目标3:能够搭建SolrCloud集群 目标4:能够搭建RedisCluster集群 ...

  5. ServerSocket详解及线程阻塞_03

    ServerSocket详解构造方法ServerSocket()ServerSocket(int port)ServerSocket(int port ,int backlog)serverSocke ...

  6. 7Linux存储结构和磁盘划分

    FHS yum的.repo的配置文件多个的话,是依次生效吗? /boot 开机所需文件—内核.开机菜单以及所需配置文件等/dev 以文件形式存放任何设备与接口/etc 配置文件/home 用户主目录/ ...

  7. NGINX轻松管理10万长连接

    先说说服务为什么使用HTTPs长连接技术?有如下几个原因:对响应时间要求较高:服务走的是公网,客户端与服务端的TCP建立的三次握手和断开的四次握手都需要40ms左右(真实数据包计算出来的),共需要80 ...

  8. Grafana短信报警实现

    1.阿里云短信服务API2.Jenkins-plugin:Generic Webhook Trigger Plugin 阿里云 下载阿里云短信服务SDK 创建短信服务ACCESS_KEY_ID Gra ...

  9. Android Studio上传代码到Coding.net

    1.官方帮助文档:https://coding.net/help/doc/git/import-from-local.html 2.简单点: https://git.coding.net/javaka ...

  10. 什么是jquery

    框架就是一个半成品,不能直接使用,需要加工处理后才可使用