こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AUTOTRACE機能を使いたい。

こんにちわ。
いまOracle10gを触っている者です。
autotrace機能を使おうと思い,ネットで調べて
plustrce.sqlを実行し、PLUSTRACEロールを作成しようとしました。
ところがplustrce.sqlのなかにある,
「v_$sesstat」,「v_$statname」,「v_$mystat」がない,
ということでそれぞれの実行箇所で
「ORA-00942: 表またはビューが存在しません。」というエラーが
出てしまいます。
したがって正常にロールが生成されていないようで,
このままあるユーザに権限を付与して,
"set autotrace on"としても,
「SP2-0618: セッション識別子が見つかりません。PLUSTRACEロールが有効かを確認してください。
SP2-0611: STATISTICSレポートを使用可能にするときにエラーが発生しました。」というエラーが出てしまいます。
おそらくはじめのエラーが障っていると思います。
どうすればエラーが取れるでしょうか?
教えてください。よろしくお願いします。

投稿日時 - 2006-10-30 16:34:21

QNo.2507066

困ってます

質問者が選んだベストアンサー

plustrce.sqlを実行したユーザは何ですか?
plustrce.sqlはsysで実行して使用するユーザに付与するようにします。
AUTOTRACEを使う手順は以下の方法で実行します。
(1),(2)はsysユーザで実行、(3)はPLUSTRACEを使用するユーザで実行
(1) SQL> @?/sqlplus/admin/plustrce.sql
(2) SQL> grant plustrace to hoge;
※hogeはユーザ名
(3) SQL> @?/rdbms/admin/utlxplan.sql

投稿日時 - 2006-10-30 17:43:13

補足

ossan_hiroさん
回答ありがとうございます。
plustrce.sqlを実行したユーザは"SYS"です。
(1)を実行しようとしたときに,
「v_$sesstat」,「v_$statname」,「v_$mystat」がない,
といったエラーが出ます。
何か事前準備が要るのでしょうか?

投稿日時 - 2006-10-31 11:29:07

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

x$やv_$はsystem表領域が作成されるときに自動的に作成されるためないことはありえません。
権限がただ単にないだけと推定されますがいかがでしょうか?
v_$はsysユーザしかセキュリティの観点からアクセスできません。

投稿日時 - 2006-11-01 21:01:36

お礼

gdcootieさん
回答ありがとうございました。

投稿日時 - 2006-12-08 18:14:10

ANo.3

(1)そのDBはどうやって(インストール時 or DBCA or スクリプト)作成しましたか?
(2)Oracleのパッチを当てましたか?
(3)sysユーザで以下のSQLを実行して、本当に無いのか確認してみてください。
col object_name format a30
col status format a12
select object_name,STATUS from dba_objects
where lower(object_name) like '%sesstat%';

ステータスがinvalidである場合。sysユーザで以下のコマンドで
コンパイルしなおしてください。
SQL> @?/rdbms/admin/utlrp.sql

無い場合は・・・CATALOG.SQLを実行してないとか?
再度DBを作成しなおすか、サポートセンターに問い合わせした方が
よいと思います。

>「v_$sesstat」はありませんが,「v$sesstat」はあります。
「v$sesstat」ではgrantすることはできません。

投稿日時 - 2006-10-31 16:27:19

お礼

ossan_hiroさん
回答ありがとうございました。

投稿日時 - 2006-12-08 18:13:39

ANo.2

こんにちは。
こちらの10g環境では、何の事前準備をしなくても実行できましたよ。
本当にsysユーザーで実行して、エラーが出ているようなら、
サポートに連絡する必要があるかもしれません。

#実行ログ
% sqlplus /nolog

SQL> connect /as sysdba
Connected.

SQL> @?/sqlplus/admin/plustrce.sql
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR at line 1:
ORA-01919: role 'PLUSTRACE' does not exist


SQL> create role plustrace;

Role created.

SQL>
SQL> grant select on v_$sesstat to plustrace;

Grant succeeded.

SQL> grant select on v_$statname to plustrace;

Grant succeeded.

SQL> grant select on v_$mystat to plustrace;

Grant succeeded.

SQL> grant plustrace to dba with admin option;

Grant succeeded.

SQL>
SQL> set echo off

投稿日時 - 2006-10-31 11:57:26

補足

gou2199さん
回答ありがとうございます。
そうですか…
ちなみにこちらのデータベースには
「v_$sesstat」はありませんが,「v$sesstat」はあります。
でもplustrce.sqlには
grant select on v_$sesstat to plustrace;
となっているんです。
「v_$sesstat」がない,というのはそもそもインストール時に
不備があったなどが原因で異常なんでしょうか?

投稿日時 - 2006-10-31 13:46:13

あなたにオススメの質問