質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.81%

Statspackのスナップショット取得が出来ない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,101

serachaso

score 12

◆環境
Oracle Database 12.2.0.1.0

参考にしたサイト
statspackのインストール手順
Oracle(12c) statspackのインストールと使い方
DBMS_SHARED_POOL パッケージの使用

◆やったこと
sysdba権限でログイン

Statspack専用の表領域を作成

Statspackのインストール
@?/rdbms/admin/spcreate.sql
→インストールにエラーは出ませんでした。

perfstatユーザでログイン

Level7で取得しようと思い、以下コマンドを実施

execute statspack.snap(i_snap_level=> 7)

以下のエラーが出ます。

SQL> execute statspack.snap(i_snap_level=> 7)
BEGIN statspack.snap(i_snap_level => 7); END;

  •   行1でエラーが発生しました。:
    ORA-04063: package body "SYS.DBMS_SHARED_POOL"にエラーがあります。
    ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした:
    "SYS.DBMS_SHARED_POOL"
    ORA-06512: "PERFSTAT.STATSPACK", 行5800
    ORA-06512: 行1

自動取得のsqlや以下コマンド実行ではエラーは出ず、PL/SQLプロシージャが正常に完了しました。とは出ます。
execute dbms_job.interval(21, 'sysdate+(1/24)');

しかし、ジョブを実行すると同様のエラーが出ます。
execute dbms_job.run(21);

◆試したこと
sysユーザー、perfstatユーザーで実施

DBMS_SHARED_POOLのインストール
@?/rdbms/admin/dbmspool.sql

statspackのアンインストールと再インストール

Oracleのshutdown と startup

DBMS_SHARED_POOLのdrop
SQL> drop package DBMS_SHARED_POOL;
SQL> @?/Rdbms/admin/dbmspool.sql
SQL> @?/Rdbms/admin/prvtpool.plb

解決方法などあるのでしょうか。英語のサイトにも書いていなかったので…。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Orlofsky

    2020/02/04 18:40

    質問に Oracle Database の正確なバージョンを追記しては?

    キャンセル

  • Orlofsky

    2020/02/04 18:40

    参考にしたURLも https://teratail.com/help/question-tips#questionTips3-7 の [リンク] で [リンク先のタイトル](http...) で追記してください。

    キャンセル

回答 1

checkベストアンサー

+1

execute statspack.snap(i_snap_level=> 7);

は perfstat ユーザーで実行していますか?

DBMS_SHARED_POOLのインストール

GRANT EXECUTE ON DBMS_SHARED_POOL TO perfstat だったっか SQL を実行したユーザーだったか? 
(どちらだったかは忘れた)は sys ユーザーで実行しましたか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/02/05 09:31

    回答ありがとうございます。

    statspack取得はperfstatユーザーで実行しています。
    DBMS_SHARED_POOLはsysユーザーでインストールし、権限付与もsysユーザーで実行しています。

    キャンセル

  • 2020/02/05 12:47

    https://www.shift-the-oracle.com/plsql/dbms_shared_pool/
    >$ORACLE_HOME/rdbms/admin/dbmspool.sql を登録する。
    の中には
    >create or replace package dbms_shared_pool is
    はあるけど、
    >create or replace package body dbms_shared_pool is
    がありませんでした。Oracle18c Express Edition for Windows

    $ORACLE_HOME/rdbms/admin/*.* で
    >package body dbms_shared_pool
    をgrepしても見つかりません。
    オラクル側のミスでしょうけど。

    パフォーマンス・チューニング・ガイドからstatspackが削られて10年以上になります。
    無料で使えるstatspackより高価な Oracle Database Enterprises Edition と 有償オプションの Diagnostics Pack を買わせたいからでしょうけど。

    dbms_shared_pool でググるとOracle USAのサポートの公開情報が見つかりますが、
    https://support.oracle.com/knowledge/Oracle%20Database%20Products/406882_1.html
    サポート契約者のみが参照できる情報がいっぱいあります。

    >自動取得のsqlや以下コマンド実行ではエラーは出ず、PL/SQLプロシージャが正常に完了しました。とは出ます。
    その時はdbms_shared_pool を使っていないのでは?


    dbms_shared_pool を $ORACLE_HOME/rdbms/admin/*.* で秀丸エディタでgrepすると、

    >catgwmcat.sql(401): grant execute on sys.dbms_shared_pool to gsmadmin_internal;
    >catpdbms.sql(508): Rem dbms_shared_pool
    >catproc.sql(70): Rem pyam 08/02/05 - Add dbmspool (dbms_shared_pool package)
    >pdbdba.sql(73): Rem DBMS_SHARED_POOL
    >pdbdba.sql(209): 'DBMS_JAVA', 'DBMS_SHARED_POOL', 'DBMS_DNFS',
    >sbcpkg.sql(5930): sys.dbms_shared_pool.keep(upper('&&pkg_name'), 'P');
    >sbcusr.sql(198): grant execute on DBMS_SHARED_POOL to STDBYPERF;
    >spcpkg.sql(6246): sys.dbms_shared_pool.keep('PERFSTAT.STATSPACK', 'P');
    >spcusr.sql(431): grant execute on DBMS_SHARED_POOL to PERFSTAT;
    >spdoc.txt(339): o During the installation, the dbms_shared_pool PL/SQL package
    >spdoc.txt(340): is created. dbms_shared_pool is used to pin the Statspack

    が見つかります。Oracle18c Express Edition for Windows
    dbms_shared_pool を使っている部分をコメントにすれば
    動くかもしれません。わたしは試したことがないです。

    オラクル・サポートに問い合せないと解決は難しいでしょう。サポート契約が必要です。

    キャンセル

  • 2020/02/05 14:07

    とても詳しく調べてくださりありがとうございます…。

    サポートに契約しているので問い合わせてみようと思います。
    ありがとうございました。

    キャンセル

  • 2020/02/25 09:30

    staspack report のリストの表示幅を広くして桁あふれを解消したファイルを用意するように
    オラクル・サポートに依頼したことがあります。
    オラクル・サポートの担当者が良心的な人であれば My Oracle Support Knowledge Base(旧KROWN クラウン:知識ベース)
    https://support.oracle.com/ に登録してあるかも?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.81%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る