一.故障描写叙述

首先是实例恢复须要用到的REDO文件损坏

二、解决方法

1.对于非当前REDO或者当前REDO可是无活动事务使用下面CLEAR命令:

用CLEAR命令重建该日志文件SQL>alter database clear logfile group 3。

假设是该日志组还没有归档,则须要用SQL>alter database clear unarchived logfile group 3;

由于是当前实例恢复须要用的REDO,且未归档。使用是CLEAR命令不行的。

2.没备份,有备份能够參考下面:

拷贝有效的数据库的全备份,并不全然恢复数据库

能够採用获取近期的SCN的办法用until scn恢复或用until cnacel恢复

recover database until cancel

  先选择auto。尽量恢复能够利用的归档日志。然后又一次

recover database until cancel

这次输入cancel,完毕不全然恢复,也就是说恢复两次。如:

SQL> recover database until cancel;

Auto

……

SQL> recover database until cancel;

Cancel;

、利用alter database open resetlogs打开数据库

说明:

这样的办法恢复的数据库是一致的不全然恢复。会丢失当前联机日志中的事务数据

这样的方法适合于归档数据库而且有可用的数据库全备份。

恢复成功之后,记得再做一次数据库的全备份。

建议联机日志文件一定要实现镜相在不同的磁盘上,避免这样的情况的发生,由于不论什么数据的丢失对于生产来说都是不容许的。

3.改动隐含參数_allow_resetlogs_corruption

_allow_resetlogs_corruption=TRUE

又一次启动数据库,利用until cancel恢复

SQL>recover database until cancel;

Cancel

假设出错,不再理会,发出

SQL>alter database open resetlogs;

数据库被打开后,立即运行一个full export

shutdown数据库,去掉_all_resetlogs_corrupt參数

二、參考EYGLE:ORA-00600 kcratr1_lostwrt之解决与原理分析

ksedmp: internal or fatal error

ORA-00600: internal error code, arguments: [kcratr1_lostwrt], [], [], [], [], [], [], []

Current SQL statement for this session:

alter database open

这个错误不难解决,可是其详细成因有点意思。

Metalink对这个错误的解释仅仅有一句关键:

When an instance is restarted following an instance crash, Oracle carries out some checks against the last block that was written to disk prior to the instance crash.

If Oracle finds an old block, then this suggests a lost write and the  error is raised.

这句话是说,当实例崩溃之后启动,Oracle会去检查崩溃前最后一个写出的数据块,通过控制文件校验其是否一致,假设这个块是Old的,则说明最后的写操作丢失了。



这是一个很快捷巧妙地推断。假设有写丢失,自然必须引入恢复。

在跟踪文件里记录了具体的信息:

Last BWR afn: 6 rdba: 0x18f9590(blk 1021328) ver: 0x0001.5c21fd6e.01 flg: 0x04

Disk version: 0x0001.5c1ec4f0.04 flag: 0x04

提示说。控制文件记录的最后一次写的数据块是file6 block 1021328,SCN版本号为:5c21fd6e,而数据文件上记录的SCN则是5c1ec4f0,后者Old,小于前者,这说明丢失了写操作。



那是否能恢复呢?跟踪文件中还会记录这种信息:

Thread checkpoint rba:0x00dfeb.00000002.0010 scn:0x0001.5c1ee5b7

On-disk rba:0x00dfeb.0001161f.0000 scn:0x0001.5c2266d6

线程检查点的SCN为5c1ee5b7。而On-Disk Rba的SCN为5c2266d6,全然能够推演超过5c21fd6e,能够恢复。



所以这种问题:

SQL>startup mount;

SQL>recover database;

SQL>alter database open;

一般就能够完毕恢复了。假设不幸的,你的On-Disk Rba不足以恢复丢失的写操作。则问题将严重了。

參考:http://blog.itpub.net/25964700/viewspace-709097/      http://www.eygle.com/archives/2010/05/ora-00600_kcratr1_lostwrt.html

简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错的更多相关文章

  1. 【svn】在提交文件是报错:previous operation has not finished;run 'cleanup' if it was interrupted

    1.svn在提交文件是报错:previous operation has not finished;run 'cleanup' if it was interrupted2.原因,工作队列被占用,只需 ...

  2. R.java 文件内报错:Underscores can only be used with source level 1.7 or greater。

    R.java 文件内报错:Underscores can only be used with source level 1.7 or greater 网上查找后得知是Android工程图片资源命名的问 ...

  3. 如何快速解决myeclipse中导入jquery文件的报错。

    如何快速解决myeclipse中导入jquery文件的报错. 解决: 选中错误的文件, 点击右键, 选中myeclipse,点击Exclude From Validation.

  4. Python读取CSV文件,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 727: illegal multibyte sequence

    Python读取CSV文件,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 727: illegal mul ...

  5. 导入文件 服务器报错,有可能是 开发时候是window 服务器是linux,两个系统的文件系统的/和\是相反的,要注意这块

    导入文件 服务器报错,有可能是 开发时候是window 服务器是linux,两个系统的文件系统的/和\是相反的,要注意这块

  6. java -- SSM配置完成后,能访问jsp文件不能访问html文件,报错解析

    SSM配置完成后,能访问jsp文件不能访问html文件,报错解析 在确保路径没有任何问题的,情况下,相同的页面,jsp能够正常访问,html却不能正常访问(404). 解决方法: 在web.xml中添 ...

  7. drop redo logfile current报错

    目的:在安装完毕11.2.0.4版本Oracle单实例数据库后,对日志进行格式化,删除原日志组current状态,删除报错 #对于理论学习,而带来的理解命令,因此作为记录 #查询日志状态SYS > ...

  8. spark.read.csv读取CSV文件 ArrayIndexOutOfBoundsException报错

    通过 spark.read.csv读取CSV文件时,遇到 到 ArrayIndexOutOfBoundsException报错,初步判断是缺少参数导致,放百度看看,没找引起问题相关的参数. 第一个看到 ...

  9. python引用py文件中文报错

    文件 a.py 中引用文件 b.py 如果文件b.py中包含中文,会报错. 文件hello.py中代码如下: def say_nihao(): print "你好" 文件main. ...

随机推荐

  1. 【BZOJ1014】【JSOI2008】火星人prefix

    题意: Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 ...

  2. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  3. PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql

    在一般的 Server 程序中都会有一些耗时的任务,比如:发送邮件.聊天服务器发送广播等.如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢. Swoole 的 TaskWorker 进程 ...

  4. [javase学习笔记]-7.6 thiskeyword的原理

    这一节我们来讲一个keyword.就是thiskeyword. 我们还是通过样例来看吧: class Person { private String name; private int age; Pe ...

  5. Android五天乐(第三天)ListFragment与ViewPager

    1ListFragment 今天首先学习了一种很经常使用的展示场景:列表展示. 昨天学习了使用Fragmet来取代activity进行设计.今天在托管单个fragment的基础上,掌握托管一个布局li ...

  6. LoadRunner使用入门 进行Webservice负载測试

    1.什么是LoadRunner LoadRunner是HP公司的一款付费工具,该工具是一种预測系统行为和性能的负载測试工具. 通过模拟上千万用户实施并发负载来确认和查找问题. 2.什么是负载測试 通过 ...

  7. android openGL ES2 一切从绘制纹理開始

    纹理.在openGL中,能够理解为载入到显卡显存中的图片.Android设备在2.2開始支持openGL ES2.0.从前都是ES1.0 和 ES1.1的版本号.简单来说,openGL ES是为了嵌入 ...

  8. 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】

    [064-Minimum Path Sum(最小路径和)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a m x n grid filled with ...

  9. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?(转)

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?(转) 一.总结 一句话总结:.NET是一个平台,包含多种语言,比如(C#.Visual Basic.C++/C ...

  10. nyoj--116--士兵杀敌(二)(树状数组)

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...