反思一個問題(在應用系統上修改表)
應用系統中,由於業務需要,修改了原來的表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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- glog-0.3.5在Windows系統上編譯及應用Windows編譯
- 從一個問題中瞭解數學在程式設計中的應用程式設計
- 在 Mac 上執行 Windows 應用程式,只需一個CrossOver!MacWindowsROS
- Dubbo 泛化呼叫在vivo統一配置系統的應用
- 搜狗輸入法在Linux Mint系統上的問題總結Linux
- 啟用遠端系統上的應用
- 無線通訊在智慧公交系統上的設計應用
- 分析一個企業CRM系統應用的案例
- 【Azure 應用服務】Python flask 應用部署在Aure App Service 遇見的 3 個問題PythonFlaskAPP
- vantUI應用(Tabbar標籤頁)返回上一頁的失效問題UItabBar
- 應用系統整合方案(一)
- 關於萬網上不能應用onethink問題
- debian系統vim不法貼上的問題
- 在 Linux 上用 strace 來理解系統呼叫Linux
- 有關線上系統點選沒有任何相應得問題思考,主要針對PC端應用程式
- AutoML 在推薦系統中的應用TOML
- 防火門監控系統在某音樂廳專案上的應用
- python應用系統訪問瀚高庫Python
- 並查集在實際問題中的應用並查集
- 修復SSH在 MacOS Ventura 系統上不能使用RSA簽名的問題Mac
- 新一代日誌型系統在 SOFAJRaft 中的應用Raft
- 遇到一個建表時出現的問題
- 分散式系統遇到的十個問題分散式
- oracle系統表空間過大問題處理Oracle
- 工業交換機在風電線上監測(SCADA)系統的應用
- 模板與例項在系統中的應用
- CRM系統在電商企業的應用
- 在STM32F401上移植uC/OS的一個小問題 [原創]
- 上線後遇到一個很奇怪的問題
- 記一個 FormData 多檔案上傳問題ORM
- iOS上架4.3相關問題修改建議iOS
- 排查一個潛在的記憶體訪問問題 — 用 C 寫程式碼的日常記憶體
- 開源一個seo排名報表系統
- 如何把SQL Server中一個表,一個儲存過程,一個檢視等改為系統表,系統儲存過程,系統檢視等...SQLServer儲存過程
- 個人反思
- mysql 5.7.11查詢分割槽表的一個問題MySql
- BPM系統,工作流引擎,表單引擎常用30個功能與常見問題
- 產品說:你在系統中新增一個全域性檔案上傳
- 如何簡單的在TF卡上做一個Linux的檔案系統Linux