Oracle数据恢复:kcbz_check_objd_typ_3 错误处理

在一次数据恢复之后,遇到了ORA-00600 kcbz_check_objd_typ_3错误,在此记录一下。

首先 kcbz_check_objd_typ_3 这个错误的含义是:
当Oracle在检查内存中的数据块时,发现数据块上的对象号是错误的,随之抛出kcbz_check_objd_typ_3 这个异常。
通常这个错误意味着存在着数据损坏。

在我们遇到的案例中,用户首先是由于存储损坏引入的问题,我们修复后出现这个错误,这个错误在后台执行AWR采样时触发,临时性的,我们可以禁用AWR采样,从而规避这个问题,彻底修复由于AWR字典表引起的问题,可以通过重建AWR对象实现。

错误类似如下提示:

ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []

有时候这个错误还可能和Space Advisor任务有关,禁用该JOB也可以临时性的消除这个问题,某些BUG需要补丁才能解决:

exec dbms_scheduler.disable('AUTO_SPACE_ADVISOR_JOB');
alter system flush buffer_cache;

与此有关的BUG是:
Bug 4430244 - Segment advisor can load blocks of dropped objects into buffer cache (KCB OERI errors) (Doc ID 4430244.8)

当遇到这个错误时,应当查看跟踪文件,通过跟踪文件来进行进一步的判断。

时间: 2024-10-03 00:11:01

Oracle数据恢复:kcbz_check_objd_typ_3 错误处理的相关文章

Oracle数据恢复顾问(Data Recovery Advisor)

Oracle数据恢复顾问用于当数据发生错误或故障时,进行自动收集数据故障信息,并生成恢复脚本,用于完成数据恢复.数据恢复顾问也可以主动检查故障. 在这种模式下,它可以在数据库进程发现数据损坏并发出错误之前进行潜在的检测并分析数据故障.数据故障可能非常严重. 例如,如果您当前的日志文件丢失,则无法启动你的数据库. 一些数据故障(如数据文件中的块损坏)不是灾难性的他们不会将数据库关闭或阻止您启动Oracle实例. 数据恢复顾问处理这两种情况:当您无法启动数据库时(因为某些情况)所需的数据库文件丢失,

解决jdbc连接oracle协议适配器错误

oracle|错误|解决 解决oracle协议适配器错误 现象:jdbc连接oracle817 for Linux出现适配器错误,sqlplus连接正常. 方法:编辑init.ora文件屏蔽 mts_dispatchers = "(PROTOCOL=TCP)(SER=MODOSE)" 重新启动oracle. import java.sql.*;import java.lang.*;import java.util.*; class testjdbc { public static vo

Oracle数据库配置错误信息

oracle|错误|数据|数据库     Oracle数据库配置错误信息     Oralce数据库的错误信息经常会出现,我们看见的都是错误的代码,至于错误原因究竟是什么还一时半会难以解答,所以就把一些常见的错误整理了一下,来看看也许对你有帮助的.1.   Oracle客户端网络配置:          在Oralce产品安装完成后,为了与数据库服务器进行连接或者是两台数据库之间进行数据复制,则必须进行网络连接配置.          Oracle9i Net Service配置方法:     

Oracle建库错误的排除

  一次Oracle建库错误的排除,无法在指定的范围内为以下进程分配端口解决 前几天安装Oracle数据库.按照说明配置Linux环境,安装rpm,然后先安装10.2.0.1安装包,完了之后又安装10.2.0.4补丁,最后打em补丁.到这一切正常,我开始用dbca创建数据库,结果报错误如下: 1 严重: 无法在指定的范围内为以下进程分配端口: JMS [5540-5559],RMI [5520-5539],Database Control [5500-5519],EM Agent [3938]

Oracle数据恢复:错误叠加导致灾难不可恢复解决办法

客户第一次找我的时候,我告诉他,把硬盘拿给我们,我们可以将其中的数据恢复出来. 第二天客户说,硬盘被格式化重做了系统. 客户第二次找我时,我说,把剩余的三个文件给我,我可以帮你挽救其中残存的有用数据. 第二天客户说,已经拿备份,把那三个文件刷新覆盖了. 这个故事给我们的警戒是:备份,备份,备份,再多一份也不算多:故障处理,再加一万个小心也不算多. 最初的一个简单故障,在层层错误之后,彻底不可挽回,这是多年来我见到最富有戏剧性的恢复案例. 看一看这个故障的信息,首先是一个写错误,Windows中比

Oracle ORA-00600 6002错误的解决方法

以下是最近在用户数据恢复中遇到的错误: *** 2012-03-08 13:56:04.178 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [6002], [0], [0], [4], [0], [], [], [] ----- PL/SQL Call Stack -----   object      line  object   handle    number  name 57cce5

关于Oracle数据恢复的两个临界点

有的网友对我之前写的一篇技术博文中的描述提出了疑问,http://blog.itpub.net/23718752/viewspace-1436965/ 其中的主要意思是:oracle中采用了undo+redo机制来作为数据恢复的基石,数据的恢复是通过前后台结合来实现的,在缓存级别,通过dbwr,能够把修改后的数据块刷入数据文件,这是一个异步的过程,不会因为发生数据变更就马上写入数据文件,同时存在log buffer,能够通过log buffer生成redo日志,最后通过lgwr把这部分变更刷到r

在MTS使用ODP读写Oracle是出现错误:无法加载 OraMTS 的解决办法

oracle|错误|加载|解决 在Oracle数据库的机器上操作:1.根据KB 193893, 在Oracle里面建立两个视图,请使用SYS账号.   脚本的默认路径在:oracle\ora92\rdbms\admin\xaview2.建立两个视图以后,需要给这两个新建立的视图添加Public权限:   SQL>grant select on v$xatrans$ to public with grant option;    SQL>grant select on v$pending_xat

关于在Windows中安装Oracle碰到ORA-12638错误的解决方法

oracle|window|错误|解决 今天应邀安装一个Windows上的Oracle9i数据库 不想居然碰到了一些问题 1.安装完Oracle9201软件 2.安装完Oracle9205 patchset 3.dbca创建数据库,创建过程中碰到ORA-12638错误,凭证检索失败,创建数据库失败 4.由于保存了创建脚本,所以决定用脚本执行,看看错在哪儿 5.dbca先删除了刚才创建了半半拉拉的数据库 6.运行脚本,在connect system/change_on_install as sys