用events 跟踪解决不能创建物化试图一例
2007-06-15 12:33:34 来源:WEB开发网第一句有问题的SQL应该是:
SELECT * FROM "witsdba"."SUBSCRIPTION_TAB"@SMGR.US.ORACLE.COM
先从这句下手,从sqlplus 命令中输入,查询看看:
SQL>SELECT * FROM "witsdba"."SUBSCRIPTION_TAB"@SMGR.US.ORACLE.COM2 /SELECT * FROM "witsdba"."SUBSCRIPTION_TAB"@SMGR.US.ORACLE.COM*ERROR at line 1 :ORA - 00942 : table or view does not existORA - 02063 : divceding line from SMGR...
Faint ,不太可能阿,奇怪,刚才desc SUBSCRIPTION_TAB@SMGR 不是还好好的么? 莫非是,莫非是witsdba 搞的鬼?大小写的问题??
SQL> c/witsdba/WITSDBA
查询,居然OK.看来是遇到了Oracle的一个Bug.
抽取dblink SMGR 的ddl :
CREATE DATABASE LINK SMGR CONNECT TO "witsdba" IDENTIFIED BY "mypasswd" USING 'smgr';
"witsdba" ??!!删掉,重新创建:
CREATE DATABASE LINK SMGR CONNECT TO WITSDBA IDENTIFIED BY "mypasswd" USING 'smgr';
执行SQL,创建物化试图.一切正常。
打扫战场,做个总结
以上涉及到具体的表名字因为设计到安全问题均已经作了适当的处理。 整个过程比较关键的还是 alter session set events '942 trace name errorstack level 10' 这一步. 很多时候, 如果DBA在 Metalink上提交一个Tar的话。Oracle技术支持人员会要求用户按照一定操作提交Trace文件。出于其他的原因(开始还以为是个Bug),只好自己动手了。
参考信息
Oracle System Performance Analysis Using Oracle Event 10046 (PDF)
这篇文档详细的解释了如何使用10046 event
的问题.要重新创建MV log...N... others...
快刀斩乱麻加上胡乱猜测,判定以上皆非.( 此过程花费时间若干,眼睛花了好几回. )
还有我们有最后一招:
___FCKpd___4
设定跟踪:
___FCKpd___5
此过程如果执行中如果提示用户无权限,需要作适当的授权. 退出SQL*Plus,在具体的目录中找到我们的 Trace 文件:
___FCKpd___6
查看 SNAPSHOT.sql,这回内容还算清晰,发现主要相关内容如下:
___FCKpd___7
第一句有问题的SQL应该是:
___FCKpd___8
先从这句下手,从sqlplus 命令中输入,查询看看:
___FCKpd___9
Faint ,不太可能阿,奇怪,刚才desc SUBSCRIPTION_TAB@SMGR 不是还好好的么? 莫非是,莫非是witsdba 搞的鬼?大小写的问题??
___FCKpd___10
查询,居然OK.看来是遇到了Oracle的一个Bug.
抽取dblink SMGR 的ddl :
___FCKpd___11
"witsdba" ??!!删掉,重新创建:
___FCKpd___12
执行SQL,创建物化试图.一切正常。
更多精彩
赞助商链接