ORA-00600錯誤分析

y81277241發表於2014-11-13

ORA-00600錯誤分析

[@more@]

ORA-600大全

ORA-600錯誤1->解決思路

ORA-00600: internal error code, arguments: [ksmovrflow], [kkznxddl.begin], [], [], [], [], [], []

晚上測試實體化檢視複製,測試環境中的master site是Oracle10g,MV site是Oracle9201,當在MV site上建立快速重新整理的實體化檢視時,報ORA-600錯誤。

SQL> CREATE MATERIALIZED VIEW KAMUS.ACCOUNT2004 REFRESH FAST WITH PRIMARY KEY  AS SELECT * FROM   ;

CREATE MATERIALIZED VIEW KAMUS.ACCOUNT2004 REFRESH FAST WITH PRIMARY KEY  AS SELECT * FROM  

ORA-00600: internal error code, arguments: [ksmovrflow], [kkznxddl.begin], [], [], [], [], [], []

查metalink,發現又是一個bug,這個bug只有當在Oracle8或者9中建立基於Oracle10g的實體化檢視時才會發生。

原因:

Oracle10g的master table中建立主鍵時候顯式指定了主鍵的名稱。如下

alter table table_name add constraint < constraint name> primary key (< col>);

解決方法:

刪除這個主鍵,然後建立一個不指定名稱的主鍵,由Oracle自動命名,如下

alter table ACCOUNT2004 add primary key(OCCURTIME, ACCTID, CURRENCYID);

這樣產生的主鍵名稱就變成SYS_CXXXX。

之後重新在MV site上建立實體化檢視,成功。

作者Blog:http://blog.csdn.net/Kamus/

---------------------------------------------------------------------------------------------------

ORA-600錯誤2->解決思路

詳細解決過程請檢視 http://www.itpub.net/303349,1.html 

提問者:rebecca_xt

檢視trace和日誌檔案

LOG和TRACE 檔案見
http://www.itpub.net/showthread.php?s=&threadid=304260

提問者:rebecca_xt

http://www.itpub.net/showthread.php...955#post2053955

這裡我把錯誤更新了下。請看看。

其中裡面有兩張圖,
第一張是系統剛起來時ORACLE的狀態,
第二張是我點選了開啟後出現的錯誤。
謝謝
----------------------------------------------------------------------------------------------------

回答者:logzgh

根據trace和日誌檔案看,應該是smon做回滾時出了問題。
建議在init.ora檔案裡面加上10046和10061,10513事件
event="10513 trace name context forever, level 2"
event="10061 trace name context forever, level 10"
event="10046 trace name context forever,level 4"

試試看,然後再將新產生的Trace檔案上傳。

------------------------------------------------------------------------

提問者:rebecca_xt

我在初始化引數中加入如下
event="10513 trace name context forever, level 2"
event="10061 trace name context forever, level 10"
event="10046 trace name context forever,level 4"

資料庫就可以開啟了.為什麼呀??
謝謝

------------------------------------------------------------------------

回答者:logzgh

有沒有試試我說的那三個事件。特別是10061事件
你這個很可能是在smon清理臨時段時報錯。

現在你將10046和10513事件拿掉。
只加10061事件看看。如果只加10061事件可以啟動的話,
那麼你啟動資料庫後
執行alter session set events='immediate trace name drop_segments level 14'。
如果依然報錯的話,你再執行
Select owner,segment_name,tablespace_name from dba_segments where segment_type='TEMPORARY';
看看是否有臨時段存在非temp表空間中。如果有的話,將那個表空間的資料exp出來,drop掉再重建表空間,然後將其中的資料imp回去。

如果是100513事件啟作用的話,可以採用隱含引數
_offline_rollback_segmnets或_corrupted_rollback_segments來處理,具體你可以在itpub上搜尋,有很多的相關的文章。

-------------------------------------------------------------------

提問者:rebecca_xt

你好:
的確是只加10061事件看看就可以啟動資料庫的。

alter session set events='immediate trace name drop_segments level 14'。
成功執行了。

這句的作用是什麼呀?下一步還需要做什麼

------------------------------------------------------------------------

回答者:logzgh

成功了的話,你把那些事件都拿掉,正常啟動資料庫試試看。

思路很簡單,看trace檔案和alert.log檔案,發現是oracle開始是可以open的,但是open過後,smon程式遇錯,oracle被終止。
開始我猜想有兩種可能,一種是做回滾時出錯,還有一種是smon清理臨時段出錯。
後來想想前滾都已經正常 完成了,那回滾時報600號錯誤的可能性較小,因此懷疑是清理臨時段報錯了。加上10061事件,禁止smon清理臨時段。然後手工清理。
如果一切順利的話,此時正常啟動資料庫應該可以了。

後來進展不順利,提問者和回答者MSN去了,不過大概思路就是這樣的了,剩下的自己多試驗一下應該就沒問題了!

ORA-600錯誤3

ORA-600錯誤3->解決思路

http://www.itpub.net/showthread.php?s=&threadid=205079

-------------------------------------------------------------------------------------------------------------------

ORA-600錯誤4

ORA-00600: internal error code, arguments: [2662], [0], [431267754], [0], [431272752], [0], [], []

ORA-600錯誤4->解決思路  http://www.itpub.net/293005.html

-----------------------------------------------------------------------------------------------------------------

ORA-600錯誤5

ORA-00600: internal error code, arguments: [3619], [13], [0]

ORA-600錯誤5->解決思路 

這個錯誤解決的方法很簡單,重建控制檔案=OK。

ORA-600錯誤6

ORA-00600: internal error code, arguments: [ksmovrflow], [datablk : kspptsp], [], [], [], [], [], []

ORA-600錯誤6->解決思路 

這個錯誤是spfile檔案有損壞,您可以使用一個完好的pfile檔案來啟動資料庫,然後create spfile from pfile='pfile的絕對路徑';

SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
--修改init.ora 然後用修改後的啟動資料庫
SQL> startup pfile='d:oracleadminorclpfileinit.ora'
ORACLE 例程已經啟動。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> create spfile from pfile='D:oracleadminorclpfileinit.ora';

檔案已建立。

SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup                     --此時Oralce會自動的使用SPfile來啟動資料庫,所以直接startup就可以了
ORACLE 例程已經啟動。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29523859/viewspace-1331189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章