設定10046跟蹤處理資料庫不能open一例

empo007發表於2010-01-12

最近有個資料庫不能open:
Errors in file /oracle/admin/zsjy/udump/zsjy_ora_18129.trc:
ORA-00980: synonym translation is no longer valid
Error 980 happened during db open, shutting down database
USER: terminating instance due to error 980
Instance terminated by USER, pid = 18129
ORA-1092 signalled during: alter database open...

[@more@]檢視相關TRACE檔案,沒有發現任何具體資訊,決定跟蹤errorstack
在pfile中增加*.event="980 trace name errorstack level 12",用PFILE重新啟動資料庫,udump中沒有發現新的TRACE檔案產生,決定使用10046進行跟蹤:PFILE中增加引數event="10046 trace name context forever,level 12",並重新使用PFILE啟動資料庫,資料庫產生了跟蹤檔案,下面是與出錯相關的資訊:
=====================
PARSE ERROR #14:len=130 dep=1 uid=0 oct=3 lid=0 tim=78972245446 err=980
select 1 from dual where exists (select 1 from system.repcat$_repprop prop where prop.type in (-1,2,9,-4) and prop.how in (1,3))
ORA-00980: synonym translation is no longer valid
EXEC #1:c=590000,e=2623088,p=640,cr=7215,cu=610,mis=0,r=0,dep=0,og=4,tim=78972420030
ERROR #1:err=1092 tim=8086775
認定語句select 1 from dual where exists (select 1 from system.repcat$_repprop prop where prop.type in (-1,2,9,-4) and prop.how in (1,3))出錯,出錯的同義詞很可能是DUAL,決定重建DUAL:
1、設定引數replication_dependency_tracking = FALSE
2、啟動資料庫
3、CREATE TABLE "SYS"."DUAL"
( "DUMMY" VARCHAR2(1)
) PCTFREE 10 PCTUSED 4;
Insert Into Dual Values ('X');
Commit;
Grant Select On Dual To Public;
4、刪除上面設定的引數,然後重新啟動資料庫
經過上面的處理,資料庫被成功啟動

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

相關文章