最近有个数据库不能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...
在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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/85922/viewspace-1030502/