编译和执行存储过程 间歇性报错 ORA-00600 内部错误代码 参数 [kcbnew_3] [18]

时间:2021-11-10 20:38:38
问题症状:
1.出现问题前编译,执行存储过程都是没问题的
2.突然间执行和编译存储过剩报错
3.多试几次或者过会 编译和执行存储过程,又不报错了
4.没有与之冲突的程序在执行
5.网络也正常,在服务器本机操作也报错
6.重启服务器后,问题依然存在
7.报错内容: ORA-00600 内部错误代码,参数 [kcbnew_3] [18] [] [] [] [] [] []

编译和执行存储过程 间歇性报错 求高人指点,非常感谢

15 个解决方案

#1


看看你的数据库参数配置,尤其是sga和pga方面的,有可能是这方面的原因。

其实最大的原因有可能就是你的版本不是商业版的(不是买的),补丁没打全(有的补丁是要花钱的),后面的小版本比较低

#2


楼主这个问题,很多人都遇到过,有可能是低版本的原因,升级一下试试

#3


服务器物理内存16GB
SGA:
共享池:304MB
缓冲区高速缓存:800MB
大型池:32MB
java池:32MB
SGA总容量:1170.435MB
SGA的最大大小:1282.572MB

PGA:
总计PGA目标:320MB
分配的当前PGA:59922KB
分配的最大PGA:84485KB
高速缓存命中百分比:95.58%


从SGA和PGA的数据看,内存是够用的

至于版本问题,我们这边是公司买的正版Oracle9.2.0.1.0,自07年装机后,就没升级过补丁,一直没问题,这突然出现间歇性的报错问题,若是版本问题,怎会3年后出现问题呢?

请高人指教。

#4


看看你的存储过程是不是用了比较高的版本的函数,刚好这个函数在这个oracle版本上不稳定

#5


整个存储过程只留下
CREATE OR REPLACE PROCEDURE proc_aaa IS
BEGIN
COMMIT;
END;

依然在报ORA-00600,内部错误代码,参数 [kcbnew_3] [20] 错误

#6


呵呵,那就不是存储过程的问题了。应该是其他问题引起来了,你编译一下其他存储过程试试,如果其他的没问题,就把现在的这个存储过程改个名字,说不定就没问题了

#7


现在其他的存储过程也有问题
当个的update语句也有问题
例如:
UPDATE sbu_payoff_detail t
 SET t.net_income = t.other_hfyt
 WHERE t.report_date = '2010-09-01'
 AND t.unit_id = '19cc1b:10a8d0d6117:-7ffe'
 AND t.prod_kind_code = '999';
也报同样的错误,一会报错一会不报错的

#8


那只能联系 oracle公司了,打电话咨询吧,有可能一个补丁就解决问题的

#9


引用楼主 wpjyx 的回复:
问题症状:
1.出现问题前编译,执行存储过程都是没问题的
2.突然间执行和编译存储过剩报错
3.多试几次或者过会 编译和执行存储过程,又不报错了
4.没有与之冲突的程序在执行
5.网络也正常,在服务器本机操作也报错
6.重启服务器后,问题依然存在
7.报错内容: ORA-00600 内部错误代码,参数 [kcbnew_3] [18] [] [] [] [] [] []

编译和执……

一般ora-600的错误要么是语句的问题要么是bug

#10


引用 7 楼 wpjyx 的回复:
现在其他的存储过程也有问题
当个的update语句也有问题
例如:
UPDATE sbu_payoff_detail t
SET t.net_income = t.other_hfyt
 WHERE t.report_date = '2010-09-01'
AND t.unit_id = '19cc1b:10a8d0d6117:-7ffe'
AND t.prod_kind_code ……

你去查看alert.log文件看到底是那条最先引起这个错误 

#11


这是一个bug,oracle公司在9.2.0.4的补丁上修改了。你们的数据库是不是对表空间做过什么动作?

#12


表空间现在是够的,没有啥太大的改动,表空间现在大约60GB

#13


去下补丁吧,打补丁前做好备份工作。

#14


刚才上网查了下:
在Oracle的一些版本上Buffer overflow 的漏洞,可被恶意利用造成缓冲区溢出

从症状上看应该是缓冲区溢出

我已增加SGA的缓冲区高速缓存,再跟踪一天看看,实在不行就换10g

#15


跟踪3天后,报错的问题没有再出现,很奇怪得就消失了....
感谢majy和wkc168的支持

#1


看看你的数据库参数配置,尤其是sga和pga方面的,有可能是这方面的原因。

其实最大的原因有可能就是你的版本不是商业版的(不是买的),补丁没打全(有的补丁是要花钱的),后面的小版本比较低

#2


楼主这个问题,很多人都遇到过,有可能是低版本的原因,升级一下试试

#3


服务器物理内存16GB
SGA:
共享池:304MB
缓冲区高速缓存:800MB
大型池:32MB
java池:32MB
SGA总容量:1170.435MB
SGA的最大大小:1282.572MB

PGA:
总计PGA目标:320MB
分配的当前PGA:59922KB
分配的最大PGA:84485KB
高速缓存命中百分比:95.58%


从SGA和PGA的数据看,内存是够用的

至于版本问题,我们这边是公司买的正版Oracle9.2.0.1.0,自07年装机后,就没升级过补丁,一直没问题,这突然出现间歇性的报错问题,若是版本问题,怎会3年后出现问题呢?

请高人指教。

#4


看看你的存储过程是不是用了比较高的版本的函数,刚好这个函数在这个oracle版本上不稳定

#5


整个存储过程只留下
CREATE OR REPLACE PROCEDURE proc_aaa IS
BEGIN
COMMIT;
END;

依然在报ORA-00600,内部错误代码,参数 [kcbnew_3] [20] 错误

#6


呵呵,那就不是存储过程的问题了。应该是其他问题引起来了,你编译一下其他存储过程试试,如果其他的没问题,就把现在的这个存储过程改个名字,说不定就没问题了

#7


现在其他的存储过程也有问题
当个的update语句也有问题
例如:
UPDATE sbu_payoff_detail t
 SET t.net_income = t.other_hfyt
 WHERE t.report_date = '2010-09-01'
 AND t.unit_id = '19cc1b:10a8d0d6117:-7ffe'
 AND t.prod_kind_code = '999';
也报同样的错误,一会报错一会不报错的

#8


那只能联系 oracle公司了,打电话咨询吧,有可能一个补丁就解决问题的

#9


引用楼主 wpjyx 的回复:
问题症状:
1.出现问题前编译,执行存储过程都是没问题的
2.突然间执行和编译存储过剩报错
3.多试几次或者过会 编译和执行存储过程,又不报错了
4.没有与之冲突的程序在执行
5.网络也正常,在服务器本机操作也报错
6.重启服务器后,问题依然存在
7.报错内容: ORA-00600 内部错误代码,参数 [kcbnew_3] [18] [] [] [] [] [] []

编译和执……

一般ora-600的错误要么是语句的问题要么是bug

#10


引用 7 楼 wpjyx 的回复:
现在其他的存储过程也有问题
当个的update语句也有问题
例如:
UPDATE sbu_payoff_detail t
SET t.net_income = t.other_hfyt
 WHERE t.report_date = '2010-09-01'
AND t.unit_id = '19cc1b:10a8d0d6117:-7ffe'
AND t.prod_kind_code ……

你去查看alert.log文件看到底是那条最先引起这个错误 

#11


这是一个bug,oracle公司在9.2.0.4的补丁上修改了。你们的数据库是不是对表空间做过什么动作?

#12


表空间现在是够的,没有啥太大的改动,表空间现在大约60GB

#13


去下补丁吧,打补丁前做好备份工作。

#14


刚才上网查了下:
在Oracle的一些版本上Buffer overflow 的漏洞,可被恶意利用造成缓冲区溢出

从症状上看应该是缓冲区溢出

我已增加SGA的缓冲区高速缓存,再跟踪一天看看,实在不行就换10g

#15


跟踪3天后,报错的问题没有再出现,很奇怪得就消失了....
感谢majy和wkc168的支持