ORA-00600: 內部錯誤程式碼,引數: [6122]
分析過程:
1、tjcw資料庫後臺alert告警大量出現如下的ora-00600錯誤告警
Fri Jul 06 15:59:13 2012
Errors in file f:\oracle\admin\tjcw\udump\tjcw_ora_3200.trc:
ORA-00600: 內部錯誤程式碼,引數: [6122], [0], [1], [0], [], [], [], []
Recovery of Online Redo Log: Thread 1 Group 2 Seq 3588 Reading mem 0
Mem# 0 errs 0: F:\ORACLE\ORADATA\TJCW\REDO02.LOG
2、從 f:\oracle\admin\tjcw\udump\tjcw_ora_3200.trc日誌可以看到如下的資訊。
Block header dump: 0x0248f58c
Object id on Block? Y
seg/obj: 0x19d7e csc: 0xbae.b4053409 itc: 120 flg: E typ: 2 - INDEX
brn: 0 bdba: 0x248f589 ver: 0x01
inc: 0 exflg: 0
3、從oracle metalink的doc[ID 99300.1],可以看出ora-00600 [6122]和索引損壞有關。
4、從上面2,3兩步基本上可以確認是索引損壞導致600錯誤。
5、現在需要證實是否真的是索引損壞導致的錯誤。
A. 從seg/obj: 0x19d7e可以計算出這個Oracle的物件的object_id,因為是16機制,
需要換算成10機制。
0x19d7e=14+7*16+13*16*16+9*16*16*16+1*16*16*16*16=105854
B. 找出是什麼資料庫物件。
SQL> select owenr,object_name,object_type from dba_objects where
object_id=105854;
OWNER OBJECT_NAME OBJECT_TYPE
----------- --------------- ----------------------------------
BDCWYB SYS_EVENT_IDX_1 INDEX
C. 這個索引存放在哪些Datafile上面。
SQL>select distinct FILE_ID from dba_extents where wner='BDCWYB' and
segment_name='SYS_EVENT_IDX_1';
FILE_ID
----------
9
SQL> select file_name from dba_data_files where file_id=9;
FILE_NAME
---------------------------------------------------------------
F:\ORACLE\ORADATA\TJCW\USERS01.DBF
D. 是用Oracle dbv工具測試user01.dbf是否真的存在壞塊. 從失敗的頁總數
(索引):1再次確認存在索引壞塊.
C:\ >dbv file=F:\ORACLE\ORADATA\TJCW\USERS01.DBF
blocksize=8192
DBVERIFY: Release 9.2.0.1.0 - Production on 星期五 7月 6 15:46:23
2012
Copyright (c) 1982, 2002, Oracle Corporation. All rights
reserved.
DBVERIFY - 驗證正在開始 : FILE =
F:\ORACLE\ORADATA\TJCW\USERS01.DBF
Block Checking: DBA = 38335884, Block Type = KTB-managed data
block
**** actual rows locked by itl 1 = 1 != # in trans. header = 2
---- end index block validation
頁 587148 失敗,校驗程式碼為 6401
DBVERIFY - 驗證完成
檢查的頁總數 :589600
處理的頁總數(資料):455602
失敗的頁總數(資料):0
處理的頁總數(索引):113755
失敗的頁總數(索引):1
處理的頁總數(其它):12760
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數 :7483
標記為損壞的總頁數:0
匯入的頁總數 :0
6、從上面的分析得知,確實是索引壞塊導致的600錯誤,故需要重建索引,消除600告警.
處理步驟:
1. 從上面的分析得知確實是索引壞塊導致的600錯誤,現在重建索引,不能使用rebuild index,因為索引損壞的部分是索引段頭,rebuild index會報如下的錯誤。
SQL> alter index BDCWYB.SYS_EVENT_IDX_1
rebuild;
alter index BDCWYB.SYS_EVENT_IDX_1 rebuild c
*
ERROR 位於第 1 行:
ORA-00600: 內部錯誤程式碼,引數: [6122], [0], [1], [0], [], [], [], []
drop index BDCWYB.SYS_EVENT_IDX_1;
create index BDCWYB.SYS_EVENT_IDX_1 on BDCWYB.SYS_EVENT(EVT_GUID)
tablespace users;
2. 索引重建好了之後之後,再次檢查是否還存在壞塊,現在無壞塊。
C:\>dbv file=F:\ORACLE\ORADATA\TJCW\USERS01.DBF blocksize=8192
DBVERIFY: Release 9.2.0.1.0 - Production on 星期五 7月 6 16:35:38 2012
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - 驗證正在開始 : FILE = F:\ORACLE\ORADATA\TJCW\USERS01.DBF
DBVERIFY - 驗證完成
檢查的頁總數 :590720
處理的頁總數(資料):455602
失敗的頁總數(資料):0
處理的頁總數(索引):114951
失敗的頁總數(索引):0
處理的頁總數(其它):12760
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數 :7407
標記為損壞的總頁數:0
匯入的頁總數 :0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26634508/viewspace-735208/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-00600: 內部錯誤程式碼, 引數: [19004]
- 遇到ORA-00600: 內部錯誤程式碼, 引數: [kzsrgpw]
- ORA-00600: 內部錯誤程式碼, 引數: [kcbnew_3]
- ORA-00600: 內部錯誤程式碼, 引數: [qcisSetPlsqlCtx:tzi init]SQL
- ORA-00600: 內部錯誤程式碼, 引數: [kqlnrc_1]
- ORA-00600: 內部錯誤程式碼, 引數: [qertbFetchByRowID], [], [],
- ORA-00600: 內部錯誤程式碼, 引數: [kolaslGetLength-1], [], [], [], [], [], [], []
- ORA-00600: 內部錯誤程式碼, 引數: [kcbchg1_14]
- ORA-00600: 內部錯誤程式碼,引數: [kcbgtcr_12], [1], [], [], [], [], [], []
- ORA-00600: 內部錯誤程式碼, 引數: [12333]
- ORA-00600: 內部錯誤程式碼, 引數: [kcblasm_1], [103], [], [], [], [], [], []ASM
- ORA-00600: 內部錯誤程式碼,引數: [6002], [6], [28], [1], [52], [], [], []
- ORA-00600: 內部錯誤程式碼, 引數: [ktspScanInit-l1], [], [], [], [], [], [], []
- ORACLE ORA-00600: 內部錯誤程式碼, 引數: [kokbcvb1]與merge intoOracle
- ORA-00600: 內部錯誤程式碼, 引數: [kcrf_pvt_strand_bind1]CRF
- ORA-00600:內部錯誤程式碼,引數:[qertbFetchByRowID],[],[],[],[],[],[],[]分析與處理
- ORA-00600: 內部錯誤程式碼, 引數: [qosdDirRead: dircnt mismatch], [809], [808],
- 在刪除使用者時報ORA-00600: 內部錯誤程式碼, 引數: [13011]..
- ORA-00600: 內部錯誤程式碼, 引數: [ktspfmdb:objdchk_kcbnew_3], [9], [93111], [4],OBJ
- ORA-00600:內部錯誤程式碼,引數:[32695], [hash aggregation can't be done]的分析處理
- ORA-07445和ORA-00600系統內部錯誤查錯方法
- 版本9204中的內部錯誤:ORA-00600[qmxiUnpPacked2]
- ORA-600[6122]錯誤處理
- 小程式內引數和掃碼引數統一
- mybatis引數型別錯誤MyBatis型別
- ORA-00600錯誤分析
- 除錯 Docker 容器內部程式除錯Docker
- PHP HTTP 500 - 內部伺服器錯誤PHPHTTP伺服器
- 伺服器內部錯誤500的原因伺服器
- ora-600內部錯誤的型別型別
- 無法顯示頁面,因為發生內部程式錯誤
- oracle錯誤之ORA-00600Oracle
- 一個SQL語句引發的ORA-00600錯誤排查(二)SQL
- 一個SQL語句引發的ORA-00600錯誤排查(一)SQL
- 關閉ubuntu討厭的內部錯誤提示Ubuntu
- zt_ora-600內部錯誤的型別型別
- win10 mstsc出現內部錯誤怎麼修復_win10 mstsc出現內部錯誤解決方法Win10
- MySQL 錯誤程式碼MySql