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

戻る
戻る
 
次へ
次へ
 

145 DBMS_WORKLOAD_REPLAY

DBMS_WORKLOAD_REPLAYパッケージでは、DBMS_WORKLOAD_CAPTUREパッケージによって最初に作成されたワークロード取得をリプレイするために使用されるインタフェースが提供されます。 通常、DBMS_WORKLOAD_CAPTUREパッケージは、本番システムで本番ワークロードを取得する場合に使用され、DBMS_WORKLOAD_REPLAYパッケージは、その後、取得された本番ワークロードをテストするためにテスト・システムでリプレイする場合に使用されます。


関連項目:

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

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


DBMS_WORKLOAD_REPLAYの使用方法


セキュリティ・モデル

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

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_REPLAYサブプログラムの要約

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

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

サブプログラム 説明

CALIBRATEファンクション


処理されたワークロード取得ディレクトリで動作し、指定したワークロードを正確にリプレイするために必要とされるホストおよびワークロード・リプレイ・クライアントの数を見積もります。

CANCEL_REPLAYプロシージャ


進行中のワークロードのリプレイを取り消します。

DELETE_REPLAY_INFOプロシージャ


指定したワークロード・リプレイIDに対応するDBA_WORKLOAD_REPLAYS内の行を削除します。

EXPORT_AWRプロシージャ


指定したリプレイIDに関連付けられたAWRスナップショットをエクスポートします。

GET_REPLAY_INFOファンクション


ワークロード取得に関する情報と、関連ディレクトリからのすべてのワークロード・リプレイ試行の履歴に関する情報を取得します。

IMPORT_AWRファンクション


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

INITIALIZE_REPLAYプロシージャ


リプレイを初期化し、処理中に生成された特定のデータをデータベースにロードします。

PAUSE_REPLAYプロシージャ


進行中のワークロードのリプレイを一時停止します。

PREPARE_REPLAYプロシージャ


RDBMSを特別な準備モードにします。

PROCESS_CAPTUREプロシージャ


capture_dir内で検出されたワークロード取得を処理します。

REMAP_CONNECTIONプロシージャ


ワークロードのリプレイ中にユーザー・セッションが希望の方法でデータベースに接続できるように、取得された接続を新しい接続に再マップします。

REPORTファンクション


特定のワークロードのリプレイに関するレポートを生成します。

RESUME_REPLAYプロシージャ


一時停止しているワークロードのリプレイを再開します。

START_REPLAYプロシージャ


ワークロードのリプレイを開始します。



CALIBRATEファンクション

このファンクションは、処理されたワークロード取得ディレクトリで動作し、指定したワークロードを正確にリプレイするために必要とされるホストおよびワークロード・リプレイ・クライアントの数を見積もります。このファンクションは、結果をXML CLOBとして戻します。

構文

DBMS_WORKLOAD_REPLAY.CALIBRATE (
   capture_dir          IN VARCHAR2,
   process_per_cpu      IN BINARY_INTEGER DEFAULT 4,
   threads_per_process  IN BINARY_INTEGER DEFAULT 50)
  RETURN CLOB;

パラメータ

表145-2 CALIBRATEファンクションのパラメータ

パラメータ 説明

capture_dir

処理済の取得データが格納されたOSディレクトリを指すディレクトリ・オブジェクトの名前(大/小文字が区別される)。

process_per_cpu

CPUごとに許可される処理の最大数(デフォルトは4)。

threads_per_process

処理ごとに許可されるスレッドの最大数(デフォルトは50)。


戻り値

次の情報が含まれているXML形式のCLOBを戻します。

使用上の注意


CANCEL_REPLAYプロシージャ

このプロシージャは、進行中のワークロードのリプレイを取り消します。すべての外部リプレイ・クライアント(WRC)は、取得したワークロードの発行を停止し、終了するように自動的に通知されます。

構文

DBMS_WORKLOAD_REPLAY.CANCEL_REPLAY (
   error_msg    IN VARCHAR2 DEFAULT NULL);

パラメータ

表145-3 CANCEL_REPLAYプロシージャのパラメータ

パラメータ 説明

error_msg

リプレイを取り消すオプションの理由を渡すことができ、この理由はDBA_WORKLOAD_REPLAYS.ERROR_MESSAGEに記録されます。DEFAULTNULLです。


使用上の注意

前提条件: INITIALIZE_REPLAYプロシージャPAUSE_REPLAYプロシージャまたはSTART_REPLAYプロシージャに対するコールがすでに発行されています。


DELETE_REPLAY_INFOプロシージャ

このプロシージャは、指定したワークロード・リプレイIDに対応するDBA_WORKLOAD_REPLAYS内の行を削除します。

構文

DBMS_WORKLOAD_REPLAY.DELETE_REPLAY_INFO (
   replay_id    IN  NUMBER);

パラメータ

表145-4 DELETE_REPLAY_INFOプロシージャのパラメータ

パラメータ 説明

replay_id

削除する必要があるワークロード・リプレイのID。 DBA_WORKLOAD_REPLAYS.IDに対応します(必須)。



EXPORT_AWRプロシージャ

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

構文

DBMS_WORKLOAD_REPLAY.EXPORT_AWR (
   replay_id    IN  NUMBER);

パラメータ

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

パラメータ 説明

replay_id

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


使用上の注意


GET_REPLAY_INFOファンクション

このファンクションは、ワークロード取得に関する情報と、規定のディレクトリからのすべてのワークロード・リプレイ試行の履歴に関する情報を取得します。

構文

DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO (
   dir    IN VARCHAR2)
 RETURN NUMBER;

パラメータ

表145-6 GET_REPLAY_INFOファンクションのパラメータ

パラメータ 説明

dir

ワークロード・リプレイ・ディレクトリ・オブジェクトの名前(大/小文字が区別される)。(必須)


戻り値

このプロシージャは、インポートされた情報にアクセスするDBA_WORKLOAD_CAPTURE_IDおよびDBA_WORKLOAD_REPLAYS.CAPTURE.IDの両方に関連付けることができるCAPTURE_IDを戻します。

使用上の注意


IMPORT_AWRファンクション

このファンクションは、指定したリプレイからAWRスナップショットをインポートします。

構文

DBMS_WORKLOAD_REPLAY.IMPORT_AWR (
   replay_id       IN   NUMBER,
   staging_schema  IN   VARCHAR2)
  RETURN NUMBER;

パラメータ

表145-7 IMPORT_AWRファンクションのパラメータ

パラメータ 説明

replay_id

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

staging_schema

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


戻り値

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

使用上の注意


INITIALIZE_REPLAYプロシージャ

このプロシージャはデータベースの状態をREPLAYモードのINITに設定し、(PAUSE_REPLAYプロシージャを実行して)リプレイの準備をする前に、必要なリプレイ・システムにデータをロードします。

構文

DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY (
   replay_name     IN  VARCHAR2,
   replay_dir      IN  VARCHAR2);

パラメータ

表145-8 INITIALIZE_REPLAYプロシージャのパラメータ

パラメータ 説明

replay_name

ワークロード・リプレイの名前。処理済のワークロード取得のすべてのリプレイに名前を付けることができます。(必須)

replay_dir

処理済の取得データが格納されたOSディレクトリを指すディレクトリ・オブジェクトの名前(大/小文字が区別される)。


使用上の注意


PAUSE_REPLAYプロシージャ

このプロシージャは、進行中のワークロードのリプレイを一時停止します。 リプレイ・クライアントからの後続のすべてのコールは、RESUME_REPLAYプロシージャへのコールが発行されるか、またはリプレイが取り消されるまで停止状態になります。

構文

DBMS_WORKLOAD_REPLAY.PAUSE_REPLAY;

使用上の注意


PREPARE_REPLAYプロシージャ

このプロシージャは、データベースの状態をPREPARE FOR REPLAYモードに設定します。

構文

DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (
   synchronization           IN BOOLEAN  DEFAULT TRUE,
   connect_time_scale        IN NUMBER   DEFAULT 100,
   think_time_scale          IN NUMBER   DEFAULT 100,
   think_time_auto_correct   IN BOOLEAN  DEFAULT TRUE);

パラメータ

表145-9 PREPARE_REPLAYプロシージャのパラメータ

パラメータ 説明

synchronization

ワークロードのリプレイ中に、同期化をONまたはOFFにします。同期化がONの場合、元のワークロード取得時に確認されたCOMMITの順序は、リプレイ時にも維持されます。リプレイされるすべてのアクションは、従属するすべてのCOMMIT(元のワークロード取得で指定したアクションの前に発行されたすべてのCOMMIT)の実行が完了した後にのみ、実行されます。DEFAULTTRUEでは、コミットの順序が維持されます。

connect_time_scale

ワークロード取得が開始されてから、指定した値でセッションが接続されるまでの経過時間を変更します。入力は、%値として解釈されます。ワークロードのリプレイ中に同時ユーザー数を増加または削減する場合に使用できます。 DEFAULT VALUEは100です。「connect_time_scaleパラメータの適用」を参照してください。

think_time_scale

同じセッションからの2つの連続したユーザー・コール間の経過時間を変更します。入力は、%値として解釈されます。ワークロードのリプレイ中に同時ユーザー数を増加または削減する場合に使用できます。 DEFAULT VALUEは100です。「think_time_scaleパラメータの適用」を参照してください。

think_time_auto_correct

リプレイでのユーザー・コールの完了にかかる時間が、元の取得で同じユーザー・コールの完了にかかった時間よりも長くなる場合に、コール間の思考時間を適切に自動修正します。DEFAULTTRUEでは、リプレイが取得よりも遅くなった場合に思考時間が短縮されます。 「think_time_auto_correctパラメータの適用」を参照してください。


使用上の注意

connect_time_scaleパラメータの適用

元のワークロード取得中に次のことが確認されたとします。

12:00 : Capture was started
12:10 : First session connect  (10m after)
12:30 : Second session connect (30m after)
12:42 : Third session connect  (42m after)

connect_time_scaleが50の場合、セッション接続は次のようになります。

12:00 : Replay was started with 50% connect time scale
12:05 : First session connect  ( 5m after)
12:15 : Second session connect (15m after)
12:21 : Third session connect  (21m after)

connect_time_scaleが200の場合、セッション接続は次のようになります。

12:00 : Replay was started with 200% connect time scale
12:20 : First session connect  (20m after)
13:00 : Second session connect (60m after)
13:24 : Third session connect  (84m after)

think_time_scaleパラメータの適用

元のワークロード取得中に次のことが確認されたとします。

12:00 : User SCOTT connects
12:10 : First user call issued (10m after completion of prevcall)
12:14 : First user call completes in 4mins
12:30 : Second user call issued (16m after completion of prevcall)
12:40 : Second user call completes in 10m
12:42 : Third user call issued ( 2m after completion of prevcall)
12:50 : Third user call completes in 8m

ワークロードのリプレイ時にthink_time_scaleが50の場合、ユーザー・コールは次のようになります。

12:00 : User SCOTT connects
12:05 : First user call issued 5 mins (50% of 10m) after the completion of
        previous call
12:10 : First user call completes in 5m (takes a minute longer)
12:18 : Second user call issued 8 mins (50% of 16m) after the completion of prev
        call
12:25 : Second user call completes in 7m (takes 3 minutes less)
12:26 : Third user call issued 1 min  (50% of 2m) after the completion of prev
        call
12:35 : Third user call completes in 9m (takes a minute longer)

think_time_auto_correctパラメータの適用

元のワークロード取得中に次のことが確認されたとします。

12:00 : User SCOTT connects
12:10 : First user call issued (10m after completion of prevcall)
12:14 : First user call completes in 4m
12:30 : Second user call issued (16m after completion of prevcall)
12:40 : Second user call completes in 10m
12:42 : Third user call issued ( 2m after completion of prevcall)
12:50 : Third user call completes in 8m

ワークロードのリプレイ時にthink_time_scaleが100で、think_time_auto_correctがTRUEの場合、ユーザー・コールは次のようになります。

12:00 : User SCOTT connects
12:10 : First user call issued 10 mins after the completion of prev call
12:15 : First user call completes in 5m (takes 1 minute longer)
12:30 : Second user call issued 15 mins (16m minus the extra time of 1m the prev
        call took) after the completion of prev call
12:44 : Second user call completes in 14m (takes 4 minutes longer)
12:44 : Third user call issued immediately (2m minus the extra time of 4m the prev
        call took) after the completion of prev call
12:52 : Third user call completes in 8m

PROCESS_CAPTUREプロシージャ

このプロシージャは、capture_dir内で検出されたワークロード取得を処理します。

構文

DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE (
   capture_dir            IN   VARCHAR2);

パラメータ

表145-10 PROCESS_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_dir

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


使用上の注意


REMAP_CONNECTIONプロシージャ

このプロシージャは、ワークロードのリプレイ中にユーザー・セッションが希望の方法でデータベースに接続できるように、取得された接続を新しい接続に再マップします。

構文

DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (
   connection_id         IN  NUMBER,
   replay_connection     IN  VARCHAR2);

パラメータ

表145-11 REMAP_CONNECTIONプロシージャのパラメータ

パラメータ 説明

connection_id

再マップする接続のID。DBA_WORKLOAD_CONNECTION_MAP.CONN_IDに対応します。

replay_connection

リプレイ中に使用する新しい接続文字列。


使用上の注意


REPORTファンクション

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

構文

DBMS_WORKLOAD_REPLAY.REPORT (
   replay_id          IN NUMBER,
   format             IN VARCHAR2 )
  RETURN CLOB;

パラメータ

表145-12 REPORTファンクションのパラメータ

パラメータ 説明

replay_id

レポートが必要なワークロード・リプレイのIDを指定します。(必須)

format

レポートの書式を指定します。有効な値はXMLHTMLまたはTEXTです。(必須)


戻り値

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

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

定数 説明

TYPE_HTML

VARCHAR2(4)

'HTML'

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

TYPE_TEXT

VARCHAR2(4)

'TEXT'

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

TYPE_XML

VARCHAR2(3)

'XML'

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



RESUME_REPLAYプロシージャ

このプロシージャは、一時停止しているワークロードのリプレイを再開します。

構文

DBMS_WORKLOAD_REPLAY.RESUME_REPLAY;

使用上の注意

前提条件: PAUSE_REPLAYプロシージャに対するコールがすでに発行されています。


START_REPLAYプロシージャ

このプロシージャは、ワークロードのリプレイを開始します。現在リプレイ・データベースに接続されているすべての外部リプレイ・クライアント(WRC)が自動的に通知され、それらのリプレイ・クライアント(WRC)は取得されたワークロードの発行を開始します。

構文

DBMS_WORKLOAD_REPLAY.START_REPLAY;

使用上の注意