今天在一個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。