热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

ORA-600[13013]处理过程-mysql教程

记录一次ORA-600[13013]处理过程,在一次数据库的异常处理完成后,发现alert日志中出现ORA-600[13013]错误

记录一次ORA-600[13013]处理过程,在一次数据库的异常处理完成后,发现alert日志中出现ORA-600[13013]错误

记录一次ORA-600[13013]处理过程

在一次数据库的异常处理完成后,发现alert日志中出现ORA-600[13013]错误


Thu Mar 08 23:29:37 2012

Errors infile/opt/Oracle/diag/rdbms/chf/chf/trace/chf_smon_24137.trc (incident=38681):

ORA-00600: internal error code, arguments: [13013], [5001], [518], [4198427], [170], [4198427], [17], [], [], [], [], []

Incident details in: /opt/oracle/diag/rdbms/chf/chf/incident/incdir_38681/chf_smon_24137_i38681.trc

Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support forerror and packaging details.

Non-fatal internal error happenned whileSMON was doing flushing of monitored table stats.

SMON encountered 1 out of maximum 100 non-fatal internal errors.

trace文件中信息
从这里可以看出是对sys.col_usage$表进行update操作导致该错误发生


Dump continued from file: /opt/oracle/diag/rdbms/chf/chf/trace/chf_smon_24137.trc

ORA-00600: internal error code, arguments: [13013], [5001], [518], [4198427], [170], [4198427], [17], [], [], [], [], []

========= Dump forincident 38681 (ORA 600 [13013]) ========

*** 2012-03-08 23:29:37.400

dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)

----- Current SQL Statement forthis session (sql_id=3c1kubcdjnppq) -----

update sys.col_usage$ setequality_preds = equality_preds + decode(bitand(:flag,1),0,0,1), equijoin_preds = equijoin_preds + decode(bitand(:flag,2),0,0

,1), nonequijoin_preds = nonequijoin_preds + decode(bitand(:flag,4),0,0,1), range_preds = range_preds + decode(bitand(:flag,8),0,0,1), like_preds

= like_preds + decode(bitand(:flag,16),0,0,1), null_preds = null_preds + decode(bitand(:flag,32),0,0,1), timestamp = :timewhere obj# = :ob

jn and intcol# = :coln

MOS中关于ORA-600 [13013]描述


Format: ORA-600 [13013] [a] [b] {c} [d] [e] [f]

Arg [a] Passcount

Arg [b] Data Object number

Arg {c} Tablespace Decimal Relative DBA (RDBA) of block containing the row to be updated

Arg [d] Row Slot number

Arg [e] Decimal RDBA of block being updated (Typically same as {c})

Arg [f] Code

验证MOS中描述


SQL> selectdbms_utility.data_block_address_file(4198427) rfile,

2 dbms_utility.data_block_address_block(4198427) blocks

3 fromdual;

RFILE BLOCKS

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

1 4123

SQL> SELECTOWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, A.PARTITION_NAME

2 FROMDBA_EXTENTS A

3 WHEREFILE_ID = &FILE_ID

4 AND&BLOCK_ID BETWEENBLOCK_ID ANDBLOCK_ID + BLOCKS - 1;

Enter value forfile_id: 1

old 3: WHEREFILE_ID = &FILE_ID

new 3: WHEREFILE_ID = 1

Enter value forblock_id: 4123

old 4: AND&BLOCK_ID BETWEENBLOCK_ID ANDBLOCK_ID + BLOCKS - 1

new 4: AND4123 BETWEENBLOCK_ID ANDBLOCK_ID + BLOCKS - 1

OWNER SEGMENT_NAME SEGMENT_TY TABLESPACE PARTI

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

SYS COL_USAGE$ TABLESYSTEM

--和trace文件中异常表一致

SQL> selectobject_type,object_name fromdba_objects whereobject_id=518;

OBJECT_TYPE OBJECT_NAME

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

TABLECOL_USAGE$

--也和trace文件中异常表一致

分析异常表


SQL> ANALYZE TABLEsys.COL_USAGE$ VALIDATE STRUCTURE CASCADE;

ANALYZE TABLEsys.COL_USAGE$ VALIDATE STRUCTURE CASCADE

*

ERROR atline 1:

ORA-01499: table/indexcrossreference failure - see trace file

SQL> selectindex_name,COLUMN_NAME,COLUMN_POSITION FROMDBA_IND_COLUMNS

2 WHERETABLE_NAME='COL_USAGE$';

INDEX_NAME COLUMN_NAM COLUMN_POSITION

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

I_COL_USAGE$ OBJ# 1

I_COL_USAGE$ INTCOL# 2

SQL> setautot trace exp

SQL> SELECT/*+ FULL(t1) */ OBJ#,INTCOL#

2 FROMsys.COL_USAGE$ t1

3 MINUS

4 SELECT/*+ index(t I_COL_USAGE$) */ OBJ#,INTCOL#

5 FROMsys.COL_USAGE$ t whereOBJ# isnotnullorINTCOL# isnotnull;

norowsselected

--无记录返回

Execution Plan

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

Plan hash value: 399371572

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

| Id | Operation | Name| Rows| Bytes | Cost (%CPU)| Time

|

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

| 0 | SELECTSTATEMENT | | 4262 | 76716 | 27 (71)| 00:00:01 |

| 1 | MINUS | | | | | |

| 2 | SORT UNIQUE| | 4262 | 38358 | 9 (12)| 00:00:01 |

| 3 | TABLEACCESS FULL| COL_USAGE$ | 4262 | 38358 | 8 (0)| 00:00:01 |

| 4 | SORT UNIQUENOSORT| | 4262 | 38358 | 18 (6)| 00:00:01 |

|* 5 | INDEXFULLSCAN | I_COL_USAGE$ | 4262 | 38358 | 17 (0)| 00:00:01 |

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

--验证表两个sql是否正确(一个全表扫描,另个index 快速扫描)

SQL> SELECT/*+ index(t I_COL_USAGE$) */ OBJ#,INTCOL#

2 FROMsys.COL_USAGE$ t whereOBJ# isnotnullorINTCOL# isnotnull

3 MINUS

4 SELECT/*+ FULL(t1) */ OBJ#,INTCOL#

5 FROMsys.COL_USAGE$ t1;

OBJ# INTCOL#

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

4294951004 2

4294951004 3

4294951004 4

4294951004 26

4294951004 27

4294951037 4

4294951037 5

4294951037 6

4294951037 9

4294951037 10

4294951840 11

OBJ# INTCOL#

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

4294951840 12

4294951906 4

4294952709 3

4294952867 4

4294952867 9

16 rowsselected.

--证明index中的记录比表中多了16条

解决问题并验证


SQL> alterindexsys.I_COL_USAGE$ rebuild online;

Indexaltered.

SQL> SELECT/*+ FULL(t1) */ OBJ#,INTCOL#

FROMsys.COL_USAGE$ t1

2 3 MINUS

4 SELECT/*+ index(t I_COL_USAGE$) */ OBJ#,INTCOL#

5 FROMsys.COL_USAGE$ t whereOBJ# isnotnullorINTCOL# isnotnull

6 ;

norowsselected

SQL> SELECT/*+ index(t I_COL_USAGE$) */ OBJ#,INTCOL#

2 FROMsys.COL_USAGE$ t whereOBJ# isnotnullorINTCOL# isnotnull

3 MINUS

4 SELECT/*+ FULL(t1) */ OBJ#,INTCOL#

5 FROMsys.COL_USAGE$ t1;

norowsselected

这次出现此问题的原因是因为在更新语句中使用索引找到一条记录,然后到表中去查询时该记录不存在,,出现此错误,一般解决方法是重建索引

Oracle 单实例 从32位 迁移到 64位 方法

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2


推荐阅读
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • 本文详细介绍了如何在Debian系统中正确配置Locale,以确保多语言支持和避免常见的警告信息。 ... [详细]
  • 本文详细介绍了Debian及其衍生发行版中如何通过/etc/network/interfaces文件进行网络接口的配置,对比了Red Hat系系统的不同之处,并提供了多种常见配置示例及解析。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 在安装Oracle 11g时,CentOS 6.5系统提示交换空间不足。本文详细介绍了如何通过两种方法增加交换空间,并提供了具体步骤和命令,帮助用户解决这一问题。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
author-avatar
hjp1993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有