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
本文永久更新链接地址:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

PHP는 웹사이트 개발에 널리 사용되는 백엔드 프로그래밍 언어로, 강력한 데이터베이스 운영 기능을 갖추고 있으며 MySQL과 같은 데이터베이스와 상호 작용하는 데 자주 사용됩니다. 그러나 한자 인코딩의 복잡성으로 인해 데이터베이스에서 잘못된 한자를 처리할 때 문제가 자주 발생합니다. 이 기사에서는 잘못된 문자의 일반적인 원인, 솔루션 및 특정 코드 예제를 포함하여 데이터베이스에서 중국어 잘못된 문자를 처리하기 위한 PHP의 기술과 사례를 소개합니다. 문자가 왜곡되는 일반적인 이유는 잘못된 데이터베이스 문자 집합 설정 때문입니다. 데이터베이스를 생성할 때 utf8 또는 u와 같은 올바른 문자 집합을 선택해야 합니다.

MySQL 데이터베이스 관리 시스템의 기본 원리 분석 MySQL은 데이터 저장 및 관리를 위해 구조화된 쿼리 언어(SQL)를 사용하는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 글에서는 데이터베이스 생성, 데이터 테이블 설계, 데이터 추가, 삭제, 수정 및 쿼리 등을 포함한 MySQL 데이터베이스 관리 시스템의 기본 원리를 소개하고 구체적인 코드 예제를 제공합니다. 1. 데이터베이스 생성 MySQL에서는 먼저 데이터를 저장할 데이터베이스 인스턴스를 생성해야 합니다. 다음 코드는 "my
