mysql启动6002错误_Oracle ORA-00600 6002错误的解决方法

news/2025/3/19 22:34:06/

这种错误经常是在数据库恢复之后,经常会遇到如下ORA-600 6002错误,这属于常见的,可以分析消除的错误之一,下面我们来看解决办法。

这种错误经常是在数据库恢复之后,经常会遇到如下ORA-600 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

57cce5a18 418 package body SYS.DBMS_HA_ALERTS_PRVT

57cce5a18 552 package body SYS.DBMS_HA_ALERTS_PRVT

错误现实,在执行SYS.DBMS_HA_ALERTS_PRVT包的内部任务时出现问题。

而 ORA-00600 6002 错误和索引相关,具体内容是指:

当Oracle试图去插入一个索引键值时,首先需要找到合适的位置,并且去进行相关校验,校验内容包括索引列数量、数据大小等,一旦发现不一致,则将出现ORA-600 的 6002错误。

MOS上的解释如下:

Oracle was trying to insert a key and key data into a b*tree index.

In order to do this, it had to first find the correct leaf block to do the insert.

Once the correct leaf block is retrieved, Oracle validates the block by checking the data size and number of columns in the key.

If there is a mismatch then ORA-600 [6002] is reported.

其主要的参数含义如下:

Arg [a] Number of bytes in keydata

Arg [b] Number of bytes in the index layer of the leaf header

Arg [c] Number of columns in index search key structure

Arg [d] Number of columns in the index layer fo the leaf header

所以如果遇到这个错误,首先应该找到出现问题的索引对象,可以尝试通过重建索引消除这个错误影响。

如下是跟踪文件中体现的出现错误的块头信息:

Block header dump: 0x00c086ed

Object id on Block? Y

seg/obj: 0x22a9 csc: 0x00.1c87691f itc: 12 flg: E typ: 2 - INDEX

brn: 0 bdba: 0xc086e9 ver: 0x01 opc: 0

inc: 0 exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x000a.016.00045449 0x0080027f.4951.02 C--- 0 scn 0x0000.0b0c478c

0x02 0x0014.00e.000aadce 0x01000b9f.67ea.26 C--- 0 scn 0x0000.1c876660

0x03 0x0014.01b.000aada1 0x01000b9f.67ea.17 C--- 0 scn 0x0000.1c87653d

0x04 0x000a.002.000e628d 0x00800247.6ebe.29 C--- 0 scn 0x0000.1c87691e

0x05 0x0034.00e.00000270 0x010061c8.00c6.11 ---- 1 fsc 0x0000.00000000

0x06 0x0009.01d.0001e6dc 0x0080008a.8128.37 --U- 1 fsc 0x0031.1c876923

0x07 0x0008.017.0001d3c2 0x00800080.8857.26 C--- 0 scn 0x0000.1c87613a

0x08 0x0002.02b.0001720e 0x00801355.7ebb.1f C--- 0 scn 0x0000.1c87654d

0x09 0x000a.01f.000e6254 0x00800245.6ebe.0e C--- 0 scn 0x0000.1c87683c

0x0a 0x0009.004.0001e89d 0x0080008a.8128.30 C--- 0 scn 0x0000.1c876841

0x0b 0x000a.00a.000e6279 0x0080023f.6ebe.08 C--- 0 scn 0x0000.1c87666a

0x0c 0x000a.011.000e6252 0x0080022f.6ebe.3e C--- 0 scn 0x0000.1c87613e

我们可以看到出现问题的对象号是22a9,类型正是索引。

通过数据库查询可以找到这个对象名称,通过重建索引即可解决:

代码如下

复制代码

SQL> select object_name from dba_objects where object_id=to_number('22a9','xxxxx');

OBJECT_NAME

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

WRI$_ALERT_THRESHOLD_LOG_PK

SQL> alter index WRI$_ALERT_THRESHOLD_LOG_PK rebuild online;

Index altered.

6002错误需要根据对象的不同进行分析,通常是可以通过索引重建解决的。有时候问题会出现在IOT对象上,可以通过备份数据,TRUNCATE再INSERT回插记录解决。

另一篇文章

ORA-600的3020错误,数据库在故障恢复中,应用归档日志时遇到3020错误:

ORA-00283: recovery session canceled due to errors

RMAN-11003: failure during parse/execution of SQL statement:

alter database recover logfile '/arch/prod1_2711_681480148.arc'

ORA-00283: recovery session canceled due to errors

ORA-12801: error signaled in parallel query server P011, instance hpdb1:PROD1 (1)

ORA-00600: internal error code, arguments: [3020], [37], [94633], [2], [3659], [604], [16], []

ORA-10567: Redo is inconsistent with data block (file# 37, block# 94633)

ORA-10564: tablespace APPS_UNDOTS2

ORA-01110: data file 37

出现这个错误后,恢复中断,无法继续,3020错误在Metalink上的解释,主要原因是:

This is called a 'STUCK RECOVERY'.

There is an inconsistency between the information stored in the redo

and the information stored in a database block being recovered.

也就是说,在恢复时发现Redo里面记录的信息和被恢复的数据块信息不一致,导致恢复无法继续。比如Update Some record from 3 to 2,结果发现该记录根本不是3,恢复无法继续。

这个错误可能是由于写Redo的某个操作丢失,这可能是由于异常宕机或存储故障导致的。

This error can be reported if any of these updates are lost for some reason.

出现这个错误,如果没有备份,数据也不是特别重要,则可以通过一些隐含参数或强制手段来打开数据库,不过不可避免的会出现数据损失,Olive做过一次这样的尝试 。

经过验证的可实践方式是使用:

代码如下

复制代码

recover database [using backup controlfile] allow 1 corruption;

将不一致的块标记为损坏,然后可以执行进一步的恢复尝试。

这次处理这个案例,最后选择了不完全恢复,补录数据,有时候放弃也是一种恢复!

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!


http://www.ppmy.cn/news/510952.html

相关文章

NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡重新刷机

本教程适用于已经挂载过SD卡的NX系统刷机。总结为: (1)先将系统烧录至NX板子自带系统上。 (2)再卸载SD卡、格式化、重新分区等; (3)拷贝roof到SD卡; (4)在SD卡分区上…

GP2Y0E03夏普红外测距传感器简单使用

夏普红外测距传感器规格书引脚如下 一共七个引脚,如果要改地址的话还需要用到第八个引脚(当时改地址试了半天,仔细一看数据手册还有第八个引脚),第八个引脚Vpp如下图所示 和GP2Y0E03通讯是用IIC协议,数据手…

夏普服务器安装系统,夏普云服务器

夏普云服务器 内容精选 换一换 弹性云服务器(Elastic Cloud Server)是一种可随时自动获取、计算能力可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 通过创建应用,将待…

夏普的无边框技术

最新发布的AQUOS Crystal实现了无边框的效果,其实还是有点边框的,只是边框非常小。 如下图所示: 用的是两种技术:「窄框液晶面板」和「面板切边后形成的光学镜头效果」,具体不详。

Java Web框架对比:选择适合你的项目

导言 选择合适的Java Web框架是开发成功的关键之一。本文将详细对比几个常见的Java Web框架,包括Spring MVC、JavaServer Faces (JSF)、Struts、Play Framework、Apache Wicket和Vaadin,并分析它们的特点、优缺点,以帮助您做出明智的选择。 …

NUCLEO-F411RE RT-Thread 体验 (7) - GCC环境外部中断的使用

NUCLEO-F411RE RT-Thread 体验 (7) - GCC环境外部中断的使用 1、简述 NUCLEO-F411RE开发版的蓝色按键对应PC13管脚,我们将其配成外部中断的方式,并设置低电平触发。 2、测试代码 驱动其实对应的还是之前移植好的pin驱动,所以这里不需要修…

魅蓝3 android底层,因各种不稳定 魅族要和YunOS说再见了,魅蓝3将转安卓底层

魅友都知道,魅族的魅蓝系列手机,几乎大部分机型都采用的是YunOS底层的Flyme系统,很多人用过一次就不想再用了,非常坑,用过的应该不用我多说有多坑。魅族和阿里YunOS的合作时间还是挺长的,为此还召开了战略合…

智能AI越用越快 魅族魅蓝Note5抢鲜适配Flyme6

在国产系统之中,魅族Flyme肯定算得上是一个相当出色的定制系统。早前,魅族推出了全新的Flyme6系统,在系统底层与Android M深度融合,加入了三大平行空间与全新色彩体系等功能。当然,最显著的提升就是加入了越用越快的On…