데이터 베이스 MySQL 튜토리얼 Oracle ORA-00600 6002错误的解决方法

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

Jun 07, 2016 pm 05:46 PM
oracle

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

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

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? Apr 02, 2025 pm 03:48 PM

GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? GO에서 개발할 때 Oracle 데이터베이스에 연결하는 것이 일반적인 요구 사항입니다 ...

Oracle PL/SQL Deep Dive : 마스터 링 절차, 기능 및 패키지 Oracle PL/SQL Deep Dive : 마스터 링 절차, 기능 및 패키지 Apr 03, 2025 am 12:03 AM

Oraclepl/SQL의 절차, 기능 및 패키지는 각각 작업, 반환 값 및 구성 코드를 구성하는 데 사용됩니다. 1. 프로세스는 출력 인사와 같은 작업을 수행하는 데 사용됩니다. 2. 함수는 두 숫자의 합계와 같은 값을 계산하고 반환하는 데 사용됩니다. 3. 패키지는 관련 요소를 구성하고 재고를 관리하는 패키지와 같은 코드의 모듈성 및 유지 가능성을 향상시키는 데 사용됩니다.

ERP 시스템 소프트웨어는 무엇입니까? 권장 ERP 시스템 소프트웨어 ERP 시스템 소프트웨어는 무엇입니까? 권장 ERP 시스템 소프트웨어 Apr 03, 2025 pm 12:54 PM

ERP 소프트웨어를 선택할 때는 먼저 산업, 규모, 예산 및 IT 인프라를 포함한 기업의 요구를 명확히 한 다음 핵심 비즈니스 프로세스에 따라 요구 사항을 충족하는 시스템을 선택하십시오. 일반적인 ERP 시스템에는 다음이 포함됩니다. SAP에는 강력한 기능이지만 비싼 기능을 갖춘 대기업에 적합합니다. Oracle은 포괄적 인 기능을 가지고 있지만 비싸며 대기업에 적합합니다. Odoo는 중소 기업에 적합하며 저렴한 비용과 사용자 정의가 가능합니다. SAAS ERP는 클라우드에 배치되어 주문형 비용을 지불하며 빠르게 개발하는 기업에 적합합니다. 선택하기 전에 시험을 실시하고 전문적인 조언을 문의하며 애프터 판매 서비스에주의를 기울여 가장 적합한 ERP 시스템을 선택해야합니다.

산성 특성 이해 : 신뢰할 수있는 데이터베이스의 기둥 산성 특성 이해 : 신뢰할 수있는 데이터베이스의 기둥 Apr 08, 2025 pm 06:33 PM

데이터베이스 산 속성에 대한 자세한 설명 산 속성은 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기위한 일련의 규칙입니다. 데이터베이스 시스템이 트랜잭션을 처리하는 방법을 정의하고 시스템 충돌, 전원 중단 또는 여러 사용자의 동시 액세스가 발생할 경우에도 데이터 무결성 및 정확성을 보장합니다. 산 속성 개요 원자력 : 트랜잭션은 불가분의 단위로 간주됩니다. 모든 부분이 실패하고 전체 트랜잭션이 롤백되며 데이터베이스는 변경 사항을 유지하지 않습니다. 예를 들어, 은행 송금이 한 계정에서 공제되지만 다른 계정으로 인상되지 않은 경우 전체 작업이 취소됩니다. BeginTransaction; updateAccountssetBalance = Balance-100WH

마스터 SQL 한계 절 항의 : 쿼리의 행 수 제어 마스터 SQL 한계 절 항의 : 쿼리의 행 수 제어 Apr 08, 2025 pm 07:00 PM

sqllimit 절 : 쿼리 결과의 행 수를 제어하십시오. SQL의 한계 절은 쿼리에서 반환 된 행 수를 제한하는 데 사용됩니다. 이것은 대규모 데이터 세트, 페이지 진화 디스플레이 및 테스트 데이터를 처리 할 때 매우 유용하며 쿼리 효율성을 효과적으로 향상시킬 수 있습니다. 구문의 기본 구문 : SelectColumn1, Collect2, ... Fromtable_namelimitnumber_of_rows; 번호_of_rows : 반환 된 행 수를 지정하십시오. 오프셋이있는 구문 : SelectColumn1, Column2, ... Fromtable_namelimitOffset, number_of_rows; 오프셋 : skip

최고 HR 서비스 회사는 시스템을 블레이드 페이프로 완벽하게 대체합니다. 최고 HR 서비스 회사는 시스템을 블레이드 페이프로 완벽하게 대체합니다. Apr 08, 2025 pm 01:33 PM

기업은 종종 인적 자원 관리 시스템 (HRMS) 업그레이드, 특히 다운 타임 최소화와 같은 시스템 교체에 큰 어려움에 직면 해 있습니다. 이 기사는 실제 HR 서비스 회사가 HRMS 시스템을 데이터 마이그레이션 도구로 원활하게 교체 할 수있는 방법을 설명하기 위해 실제 예제를 사용합니다. 비즈니스 아키텍처 및 요구 사항 회사는 이전 시스템을보다 강력한 새로운 HRMS 시스템으로 대체하는 것을 목표로합니다. 이전 시스템은 직원 계약, 급여, 사회 보장 및 사무실 위치와 같은 정보 관리를 다룹니다. 새로운 시스템은 더 많은 데이터를 처리해야하므로 시스템의 데이터 저장소를 재건해야합니다. 기술 아키텍처 및 데이터 마이그레이션 전략 이전 시스템은 Oracle 데이터베이스를 기반으로하는 반면 새로운 시스템은 MySQL 데이터베이스를 사용합니다. 시스템 교체 중 HR 서비스의 연속성을 보장하고 네트워크를 처리합니다.

SQL Plus를 사용하는 방법 SQL Plus를 사용하는 방법 Apr 09, 2025 pm 06:18 PM

SQL*Plus는 Oracle 데이터베이스와 상호 작용하기위한 명령 줄 도구입니다. 주요 기능에는 SQL 문 실행, 데이터 쿼리, 테이블 작성 및 사용자 관리가 포함됩니다. 사용하기 쉽고 크로스 플랫폼 호환성이 있으며 Oracle 데이터베이스에 대한 강력한 액세스를 제공하지만 명령 줄 인터페이스로 제한되며 그래픽 사용자 인터페이스가 부족합니다.

MySQL과 SQL도 동일합니다 MySQL과 SQL도 동일합니다 Apr 08, 2025 pm 05:12 PM

MySQL과 SQL은 쌍둥이가 아닌 형제입니다. SQL은 데이터베이스 쿼리 언어 표준이며 MySQL은 SQL 표준을 따르는 관계형 데이터베이스 관리 시스템 (RDBMS)입니다. SQL은 데이터베이스와 상호 작용하는 규칙을 정의하며 MySQL은 이러한 규칙을 구체적으로 구현하는 것입니다. 표준 SQL 문은 SQL 표준을 준수하는 모든 데이터베이스 시스템에서 실행될 수 있지만 미세 조정이 필요할 수 있습니다. 특정 데이터베이스 시스템에 특정한 함수 및 구문은 MySQL의 load_file () 함수와 같은 해당 시스템에만 적용됩니다. SQL 학습은 MySQL 및 기타 세부 사항을 배우는 동안 모든 데이터베이스 시스템을 작동하는 데 필수적입니다.

See all articles