数据库的一台备库报错:
ORA-00600: 内部错误代码, 参数: [kkdoilsn1], [], [], [], [], [], [], [], [], [], [], []
根据trace文件,发现报错的sql语句是:select * from xxxxx where xx
那么,这个错误是什么意思呢?ORA-00600 [Kkdoilsn1] When Attempting To Move LOB Using ALTER Command
查询资料发现:
APPLIES TO:
Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 9.2.0.7 - Release: 9.2 to 9.2
Information in this document applies to any platform.
但是,好像11g也会有这个错误。
SYMPTOMS
Attempting to move LOB using an alter command fails with the following error and stack trace:
ORA-00600: internal error code, arguments: [kkdoilsn1], [], [], [], [], [], [], []
----- Call Stack Trace -----
kkdoilsn kkdoilci kkdollb kkdolsci kkdolsoi kkdlgsci
kkdlgcd qcscif qcsrctq qcswrc qcsrcr qcsrnr qcsridn qcsraic qcspqb kkmdrv
trace文件中有如下:
kkdoilsn()+1423 call kgeasnmierr() 00A99D540 ? 2B4AFF4712A0 ?
9E7B514000000000 ?
000000000 ? 000000000 ?
9D13DF398 ?
kkdoilci()+338 call kkdoilsn() A0EC81A10 ? 2B4AFF4712A0 ?
000000000 ? 949724AE0 ?
000000000 ? 9D13DF398 ?
kkdollb()+239 call kkdoilci() A0EC81A10 ? 91DD07220 ?
000000000 ? 000000000 ?
000000000 ? 949724AE0 ?
kkdolsci()+119 call kkdollb() A0EC81A10 ? 949724B88 ?
91DD07288 ? 000000002 ?
000000000 ? 949724AE0 ?
kkdolsoi()+74 call kkdolsci() A0EC81A10 ? 00000001E ?
000000002 ? 000000000 ?
000000000 ? 949724AE0 ?
kkdlgcd()+191 call kkdolsoi() A0EC81A10 ? 2B4AFF820B18 ?
000000002 ? 000000000 ?
000000000 ? 949724AE0 ?
__PGOSF148_kkmfbtcn call kkdlgcd() 2B4AFF461BD8 ? 2B4AFF4658F8 ?
()+10 000000002 ? 000000000 ?
CAUSE
This is an internal Bug:2766299, this bug will not be visable via Metalink
@NOTE: Per Oracle development, this will be fixed in Oracle 9.2.0.8.0 and above;
SOLUTION
Use export and import to move the segment.
Bug:2766299 is fixed in 10G
这个文档好像不太准确。
实际情况,并没有move一个lob对象,而是将一个表的字段alter成lob类型,最后只是fush了一下buffer cache就解决了。(share pool应该不用flush)
相关阅读:
GoldenGate不使用数据泵完成Oracle-Oracle的双向复制
使用GoldenGate的数据泵进行Oracle-Oracle的单向复制
如何对 Oracle 数据泵(expdp/impdp) 进行 debug
Oracle 数据库导出数据泵(EXPDP)文件存放的位置
Oracle 10g 数据泵分区表的导出