反思一個問題(在應用系統上修改表)
應用系統中,由於業務需要,修改了原來的表TABWARE,並改名為TABWARE2,
同時建立一個檢視TABWARE,所以應用程式沒有改。用了一天以後,
ORACLE 核心報錯:
--- pieces excerpt from alert_SID.LOG .
Mon Aug 13 14:04:18 2007
Errors in file d:oracleadminhqerpudumphqerp_ora_3620.trc:
ORA-00600: 內部錯誤程式碼, 引數: [kksfbc-reparse-infinite-loop],
[0x38AEC0E0], [], [], [], [], [], []
[@more@]反思一個問題(在應用系統上修改表)
應用系統中,由於業務需要,修改了原來的表TABWARE,並改名為TABWARE2,
同時建立一個檢視TABWARE,所以應用程式沒有改。用了一天以後,
ORACLE 核心報錯:
--- pieces excerpt from alert_SID.LOG .
Mon Aug 13 14:04:18 2007
Errors in file d:oracleadminhqerpudumphqerp_ora_3620.trc:
ORA-00600: 內部錯誤程式碼, 引數: [kksfbc-reparse-infinite-loop],
[0x38AEC0E0], [], [], [], [], [], []
Mon Aug 13 14:34:01 2007
Errors in file d:oracleadminhqerpudumphqerp_ora_2384.trc:
ORA-00600: internal error code, arguments: [kksfbc-reparse-infinite-loop],
[0x38D3817C], [], [], [], [], [], []
---PARAGRAPH EXCERPT FROM UDUMP/SID_ORA_3032.TRC
Reparse from kzp.c-1106
Compilation environment difference Failed sharing : 0
Change in cursor environment
SQL pgadep:0 pgapls:0 user
Compilation environment difference Failed sharing : 0
Change in cursor environment
SQL pgadep:0 pgapls:0 user
Compilation environment difference Failed sharing : 0
Change in cursor environment
SQL pgadep:0 pgapls:0 user
Compilation environment difference Failed sharing : 0
Change in cursor environment
SQL pgadep:0 pgapls:0 user
系統前臺的情況是剛連上的SESSION,只要選擇表TABWARE,就會出錯,且過了一會兒
就自動斷開連線。
我剛開始時也沒有看後臺的ALTER_log 和 user trace file,誤認為LISTEN出錯,就重
啟了TNS LISTEN。
結果,並沒有解決問題。所以才想起來要看一下後臺轉儲檔案。
這一看,心中就大概明白怎麼回事了,於是開始重新整理SHARED_POOL.
ALTER SYSTEM FLUSH SHARED_POOL ;
然後再回到前後執行相同的操作,系統終於恢復正常了。MY GOD,竊喜一下。
最後做個總結吧,對今後相類似的修改應用系統表,並建立檢視取代的方法作個參考
。
1,修改原表,增加欄位 PROPS, 作為條件判斷用。
2,重新命名錶名。
3,建立檢視,名字與原表名相同(應用將檢視當作表操作不會有太大影響的)
4,如果有其它SCHEMA 建立了對原表的同義詞,由於SYNONYM不會自動更新,所以需要
考慮是否重建。
重點提示:
1,ORACLE很智慧的,會自動更新引用,如TRIGGER,TABLE PRIVILEGE
但是同義詞SYNONYM不會更新。
如:更新表TABWARE為TABWARE2,那麼TRIGGER 自動重編譯並REFERENCE TABWARE2
GRANT ALL ON TABWARE 自動更新為 GRANT ALL ON TABWARE2
2,建立的檢視假如有條件PROPS=1 那麼,最好將PROPS欄位的預設值改為1,這是因為
應用中當一個表新增記錄時,可能會級聯在其它表中新增記錄,如果未設定符合檢視
條件的值,在往其它表中級聯新增時就出錯了(因為在檢視找不到新加的記錄)。
3,我修改了一個系統引數:cursor_sharing=FORCE (DEFAULT IS EXACTLY).
也可能是由於這個原因吧,在將表改名,重建同名檢視時,系統卻不能重新整理LIBRARY
CACHE。
所以才會出錯,害得大家都心慌腳亂。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-954551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個MySQL死鎖問題的反思MySql
- 一個模式應用問題模式
- 一個jboss的應用問題
- 問一個關於SSH整合是在action中應用session的問題Session
- ERP系統應用問題分析(轉)
- 安卓應用修改系統時間安卓
- 關於大資料在藍芽系統中的應用的幾個問題的答案大資料藍芽
- OA系統應用的四個難題
- 應用與tomcat上問題Tomcat
- 關於系統效能的一個問題
- 一個jive論壇系統的問題?
- 請教工廠方法的一個應用問題
- 求教一個觀察者模式應用的問題模式
- 在一個硬碟上安裝五個作業系統(轉)硬碟作業系統
- RAC中修改系統時間的問題
- Linux系統及應用問題分析排查工具Linux
- 在 Mac 上執行 Windows 應用程式,只需一個CrossOver!MacWindowsROS
- 轉一個大牛對分散式系統和cqrs的反思文章分散式
- 在Entity Bean之外修改了表資料的同步問題Bean
- glog-0.3.5在Windows系統上編譯及應用Windows編譯
- 從一個問題中瞭解數學在程式設計中的應用程式設計
- 啟用遠端系統上的應用
- Dubbo 泛化呼叫在vivo統一配置系統的應用
- 在jboss上部署應用的問題。
- 標準庫在ios上運用問題iOS
- 無線通訊在智慧公交系統上的設計應用
- 在Linux作業系統上執行Windows應用程式(轉)Linux作業系統Windows
- 請問一個關於web的管理系統的問題Web
- 降序索引應用在Top N問題上的應用索引
- ebs修改應用系統使用者密碼密碼
- 請教高手一個系統設計的問題
- 在AIX系統中安裝Oracle的幾個小問題AIOracle
- 一個關於 Web 應用國際化的問題Web
- 一個在Linux系統下的入侵響應案例Linux
- 分析一個企業CRM系統應用的案例
- 對於多個資料庫表對應一個Model問題的思考資料庫
- 搜狗輸入法在Linux Mint系統上的問題總結Linux
- oracle 9i 在XP系統上無法安裝的問題Oracle