如果损坏的是current redo log (select group#,sequence#,archived,status from v$log;)

有两种情况:

A、   数据库是正常关闭的。当前日志组的损坏就可以直接用alter database clear unarchived logfile group n来重建。

启动数据库到mount状态

SQL> select group#,sequence#,archived,status from v$log;

GROUP#  SEQUENCE# ARC STATUS

---------- ---------- --- ----------------

1          0 YES UNUSED

3          3 NO  CURRENT

2          2 YES INACTIVE

SQL> alter database clear unarchived logfile group 3;

Database altered.

SQL> alter database open;

Database altered.

B、   如果数据库是非正常关闭(shutdown abort),current redo log 损坏,最好的恢复办法就是通过不完全恢复,可以保证数据库的一致性,但会丢失数据。

SQL> select group#,sequence#,archived,status from v$log;

GROUP#  SEQUENCE# ARC STATUS

---------- ---------- --- ----------------

1         32 NO  CURRENT

3         31 YES INACTIVE

2         30 YES INACTIVE

执行clear logfile group 1会报如下错误。

SQL> alter database clear unarchived logfile group 1;

ERROR at line 1:

ORA-01624: log 1 needed for crash recovery of instance orcl (thread 1)

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'

此时需要进行不完全恢复

RMAN> restore database;

Starting restore at 02-DEC-12

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf

channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/undotbs01.dbf

channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/backup/full_ORCL_20121202_12_1.bak

channel ORA_DISK_1: piece handle=/u01/app/oracle/backup/full_ORCL_20121202_12_1.bak tag=TAG20121202T141019

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:45

Finished restore at 02-DEC-12

SQL> recover database until cancel;

ORA-00279: change 274326 generated at 12/02/2012 14:10:20 needed for thread 1

ORA-00289: suggestion : /u01/app/oracle/oradata/arch/1_22_800911110.dbf

ORA-00280: change 274326 for thread 1 is in sequence #22

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

Auto

…………

ORA-00279: change 274396 generated at 12/02/2012 14:11:18 needed for thread 1

ORA-00289: suggestion : /u01/app/oracle/oradata/arch/1_32_800911110.dbf

ORA-00280: change 274396 for thread 1 is in sequence #32

ORA-00278: log file '/u01/app/oracle/oradata/arch/1_31_800911110.dbf' no longer

needed for this recovery

ORA-00308: cannot open archived log

'/u01/app/oracle/oradata/arch/1_32_800911110.dbf'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

SQL> alter database open resetlogs;

Database altered.

恢复到当前日志的SEQUENCE#为32,不完全恢复结束。这种办法恢复的数据库会丢失当前联机日志中的事务数据。恢复成功之后,记得再做一次数据库的全备份。

Redo current损坏的更多相关文章

  1. 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []

    07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...

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

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

  3. 简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错

    一.故障描写叙述 首先是实例恢复须要用到的REDO文件损坏 二.解决方法 1.对于非当前REDO或者当前REDO可是无活动事务使用下面CLEAR命令: 用CLEAR命令重建该日志文件SQL>al ...

  4. 关于控制文件和redo log损坏的恢复

    前段时间一朋友自己电脑上的开发测试用的数据库出了点问题,电脑操作系统是Win8,直接在Win8上安装了Oracle11g,后来系统自动升级到Win8.1,Oracle相关的服务全都不见了,想想把数据文 ...

  5. Redo 非current损坏

    Redo log 文件损坏或丢失,在启动数据库时在alert日志中会有如下错误: ORA-00313: open failed for members of log group 1 of thread ...

  6. 07 oracle 非归档模式 inactive/active/current redo log损坏的恢复

    在非归档模式下缺失Redo Log后的恢复 将之前的归档模式修改为非归档 SQL> shutdown immediate; SQL> startup mount SQL> alter ...

  7. 07 归档模式 Active redo log丢失或损坏的恢复

    环境同上一篇 模拟处于active状态的redo log损坏 sesion 1 SYS@ orcl >/ GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEM ...

  8. Oracle recover current redo ORA-00600:[4193] (oracle 故障恢复current redo日志ORA-00600:[4193]报错)

    背景:搭建了一套oracle 19c主备库(单实例非CDB,PDB),linux7.5在断电后(没有进行数据库关闭)重启数据库报错如下图,redo当前状态下进行不完全恢复主库后resetlogs 打开 ...

  9. 【恢复】 Redo文件丢失的恢复

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

随机推荐

  1. 今日SGU 5.22

    SGU 296 题意:给你一个最多1000位的数,让你删除k位使得剩下的数最大 收获:贪心 #include<bits/stdc++.h> #define de(x) cout<&l ...

  2. Docker中运行MySQL5.7并挂载宿主机目录到镜像

    原文:Docker中运行MySQL5.7并挂载宿主机目录到镜像 1.1 拉取mysql镜像 docker pull mysql:5.7 1.2 创建用于挂载的目录 mkdir -p /data/mys ...

  3. HOJ——T 2430 Counting the algorithms

    http://acm.hit.edu.cn/hoj/problem/view?id=2430 Source : mostleg Time limit : 1 sec Memory limit : 64 ...

  4. ACM-康托展开+预处理BFS之魔板——hdu1430

    魔板 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  5. CCNA Cloud CLDFND 210-451 QUIZ: Server Virtualization

    Author:海峰 http://weibo.com/344736086 http://yanheven.github.io/ http://blog.csdn.net/yanheven1 1.Whi ...

  6. 5.brackets 快捷键 有大用

    转自:https://blog.csdn.net/u012011360/article/details/41209223 ctrl+b 当选中一个文本时,会出现相同的文本,被高亮显示 按ctrl+b ...

  7. POJ 3175 枚举

    思路: 枚举小数点前 的数是啥 判一判 复杂度是根号的-.. 注意精度!!!! //By SiriusRen #include <cmath> #include <cstdio> ...

  8. Java: 数据类型

    核心:对事物的某种规范   前提: 1.JAVA:JAVA程序的运行是以堆栈的操作来完成的  堆栈以帧为单位保存线程的状态.       JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作. 理解 ...

  9. 【MinGW】【C语言环境搭建】

    问题 安装MinGW配置环境变量后终端输入gcc -v出错 解决 Win10下环境变量最后不用加分号

  10. 【习题 8-1 UVA - 1149】Bin Packing

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个背包只能装两个东西. 而且每个东西都要被装进去. 那么我们随意考虑某个物品.(不必要求顺序 这个物品肯定要放进某个背包里面的. ...