今天在一个10203数据库的alert文件中发现了ORA-1461的错误。
错误全部信息如下:
ORA-1461 encountered when generating server alert SMG-3500
比较奇怪的是,这个错误号在10G官方文档错误手册不存在,只好查询METALINK,发现是Oracle的一个bug。
造成这个问题的原因SMON进程在更新SMON_SCN_TIME表时,引发了ORA-1461错误。
如果设置了EVENT:1461 TRACE NAME ERRORSTACK LEVEL 10,从后台SMON进程日志中可以看到下面的信息:
ORA-01461: can bind a LONG value only for insert into a LONG column
Current SQL statement for this session:
update smon_scn_time set orig_thread=0, time_mp=:1, time_dp=:2, scn=:3,
scn_wrp=:4, scn_bas=:5, num_mappings=:6, tim_scn_map=:7 where thread=0 and
scn = (select min(scn) from smon_scn_time where thread=0)
根据METALINK上的搜索结果,这个bug在多个平台上都可能出现,目前发现受影响的版本都是10.2.0.3。
Oracle并没有给出解决方法,这个问题在什么版本会修正也没有提到。好在问题对系统的影响不大。
感谢网友“蓝色海洋”的提醒,经过1年左右的时间,Oracle终于发布了解决这个bug的补丁,在补丁集Patch 6602742中fixed了这个bug,关于这个bug的更多描述可以参考metalink文档Doc ID: Note:461911.1。