oracle 9i for linux 9.2.0.4 中開啟autotrace中的一個bug。

likaiabc發表於2008-07-14
按照常規方法執行了utlxplan.sql和plustrce.sql後。
使用system使用者set autot on,沒有問題,
但是使用自建使用者則提示
SP2-0618: 無法找到會話識別符號。啟用檢查 PLUSTRACE 角色
SP2-0611: 啟用STATISTICS報告時出錯[@more@]

經過baidu一番,原來是這個版本的plustrce.sql裡有bug,少了對一個系統表的grant授權。
執行
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;

後即可

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

btw:開啟set autotrance功能的指令碼

1.用sys使用者執行指令碼ultxplan.sql
建立這個表的指令碼是:(UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%rdbmsadmin)ultxplan.sql。
SQL> connect sys/sys@colm2 as sysdba;
SQL> @C:oracleora92rdbmsadminutlxplan.sql;
SQL> create public synonym plan_table for plan_table; --建立同義詞
SQL> grant all on plan_table to public;--授權所有使用者

2.要在資料庫中建立一個角色plustrace,用sys使用者執行指令碼plustrce.sql來建立這個角色,這個指令碼在目錄(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%sqlplusadmin)中;
SQL> @C:oracleora92sqlplusadminplustrce.sql;
3.然後將角色plustrace授予需要autotrace的使用者;
SQL>grant plustrace to public;

* plustrace角色只是具有以下許可權:
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant plustrace to dba with admin option;

plustrce.sql指令碼如下
create role plustrace;
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant select on v_$session to plustrace;
grant plustrace to dba with admin option;

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

相關文章