ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

144 DBMS_WORKLOAD_CAPTURE

DBMS_WORKLOAD_CAPTUREパッケージでは、ワークロード取得システムを構成し、ワークロード取得データを生成します。 この取得のリプレイは、DBMS_WORKLOAD_REPLAYパッケージによって実装されます。


関連項目:

データベース・リプレイの詳細は、『Oracle Database Real Application Testingユーザーズ・ガイド』を参照してください。

この章では、次の項目について説明します。


DBMS_WORKLOAD_CAPTUREの使用方法


概要

取得インフラストラクチャはインスタンス全体(およびRAC全体)にわたるため、いずれの時点でも生成されるワークロード取得は1つのみです。したがって、いずれかの時点で1つの状態が存在するため、取得インタフェースにステート・オブジェクトをパラメータとして渡す必要はありません。つまり、すべてのサブプログラムはオブジェクトのメソッドにはできませんが、パッケージ全体のPL/SQLサブプログラムとなります。


セキュリティ・モデル

この項で示すコードには、次の操作に必要な最小限の権限が記述されています。

DROP USER rom1 CASCADE;
CREATE USER rom1 IDENTIFIED BY rom1;

GRANT EXECUTE ON DBMS_WORKLOAD_CAPTURE TO rom1;
GRANT EXECUTE ON DBMS_WORKLOAD_REPLAY TO rom1;

GRANT CREATE SESSION TO rom1;
GRANT CREATE ANY DIRECTORY TO rom1;
GRANT SELECT_CATALOG_ROLE TO rom1;
GRANT BECOME USER TO rom1;

取得システムとリプレイ・システムの両方にあるファイルおよびディレクトリに対してアクセスおよび操作を行うには、適切なOS権限が必要です。つまり、取得またはリプレイを実行しているOracleプロセスおよびOSユーザーは、インスタンスが実行されているホストからアクセス可能な1つ以上の共通ディレクトリに対してアクセスおよび操作を行うことができる必要があります。また、リプレイを実行しているOSユーザーは、必要に応じてリプレイ・クライアントのホストに取得データをコピーできるように、リプレイ・クライアントで使用されるホスト上でのwrcの実行およびファイル・システムへの適切なアクセスを行うことができる必要があります。


DBMS_WORKLOAD_CAPTUREサブプログラムの要約

次の表に、このパッケージのすべてのサブプログラムをアルファベット順に示します。

表144-1 DBMS_WORKLOAD_CAPTUREパッケージのサブプログラム

サブプログラム 説明

ADD_FILTERプロシージャ


指定したフィルタを追加します。

DELETE_CAPTURE_INFOプロシージャ


特定のワークロード取得IDに対応するDBA_WORKLOAD_CAPTURESビューおよびDBA_WORKLOAD_FILTERSビュー内の行を削除します。

DELETE_FILTERプロシージャ


指定したフィルタを削除します。

EXPORT_AWRプロシージャ


特定の取得IDに関連付けられたAWRスナップショットをエクスポートします。

FINISH_CAPTUREプロシージャ


接続されたすべてのセッションに対して取得を停止するように信号を送信し、これ以降にデータベースへの要求が取得されないようにすることによって、ワークロード取得を終了します。

GET_CAPTURE_INFOファンクション


規定のディレクトリに存在するワークロード取得に関するすべての情報を取得して、DBA_WORKLOAD_CAPTURESビューおよびDBA_WORKLOAD_FILTERSビューにインポートし、適切なDBA_WORKLOAD_CAPTURES.IDを戻します。

IMPORT_AWRファンクション


特定の取得IDに関連付けられたAWRスナップショットをインポートします。

PROCESS_CAPTUREプロシージャ


capture_dir内で検出されたワークロード取得を処理および分析し、指定したワークロード取得のリプレイに必要となる新しいワークロード・リプレイ固有のメタデータ・ファイルを作成します。

REPORTファンクション


1つ以上の異なるソースを使用して、対象とするワークロード取得に関するレポートを戻します。

START_CAPTUREプロシージャ

すべてのインスタンスでワークロード取得を開始します。



ADD_FILTERプロシージャ

このプロシージャは、ワークロードのサブセットを取得するフィルタを追加します。

構文

DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
   fname           IN   VARCHAR2 NOT NULL,
   fattribute      IN   VARCHAR2 NOT NULL,
   fvalue          IN   VARCHAR2 NOT NULL);
DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
   fname           IN   VARCHAR2 NOT NULL,
   fattribute      IN   VARCHAR2 NOT NULL,
   fvalue         IN   NUMBER NOT NULL);

パラメータ

表144-2 ADD_FILTERプロシージャのパラメータ

パラメータ 説明

fname

追加するフィルタの名前。後でフィルタが不要になった場合、削除するときに使用できます。(必須)

fattribute

フィルタを適用する必要がある属性を指定します(必須)。有効な値は、次のとおりです。

  • INSTANCE_NUMBER - type NUMBER

  • USER - type STRING

  • MODULE - type STRING

  • ACTION - type STRING

  • PROGRAM - type STRING

  • SERVICE - type STRING

fvalue

フィルタがアクティブであるとみなされるようにするために、特定の属性と同じとなる値を指定します。 STRING型のすべての属性について%のようなワイルドカードを使用できます。 つまり、NUMBER属性のフィルタは属性=値として解析され、STRING属性のフィルタは属性と同様の値として解析されます(必須)。


使用上の注意


DELETE_CAPTURE_INFOプロシージャ

このプロシージャは、特定のワークロード取得IDに対応するDBA_WORKLOAD_CAPTURESビューおよびDBA_WORKLOAD_FILTERSビュー内の行を削除します。

構文

DBMS_WORKLOAD_CAPTURE.DELETE_CAPTURE_INFO
   capture_id     IN   NUMBER);

パラメータ

表144-3 DELETE_CAPTURE_INFOプロシージャのパラメータ

パラメータ 説明

capture_id

削除する必要があるワークロード取得のID。 DBA_WORKLOAD_CAPTURES.IDに対応します。(必須)


使用上の注意

進行中の取得のIDを渡すと、まず最初に、その取得が自動的に停止します。


DELETE_FILTERプロシージャ

このプロシージャは、指定したフィルタを削除します。

構文

DBMS_WORKLOAD_CAPTURE.DELETE_FILTER (
   filter_name           IN   VARCHAR2(40) NOT NULL);

パラメータ

表144-4 DELETE_FILTERプロシージャのパラメータ

パラメータ 説明

filter_name

削除するフィルタ。



EXPORT_AWRプロシージャ

このプロシージャは、特定の取得IDに関連付けられたAWRスナップショットをエクスポートします。

構文

DBMS_WORKLOAD_CAPTURE.EXPORT_AWR (
   capture_id     IN NUMBER);

パラメータ

表144-5 EXPORT_AWRプロシージャのパラメータ

パラメータ 説明

capture_id

AWRスナップショットがエクスポートされる取得のID。(必須)


使用上の注意

このプロシージャは対応するワークロード取得が現行のデータベースで実行され(このことは、DBA_WORKLOAD_CAPTURES内の対応する行がGET_CAPTURE_INFOファンクションのコールによって作成されていないことを意味します)、元の取得時間に対応するAWRスナップショットが使用可能である場合にのみ機能します。


FINISH_CAPTUREプロシージャ

このプロシージャでは、接続されたすべてのセッションに対してワークロード取得を停止するように信号を送信し、これ以降にデータベースへの要求が取得されないようにします。

構文

DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE
   timneout     IN   NUMBER  DEFAULT 30
   reason       IN   VARCHAR2 DEFAULT NULL);

パラメータ

表144-6 FINISH_CAPTUREプロシージャのパラメータ

パラメータ 説明

timeout

プロシージャがタイムアウトになるまでの待機時間を秒単位で指定します。現行のワークロード取得を取り消し、セッションによる取得バッファのフラッシュの実行を待機しない場合は、0を指定します。デフォルト値は30秒です。

reason

プロシージャをコールする理由を指定します。 理由は、DBA_WORKLOAD_CAPTURESビューのERROR_MESSAGE列に表示されます。


使用上の注意


GET_CAPTURE_INFOファンクション

このファンクションは、規定のディレクトリに存在するワークロード取得に関するすべての情報を取得してDBA_WORKLOAD_CAPTURESビューおよびDBA_WORKLOAD_FILTERSビューにインポートし、適切なDBA_WORKLOAD_CAPTURES.IDを戻します。

構文

DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO
   dir     IN   VARCHAR2)
  RETURN NUMBER;

パラメータ

表144-7 GET_CAPTURE_INFOファンクションのパラメータ

パラメータ 説明

dir

すべてのワークロード取得ファイルが保存されるDIRECTORYオブジェクトの名前(大/小文字が区別される)(必須)。


使用上の注意

規定のディレクトリでの取得を記述した適切な行がDBA_WORKLOAD_CAPTURESにすでに存在する場合、GET_CAPTURE_INFOファンクションは、その行のDBA_WORKLOAD_CAPTURES.IDを戻します。 規定のディレクトリに存在する取得と一致する既存の行が存在しない場合は、DBA_WORKLOAD_CAPTURESに新しい行が挿入され、その行のIDが戻されます。


IMPORT_AWRファンクション

EXPORT_AWRプロシージャを使用して元の取得システムからすでにAWRスナップショットがエクスポートされている場合、このプロシージャでは、特定の取得IDに関連付けられたAWRスナップショットがインポートされます。

構文

DBMS_WORKLOAD_CAPTURE.IMPORT_AWR (
   capture_id      IN  NUMBER,
   staging_schema  IN  VARCHAR2)
 RETURN NUMBER;

パラメータ

表144-8 IMPORT_AWRファンクションのパラメータ

パラメータ 説明

capture_id

AWRスナップショットがインポートされる取得のID。(必須)

staging_schema

取得ディレクトリからSYS AWRスキーマにAWRスナップショットをインポートする間に、ステージング領域として使用できる現行データベース内の有効なスキーマの名前。SYSスキーマは有効な入力ではありません(必須。大/小文字が区別される)。


戻り値

AWRスナップショットをインポートするときに使用した、ランダムに生成された新しいデータベースIDを戻します。 DBA_WORKLOAD_CAPTURESビューのAWR_DBID列に同じ値があります。

使用上の注意

入力として指定したstaging_schemaに、任意のAWR表と同じ名前(WRM$_SNAPSHOTWRH$_PARAMETERなど)を持つ表が含まれている場合、IMPORT_AWRは失敗します。このような表をstaging_schemaから削除してから、IMPORT_AWRを起動します。


PROCESS_CAPTUREプロシージャ

このプロシージャは、capture_dir内で検出されたワークロード取得を処理および分析し、指定したワークロード取得のリプレイに必要となる新しいワークロード・リプレイ固有のメタデータ・ファイルを作成します。

構文

DBMS_WORKLOAD_CAPTURE.PROCESS_CAPTURE (
   capture_dir        IN VARCHAR2,   parallel_level     IN NUMBER DEFAULT NULL);

パラメータ

表144-9 PROCESS_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_dir

ワークロード取得ディレクトリ・オブジェクトの名前(大/小文字が区別される)。ディレクトリ・オブジェクトは、適切な権限を持つ有効なOSディレクトリを指している必要があります。このディレクトリに新しいファイルが追加されます。(必須)

parallel_level

取得のパラレル処理に使用されるOracleプロセスの数。 デフォルト値のNULLに設定した場合は並列度が自動的に計算され、1に設定した場合はシリアル実行されます。


使用上の注意

このプロシージャは、同じ取得ディレクトリで複数回実行できるため、プロシージャに予期しないエラーが発生した場合またはユーザーによって取り消された場合に役立ちます。

このプロシージャが正常に実行されると、capture_dirに存在する取得済ワークロードをリプレイするために、capture_dirDBMS_WORKLOAD_REPLAYパッケージ内のINITIALIZE_REPLAYプロシージャへの入力として使用できます。


REPORTファンクション

このファンクションは、規定のワークロード取得に関するレポートを生成します。

構文

DBMS_WORKLOAD_CAPTURE.REPORT (
   capture_id      IN   NUMBER,
   format          IN   VARCHAR2)
 RETURN CLOB;

パラメータ

表144-10 REPORTファンクションのパラメータ

パラメータ 説明

capture_id

取得レポートが必要なワークロード取得のID。(必須)

このIDは、レポートを生成する必要があるワークロード取得を含むディレクトリに関連します。ワークロード取得を含む、ホスト・システム内の有効なディレクトリを示す有効なDIRECTORYオブジェクトである必要があります。

format

レポートの書式を指定します。 有効な値は、DBMS_WORKLOAD_CAPTURE.TYPE_TEXTおよびDBMS_WORKLOAD_CAPTURE.TYPE_HTMLです。(必須)


戻り値

指定した形式で表示されたレポート本文。CLOBとして戻されます。

表144-11 Reportファンクションで使用される定数

定数 説明

TYPE_HTML

VARCHAR2(4)

'HTML'

HTMLバージョンのレポートを生成します。

TYPE_TEXT

VARCHAR2(4)

'TEXT'

テキスト・バージョンのレポートを生成するには、これをformat引数への入力として使用します。



START_CAPTUREプロシージャ

このプロシージャは、すべてのインスタンスでワークロード取得を開始します。

構文

DBMS_WORKLOAD_CAPTURE.START_CAPTURE (
   name              IN  VARCHAR2,
   dir               IN  VARCHAR2,
   duration          IN  NUMBER   DEFAULT NULL,
   default_action    IN  VARCHAR2 DEFAULT 'INCLUDE',
   auto_unrestrict   IN  BOOLEAN  DEFAULT TRUE);

パラメータ

表144-12 START_CAPTUREプロシージャのパラメータ

パラメータ 説明

name

ワークロード取得の名前。後で参照するために、「感謝祭の週末」や「クリスマスの最盛期のワークロード」など、ワークロード取得にラベルを付けることができます。ワークロード取得の名前は、取得されたワークロード・アクションとともに保存されます。(必須)

dir

すべてのワークロード取得ファイルが保存されるDIRECTORYオブジェクトの名前(大/小文字が区別される)。すべてのワークロード取得ファイルを格納するのに十分な領域が必要です。(必須)

duration

ワークロードを取得する必要がある期間(秒単位)を指定するオプションの入力。 DEFAULTNULLです。これは、ユーザーがDBMS_WORKLOAD_CAPTURE.FINISH_CAPTUREを実行するまでワークロード取得が続行されることを意味します。

default_action

INCLUDEまたはEXCLUDEに設定できます。デフォルトですべてのユーザー要求を取得するか、または取得しないかが決定されます。また、指定したワークロード・フィルタをINCLUSIONフィルタとみなすか、またはEXCLUSIONフィルタとみなすかも決定されます。

  • INCLUDEの場合、フィルタで定義されたワークロードの部分以外は、データベースへのすべてのユーザー要求がデフォルトで取得されます。 この場合、ADD_FILTERプロシージャを使用して指定したフィルタはすべてEXCLUSIONフィルタとして処理され、取得しないワークロードが決定されます。 (DEFAULTおよび指定したすべてのフィルタは、EXCLUSIONフィルタとみなされます。)

  • EXCLUDEの場合、フィルタで定義されたワークロードの部分以外は、データベースへのユーザー要求はデフォルトでは取得されません。 この場合、ADD_FILTERプロシージャを使用して指定したフィルタはすべてINCLUSIONフィルタとして処理され、取得するワークロードが決定されます。

auto_unrestrict

TRUEまたはFALSEに設定できます。

  • TRUEの場合、STARTUP RESTRICTを使用してRESTRICTEDモードで起動したすべてのインスタンスは、START_CAPTUREの実行によって自動的に制限解除されます。 (DEFAULT

  • FALSEの場合、データベース・インスタンスが自動的に制限解除されることはありません。


使用上の注意