ヘッダーをスキップ
Oracle Database Real Application Testingユーザーズ・ガイド
11gリリース1(11.1)
B51856-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

5 データベース・ワークロードのリプレイ

この章では、テスト・システムでデータベース・ワークロードをリプレイする方法について説明します。 事前処理された取得済のワークロードは、同じバージョンのOracle Databaseが稼動するリプレイ・システムで繰り返しリプレイできます。

内容は次のとおりです。


ヒント:

データベース・ワークロードをリプレイする前に、次の操作を行う必要があります。

テスト・システムの設定

通常、事前処理したワークロードをリプレイするリプレイ・システムは、本番システムから切り離されたテスト・システムである必要があります。 テスト・システムは、リプレイに使用する前に、適切に準備しておく必要があります。詳細は、次の項を参照してください。

データベースのリストア

ワークロードをリプレイするには、アプリケーション・データの状態を、ワークロードの取得の開始時における取得システムのデータの状態と論理的に同じにする必要があります。 これによって、リプレイ時のデータの相違が最小限に抑えられます。 データベースのリストア方法は、ワークロードの取得前に使用したバックアップ方法に応じて異なります。 たとえば、取得システムのバックアップにRecovery Managerを使用した場合は、テスト・データベースの作成にRecovery ManagerのDUPLICATE機能を使用できます。 詳細は、「データベース・ワークロードの取得の前提条件」を参照してください。

テスト・システムで適切なアプリケーション・データを使用してデータベースを作成したら、テストするシステム変更(データベースやオペレーティング・システムのアップグレードなど)を行います。 データベース・リプレイの主な目的は、取得したワークロードでシステム変更の影響をテストすることです。 したがって、実行したシステム変更によって、取得したワークロードで実施するテストが定義されることになります。

システム時間の再設定

リプレイ・システム・ホストのシステム時間は、リプレイを開始する直前に取得の開始時間とほぼ一致する値に変更することをお薦めします。 そうしない場合、時間に依存するワークロードをリプレイするときに、無効なデータ・セットが生成されることがあります。 たとえば、取得したワークロードにSYSDATEおよびSYSTIMESTAMPファンクションを使用するSQL文が含まれている場合、システム時間が異なるシステムでそのワークロードをリプレイすると、データの相違が発生することがあります。 システム時間を再設定することによって、取得とリプレイの間のジョブ・スケジューリングの不一致も最小限に抑えられます。

データベース・ワークロードのリプレイの手順

ワークロードのリプレイを適切に計画すると、リプレイの正確性が保証されます。 データベース・ワークロードをリプレイするには、次の手順を実行する必要があります。

リプレイ・ディレクトリの設定

取得したワークロードは、事前処理してリプレイ・システムにコピーしておく必要があります。 事前処理したワークロードのコピー先ディレクトリのディレクトリ・オブジェクトが、リプレイ・システムに存在している必要があります。

外部システムへの参照の解決

取得したワークロードに、データベース・リンクや外部表などの外部システムへの参照が含まれている場合があります。 通常、このような外部との対話は、リプレイ時に他の本番システムに影響が及ばないように再構成する必要があります。 ワークロードのリプレイ前に解決する必要がある外部参照は、次のとおりです。

  • データベース・リンク

    通常、リプレイ・システムでは他のデータベースと対話しないことをお薦めします。 したがって、リプレイに必要なデータが含まれている適切なデータベースを指すように、すべてのデータベース・リンクを再構成する必要があります。

  • 外部表

    外部表で参照されるディレクトリ・オブジェクトを使用して指定されたすべての外部ファイルは、リプレイ時にデータベースで使用できる必要があります。 これらのファイルのコンテンツは取得時と同じままである必要があります。また、外部表を定義するために使用したファイル名およびディレクトリ・オブジェクトが有効である必要もあります。

  • ディレクトリ・オブジェクト

    本番システムのディレクトリへの参照は、データベースのリストア後にリプレイ・システムに存在するディレクトリ・オブジェクトを適切に再定義することによって再構成する必要があります。

  • URL

    ワークロードの取得時にアクセスしたWebサービスがリプレイ時に適切なURLを指すように、URLを構成する必要があります。

  • 電子メール

    リプレイ時に電子メール通知が再送信されないようにするには、送信電子メールのリクエストを無視するようにリプレイ・システムのメール・サーバーを構成する必要があります。


ヒント:

リプレイ時に他の本番システムに影響が及ばないようにするために、リプレイは、本番環境のホストにアクセスできない切り離されたプライベート・ネットワーク内で実行することをお薦めします。

接続の再マッピング

ワークロードの取得時に、本番システムへの接続に使用される接続文字列が取得されます。 リプレイが正常に完了するには、この接続文字列をリプレイ・システムに再マッピングする必要があります。 これによって、リプレイ・クライアントは再マッピングされた接続を使用してリプレイ・システムに接続できます。

Oracle Real Application Clusters(RAC)データベースの場合、すべての接続文字列をロード・バランシング接続文字列にマップできます。 これは、リプレイ・システムのノード数が取得システムとは異なる場合に特に便利です。 また、ワークロードを特定のインスタンスに適用する場合は、サービスを使用するか、または再マッピングした接続文字列でインスタンス識別子を明示的に指定することができます。

リプレイ・オプションの指定

データベースをリストアして接続を再マッピングしたら、必要に応じて次のリプレイ・オプションを設定できます。

コミット順序の保持

synchronizationパラメータによって、取得したワークロード内のCOMMITの順序をリプレイ時に保持するかどうかが制御されます。 デフォルトでは、このオプションは、取得したワークロード内のCOMMITの順序がリプレイ時に保持されるように有効になっています。 すべてのトランザクションは、すべての依存トランザクションがコミットされた後にのみ実行されます。

このオプションは無効にできますが、リプレイ時に大量のデータの相違が発生する可能性があります。 このような状況は、ワークロードが独立したトランザクションで主に構成され、同期されていないリプレイ時の相違が許容される場合には望ましいこともあります。

セッション・ログインの制御

connect_time_scaleパラメータによって、ワークロードの取得を開始した時点から各セッションが接続した時点までの経過時間をスケール変更できます。 このオプションでは、パーセント値を指定して、リプレイ時のセッションの接続時間を操作できます。 デフォルト値は100で、すべてのセッションへの接続が取得時のとおりに試行されます。 このパラメータを0(ゼロ)に設定すると、すべてのセッションへの接続が即時試行されます。

思考時間の制御

ユーザー思考時間とは、リプレイされたユーザーが単一セッションでコールの発行から次のコールの発行までに待機する経過時間です。 リプレイの速度を制御するには、think_time_scaleパラメータを使用してリプレイ時のユーザー思考時間をスケール変更します。 リプレイ時のユーザー・コールの実行が取得時より遅い場合は、think_time_auto_correctパラメータをTRUEに設定して、データベース・リプレイで遅延の回復を試行できます。 これによってリプレイ・クライアントでのコール間の思考時間を短縮できるため、リプレイ時の経過時間全体が取得時の経過時間により近くなります。

リプレイ・クライアントの設定

リプレイ・クライアントは、各スレッドによって取得済セッションからワークロードが発行されるマルチスレッド・プログラム($ORACLE_HOME/binディレクトリにあるwrcという実行可能ファイル)です。 データベースは、リプレイの開始前に、リプレイ・クライアントからの接続を待機します。 この時点で、リプレイ・クライアントを設定して起動する必要があります。このリプレイ・クライアントがリプレイ・システムに接続し、ワークロードに取得された内容に基づいてリクエストを送信します。

リプレイ・クライアントを起動する前に、次のことを確認します。

  • リプレイ・クライアント・ソフトウェアが実行場所のホストにインストールされていること

  • リプレイ・クライアントがリプレイ・ディレクトリにアクセスできること

  • リプレイ・ディレクトリに事前処理された取得済のワークロードが含まれていること

  • リプレイ・ユーザーが正しいユーザーID、パスワードおよび権限を持っていること(リプレイ・ユーザーにはDBAロールが必要であり、SYSユーザーはリプレイ・ユーザーになることができない)

これらの前提条件を満たしたら、wrc実行可能ファイルを使用してリプレイ・クライアントの設定および起動に進むことができます。 wrc実行可能ファイルでは、次の構文を使用します。

wrc [user/password[@server]] MODE=[value] [keyword=[value]]

パラメータuserおよびpasswordには、wrc実行可能ファイルがインストールされているホストに接続するためのユーザー名とパスワードを指定します。 パラメータserverには、wrc実行可能ファイルがインストールされているサーバーを指定します。 modeには、wrc実行可能ファイルを実行するモードを指定します。 指定可能な値は、replay(デフォルト)、calibratelist_hostsなどです。 パラメータkeywordには、実行に使用するオプションを指定します。これは選択したモードによって異なります。 指定可能なキーワードおよびそれらのキーワードに対応する値を表示するには、引数を指定せずにwrc実行可能ファイルを実行します。

次の項では、wrc実行可能ファイルの実行時に選択できるモードについて説明します。

リプレイ・クライアントの較正

1つのリプレイ・クライアントからデータベースとの複数のセッションを開始できるため、取得されたセッションごとにリプレイ・クライアントを起動する必要はありません。 起動する必要があるリプレイ・クライアントの数は、ワークロード・ストリームの数、ホストの数およびホストごとのリプレイ・クライアントの数によって異なります。

特定のワークロードのリプレイに必要なリプレイ・クライアントおよびホストの数を見積もるには、較正モードでwrc実行可能ファイルを実行します。

較正モードでは、wrc実行可能ファイルで次のキーワードを使用できます。

  • replaydir: リプレイする事前処理された取得済のワークロードを含むディレクトリを指定します。 指定しない場合は、デフォルトで現在のディレクトリが使用されます。

  • process_per_cpu: 各CPUで実行可能なクライアント・プロセスの最大数を指定します。 デフォルト値は4です。

  • threads_per_process: 1つのクライアント・プロセスで実行可能なスレッドの最大数を指定します。 デフォルト値は50です。

次の例は、較正モードでwrc実行可能ファイルを実行する方法を示しています。

%> wrc mode=calibrate replaydir=./replay

この例では、現在のディレクトリ内のreplayサブディレクトリに格納されている取得済のワークロードのリプレイに必要なリプレイ・クライアントおよびホストの数を見積もるために、wrc実行可能ファイルを実行しています。 次の出力例では、21個以上のリプレイ・クライアントを6個のCPUで分割して使用することが推奨されています。

Workload Replay Client: Release 11.1.0.7.0 - Production on Thu March 27
14:06:33 2008

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Report for Workload in: /oracle/replay/
-----------------------

Recommendation:
Consider using at least 21 clients divided among 6 CPU(s).

Workload Characteristics:
- max concurrency: 1004 sessions
- total number of sessions: 1013

Assumptions:
- 1 client process per 50 concurrent sessions
- 4 client process per CPU
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE

リプレイ・クライアントの起動

ワークロードのリプレイに必要なリプレイ・クライアントの数を決定したら、リプレイ・クライアントがインストールされているホストでwrc実行可能ファイルをリプレイ・モードで実行して、リプレイ・クライアントを起動する必要があります。 各リプレイ・クライアントは、起動されると、データベースとの1つ以上のセッションを開始してワークロードをリプレイします。

リプレイ・モードでは、wrc実行可能ファイルで次のキーワードを使用できます。

  • useridおよびpassword: リプレイ・クライアントのリプレイ・ユーザーのユーザーIDおよびパスワードを指定します。 指定しない場合は、デフォルトでsystemユーザーが使用されます。

  • server: リプレイ・システムへの接続に使用する接続文字列を指定します。 指定しない場合は、デフォルトで空の文字列が使用されます。

  • replaydir: リプレイする事前処理された取得済のワークロードを含むディレクトリを指定します。 指定しない場合は、デフォルトで現在のディレクトリが使用されます。

  • workdir: クライアント・ログが書き込まれるディレクトリを指定します。 このパラメータは、デバッグを目的としてdebugパラメータとの組合せでのみ使用します。

  • debug: デバッグ・データを作成するかどうかを指定します。 指定できる値は次のとおりです。

    • on

      作業ディレクトリの両方のファイルにデバッグ・データが書き込まれます

    • off

      デバッグ・データは書き込まれません(デフォルト値)


    注意:

    wrc実行可能ファイルをデバッグ・モードで実行する前に、詳細をOracleサポート・サービスに問い合せてください。

  • connection_override: DBA_WORKLOAD_CONNECTION_MAPビューに格納されている接続マッピングを無視するかどうかを指定します。 TRUEに設定すると、DBA_WORKLOAD_CONNECTION_MAPビューに格納されている接続の再マッピングは無視され、serverパラメータで指定した接続文字列が使用されます。 FALSEに設定すると、すべてのリプレイ・スレッドがDBA_WORKLOAD_CONNECTION_MAPビューに格納されている接続の再マッピングを使用して接続します。 これがデフォルト設定です。

次の例は、wrc実行可能ファイルをリプレイ・モードで実行する方法を示しています。

%> wrc system/oracle@test mode=replay replaydir=./replay

この例では、wrc実行可能ファイルによってリプレイ・クライアントが起動され、現在のディレクトリ内のreplayサブディレクトリに格納されている取得済のワークロードがリプレイされます。

すべてのリプレイ・クライアントが接続すると、データベースによって取得済のワークロードのストリームがすべての使用可能なリプレイ・クライアントに自動的に配分されます。 この時点で、ワークロードのリプレイが開始されます。 リプレイが終了すると、すべてのリプレイ・クライアントの接続が自動的に切断されます。

ホスト情報の表示

wrc実行可能ファイルをlist_hostsモードで実行すると、ワークロードの取得およびワークロードのリプレイに関連したホストを表示することができます。

list_hostsモードでは、wrc実行可能ファイルでキーワードreplaydirを使用できます。このキーワードは、リプレイする事前処理された取得済のワークロードが含まれているディレクトリを指定します。 指定しない場合は、デフォルトで現在のディレクトリが使用されます。

次の例は、list_hostsモードでwrc実行可能ファイルを実行する方法を示しています。

%> wrc mode=list_hosts replaydir=./replay

この例では、現在のディレクトリ内のreplayサブディレクトリに格納されているワークロードの取得またはリプレイに関連したすべてのホストを示すために、wrc実行可能ファイルを実行しています。 次の出力例では、ワークロードの取得およびその後の3回のリプレイに関連したホストが示されています。

Workload Replay Client: Release 11.1.0.7.0 - Production on Thu March 27 13:44:48 2008

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Hosts found:
Capture:
        prod1
        prod2
Replay 1:
        test1
Replay 2:
        test1
        test2
Replay 3:
        testwin

Enterprise Managerを使用したデータベース・ワークロードのリプレイ

この項では、Enterprise Managerを使用してデータベース・ワークロードをリプレイする方法について説明します。 データベース・ワークロードをリプレイするための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してデータベース・ワークロードをリプレイすることもできます。詳細は、「APIを使用したデータベース・ワークロードのリプレイ」を参照してください。

Enterprise Managerを使用してデータベース・ワークロードをリプレイするには、次の手順を実行します。

  1. 「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。

    「データベース・リプレイ」ページが表示されます。

  2. 「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。

    「ワークロード・リプレイ」ページが表示されます。

    dbr_replay_empty.gifの説明が続きます。
    dbr_replay_empty.gifの説明

  3. 「ディレクトリ・オブジェクト」リストで、リプレイする事前処理済のワークロードが含まれているディレクトリを選択します。

    ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。 詳細は、「リプレイ・ディレクトリの設定」を選択してください。

    dbr_replay_capture3.gifの説明が続きます。
    dbr_replay_capture3.gifの説明

    「取得サマリー」セクションに、選択したディレクトリ内の事前処理された取得済のワークロードに関する情報が表示されます。 取得済のワークロードのその他の詳細を表示するには、「詳細の取得」を開きます。 開いた「詳細の取得」セクションに、ワークロードのプロファイルおよびワークロードの取得時に使用したワークロード・フィルタが表示されます。

  4. 「リプレイの設定」をクリックします。

    「ワークロード・リプレイ: 前提条件」ページが表示されます。

  5. 操作を進める前に、すべての前提条件が満たされていることを確認します。

    テスト・システムでワークロードをリプレイする場合は、そのテスト・システムがリプレイ用に適切に準備されていることを確認してください。詳細は、「テスト・システムの設定」を選択してください。

    すべての前提条件が満たされたら、「続行」をクリックします。

    「ワークロード・リプレイ: 外部システムへの参照」ページが表示されます。

  6. すべての外部システムに対する潜在的な参照を確認し、無効な参照を変更します。

    「ワークロード・リプレイ: 外部システムへの参照」ページで使用可能なリンクを使用して、ワークロードの取得プロセス時に参照された可能性があるデータベース・リンク、ディレクトリ・オブジェクトおよびOracle Streamsを確認します。 他にも、これらのカテゴリに含まれていない外部システムへの参照が存在する場合があります。 詳細は、「外部システムへの参照の解決」を参照してください。

    外部システムへのすべての参照を確認し、必要に応じて変更した後で、「続行」をクリックします。

    「ワークロード・リプレイ: 初期オプションの選択」ページが表示されます。

    dbr_replay_init_options.gifの説明が続きます。
    dbr_replay_init_options.gifの説明

  7. 「リプレイ名」フィールドにリプレイの名前を入力するか、またはシステムによって生成された名前をそのまま使用できます。

  8. 「初期オプション」で、デフォルトのリプレイ・オプションを使用するか、前回のリプレイ(使用可能な場合)のリプレイ・オプションを使用するかを選択します。 以前のリプレイが複数存在する場合は、使用するリプレイを「リプレイ名」リストから選択します。

    「次へ」をクリックします。

    「ワークロード・リプレイ: オプションのカスタマイズ」ページが表示されます。

    dbr_replay_cust_options.gifの説明が続きます。
    dbr_replay_cust_options.gifの説明

  9. 取得した接続文字列を、リプレイ・システムを指す接続文字列に再マッピングします。

    「接続マッピング」タブをクリックします。 取得した接続文字列を再マッピングするには、複数の方法があります。 次のいずれかを選択できます。

    • すべてのクライアント接続に対して単一の接続記述子を使用します。: このオプションを選択し、使用する接続記述子を入力します。 接続記述子はリプレイ・システムを指している必要があります。

      接続をテストするには、「接続のテスト」をクリックします。 接続記述子が有効な場合は、正常に接続されたことを示す情報メッセージが表示されます。

    • すべてのクライアント接続に対して単一のTNSネット・サービス名を使用します。: このオプションを選択し、使用するサービス名を入力します。 すべてのリプレイ・クライアントがネット・サービス名を解決できる必要があります。ネット・サービス名の解決は、ローカルのtnsnames.oraファイルを使用して行うことができます。

    • ワークロードで取得済の各クライアント接続記述子に対して、個別の接続記述子またはネット・サービス名を使用します。: このオプションを選択し、取得システムの値ごとにリプレイ・クライアントで使用される対応リプレイ・システム値を入力します。

    詳細は、「接続の再マッピング」を参照してください。

  10. リプレイ・パラメータを使用してリプレイ・オプションを指定します。

    リプレイの動作を変更するには、「リプレイ・パラメータ」タブをクリックし、リプレイ・パラメータごとに目的の値を入力します。 デフォルト値を使用することをお薦めします。 リプレイ・パラメータの設定については、「リプレイ・オプションの指定」を参照してください。

    dbr_replay_params.gifの説明が続きます。
    dbr_replay_params.gifの説明

    リプレイ・パラメータを設定したら、「次へ」をクリックします。

    「ワークロード・リプレイ: リプレイ・クライアントの準備」ページが表示されます。

  11. リプレイ・クライアントがリプレイ用に準備されていることを確認します。

    次に進む前に、リプレイ・クライアントを準備する必要があります。 詳細は、「リプレイ・クライアントの設定」を参照してください。

    すべてのリプレイ・クライアントの起動準備が完了したら、「次へ」をクリックします。

    「ワークロード・リプレイ: クライアント接続の待機」ページが表示されます。

    dbr_replay_client.gifの説明が続きます。
    dbr_replay_client.gifの説明

  12. リプレイ・クライアントを起動します。

    リプレイ・クライアントの起動については、「リプレイ・クライアントの設定」を参照してください。

    リプレイ・クライアントが起動すると、「クライアント接続」にリプレイ・クライアントの接続が表示されます。 すべてのリプレイ・クライアントが接続したら、「次へ」をクリックします。

    「ワークロード・リプレイ: 確認」ページが表示されます。

    dbr_replay_review.gifの説明が続きます。
    dbr_replay_review.gifの説明

  13. ワークロードのリプレイに関して定義したオプションおよびパラメータを確認します。

    リプレイを開始する前に、システム時計をできるかぎり取得の開始時間に近い値に再設定します。 これによって、時間に依存するワークロードのリプレイで発生の可能性があるデータの相違が最小限に抑えられます。 詳細は、「システム時計の再設定」を参照してください。

    リプレイを実行するには、「発行」をクリックします。 リプライ・クライアントが接続されていない場合、このボタンは無効になります。変更する場合は、「戻る」をクリックします。 変更を保存せずにリプレイを取り消す場合は、「取消」をクリックします。

    リプレイを開始すると、「ワークロード・リプレイの表示」ページが表示されます。 アクティブなワークロードのリプレイの監視については、「アクティブなワークロードのリプレイの監視」を参照してください。

Enterprise Managerを使用したワークロードのリプレイの監視

この項では、Enterprise Managerを使用してワークロードのリプレイを監視する方法について説明します。 ワークロードのリプレイを監視するための主要ツールは、Oracle Enterprise Managerです。Enterprise Managerを使用すると、次の操作を実行できます。

なんらかの理由でOracle Enterprise Managerを使用できない場合は、ビューを使用してワークロードのリプレイを監視できます。詳細は、「ビューを使用したワークロードのリプレイの監視」を参照してください。

内容は次のとおりです。

アクティブなワークロードのリプレイの監視

この項では、Enterprise Managerを使用してアクティブなワークロードのリプレイを監視する方法について説明します。

アクティブなワークロードのリプレイを監視するには、次の手順を実行します。

  1. 「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。

    「データベース・リプレイ」ページが表示されます。

  2. 「アクティブな取得とリプレイ」で、監視するワークロードのリプレイを選択し、「表示」をクリックします。

    「ワークロード・リプレイの表示」ページが表示されます。

    dbr_replay_view_active.gifの説明が続きます。
    dbr_replay_view_active.gifの説明

  3. 「サマリー」に、ワークロードのリプレイに関する情報が表示されます。

  4. ワークロード・プロファイルを表示するには、「ワークロード・プロファイル」タブをクリックします。

    「経過時間の比較」のグラフは、ワークロードの取得時の経過時間と比較して、同じワークロードをリプレイした際の経過時間が示されます。 「リプレイ」の棒が「取得」の棒より短い場合は、リプレイ・システムのワークロードが取得システムのワークロードより速く処理されることを示しています。 ワークロードのリプレイが実行中の場合は、「取得」の棒の一部がリプレイ未実行として表示されています。

    「相違」には、リプレイ・システムと取得システムの間のエラーおよびデータの相違が表示されます。 この情報は、リプレイ品質の評価基準として使用できます。

    取得時とリプレイ時のワークロードの詳細な比較を表示するには、「詳細な比較」を開きます。

    dbr_replay_view_detail.gifの説明が続きます。
    dbr_replay_view_detail.gifの説明

    このセクションには次の情報が表示されます。

    • 期間

      ワークロードに取得された期間が、ワークロードのリプレイにかかる時間と比較されます。 「取得」列には、取得された期間が表示されます。 「リプレイ」列には、ワークロードのリプレイにかかる時間の長さが表示されます。 「取得の割合」列には、ワークロードのリプレイにかかる期間が、取得された期間に対する割合として表示されます。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しています。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しています。

    • データベース時間

      取得された期間に消費されたデータベース時間が、ワークロードのリプレイ時に消費されるデータベース時間と比較されます。

    • 平均アクティブ・セッション

      ワークロードに取得された平均アクティブ・セッションの数が、リプレイされる平均アクティブ・セッションの数と比較されます。

    • ユーザー・コール

      ワークロードに取得されたユーザー・コールの数が、リプレイされるユーザー・コールの数と比較されます。

    ワークロードのリプレイ・レポートを表示するには、「ワークロード・リプレイレポートの表示」をクリックします。

  5. 取得システムおよびリプレイ・システムで使用された接続文字列を表示するには、「接続マッピング」タブをクリックします。

  6. ワークロードのリプレイで使用されたリプレイ・パラメータを表示するには、「リプレイ・パラメータ」タブをクリックします。

  7. ワークロードのリプレイを停止するには、「リプレイの停止」をクリックします。

  8. 「データベース・リプレイ」ページに戻るには、「OK」をクリックします。

完了したワークロードのリプレイの表示

この項では、完了したワークロードのリプレイをEnterprise Managerを使用して表示する方法について説明します。

完了したワークロードのリプレイを表示するには、次の手順を実行します。

  1. 「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。

    「データベース・リプレイ」ページが表示されます。

  2. 「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。

    「ワークロード・リプレイ」ページが表示されます。

  3. 「ディレクトリ・オブジェクト」リストで、リプレイに使用された事前処理済のワークロードが含まれているディレクトリを選択します。

    ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。

  4. 「リプレイ履歴」セクションに、取得したワークロードのこれまでのリプレイが表示されます。 これまでのリプレイの詳細を表示するには、リプレイを選択して「表示」をクリックします。

    「ワークロード・リプレイの表示」ページが表示されます。

  5. 「サマリー」に、ワークロードのリプレイに関する情報が表示されます。

  6. ワークロード・プロファイルを表示するには、「ワークロード・プロファイル」タブをクリックします。

    「経過時間の比較」のグラフは、ワークロードの取得時の経過時間と比較して、同じワークロードをリプレイした際の経過時間が示されます。 「リプレイ」の棒が「取得」の棒より短い場合は、リプレイ・システムのワークロードが取得システムのワークロードより速く処理されることを示しています。

    「相違」には、リプレイ・システムと取得システムの間のエラーおよびデータの相違が表示されます。 この情報は、リプレイ品質の評価基準として使用できます。

    取得時とリプレイ時のワークロードの詳細な比較を表示するには、「詳細な比較」を開きます。 このセクションには次の情報が表示されます。

    • 期間

      ワークロード内に取得された期間が、ワークロードのリプレイにかかった時間と比較されます。 「取得」列には、取得された期間が表示されます。 「リプレイ」列に、ワークロードのリプレイにかかった時間の長さが表示されます。 「取得の割合」列には、ワークロードのリプレイにかかった時間が、取得された期間に対する割合として表示されます。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しました。 値が100%を超える場合、リプレイ・システムは取得システムより遅くワークロードを処理しました。

    • データベース時間

      取得された期間に消費されたデータベース時間が、ワークロードのリプレイ時に消費されるデータベース時間の長さと比較されます。

    • 平均アクティブ・セッション

      ワークロードに取得された平均アクティブ・セッションの数が、リプレイされる平均アクティブ・セッションの数と比較されます。

    • ユーザー・コール

      ワークロードに取得されたユーザー・コールの数が、リプレイされるユーザー・コールの数と比較されます。

    ワークロードのリプレイ・レポートを表示するには、「ワークロード・リプレイレポートの表示」をクリックします。

  7. 取得システムおよびリプレイ・システムで使用された接続文字列を表示するには、「接続マッピング」タブをクリックします。

  8. ワークロードのリプレイで使用されたリプレイ・パラメータを表示するには、「リプレイ・パラメータ」タブをクリックします。

  9. レポートを実行するには、「レポート」タブをクリックします。

    dbr_replay_view_report.gifの説明が続きます。
    dbr_replay_view_report.gifの説明

    完了したワークロードのリプレイに対して実行できるレポートには、いくつかの種類があります。

    • ワークロードのリプレイ

      ワークロードのリプレイ・レポートには、取得システムとリプレイ・システムの間のデータおよびパフォーマンスの相違の評価に使用できる情報が含まれています。 このレポートを実行するには、「ワークロード・リプレイレポート」でレポートの実行をクリックします。 ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。

    • AWRの期間比較

      AWRの期間比較レポートは、あるワークロードの取得またはリプレイと、別のワークロードの取得またはリプレイに含まれるAWRデータを比較する場合に使用できます。 このレポートを実行する前に、取得またはリプレイしたワークロードのAWRデータを事前にエクスポートしておく必要があります。 このレポートを実行するには、「AWRの期間比較レポート」で、比較する1番目および2番目のワークロードの取得またはリプレイを選択し、レポートの実行をクリックします。 取得またはリプレイしたワークロードからAWRデータを事前にエクスポートしていない場合は、続行する前にAWRデータをインポートするように求められます。 AWRの期間比較レポートの詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください。

    • AWR

      AWRレポートには、取得またはリプレイしたワークロードに含まれているAWRデータが示されます。 このレポートを実行する前に、取得またはリプレイしたワークロードから事前にAWRデータをエクスポートしておく必要があります。 このレポートを実行するには、「AWRレポート」で、AWRレポートを生成するワークロードの取得またはリプレイを選択し、「レポートの実行」をクリックします。 取得またはリプレイしたワークロードからAWRデータを事前にエクスポートしていない場合は、続行する前にAWRデータをインポートするように求められます。 AWRレポートの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

    • ASH

      ASHレポートには、取得またはリプレイしたワークロードの指定期間のアクティブ・セッション履歴(ASH)情報が含まれています。 このレポートを実行する前に、取得またはリプレイしたワークロードから事前にAWRデータをエクスポートしておく必要があります。 このレポートを実行するには、「ASHレポート」でASHレポートを生成するワークロードの取得またはリプレイを選択します。 「開始日」、「開始時間」、「終了日」および「終了時間」フィールドを使用して期間を指定します。 「フィルタ」フィールドを使用してフィルタを適用することもできます。 期間およびフィルタを指定したら、「レポートの実行」をクリックします。 取得またはリプレイしたワークロードからAWRデータを事前にエクスポートしていない場合は、続行する前にAWRデータをインポートするように求められます。 ASHレポートの詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください。

    レポートの生成中は、「レポート」ウィンドウが表示されます。レポートが生成されたら、「ファイルに保存」をクリックしてレポートを保存できます。

  10. 「データベース・リプレイ」ページに戻るには、「OK」をクリックします。

APIを使用したデータベース・ワークロードのリプレイ

この項では、DBMS_WORKLOAD_REPLAYパッケージを使用してデータベース・ワークロードをリプレイする方法について説明します。 データベース・ワークロードは、Oracle Enterprise Managerを使用してリプレイすることもできます。詳細は、「Enterprise Managerを使用したデータベース・ワークロードのリプレイ」を参照してください。

DBMS_WORKLOAD_REPLAYパッケージを使用したデータベース・ワークロードのリプレイは、次に示す複数の手順で構成されているプロセスです。


参照:

DBMS_WORKLOAD_REPLAYパッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

リプレイ・データの初期化

取得したワークロードを事前処理し、テスト・システムを適切に準備したら、リプレイ・データを初期化できます。 リプレイ・データの初期化では、必要なメタデータが、ワークロードのリプレイで必要な表にロードされます。 たとえば、取得した接続文字列が、リプレイ用に再マッピング可能な表にロードされます。

リプレイ・データを初期化するには、次のようにINITIALIZE_REPLAYプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY (replay_name => 'dec06_102',
                           replay_dir => 'dec06');
END;
/

この例では、INITIALIZE_REPLAYプロシージャによって事前処理済のワークロード・データがdec06ディレクトリからデータベースにロードされます。

この例のINITIALIZE_REPLAYプロシージャでは、次のパラメータを使用します。

  • replay_name: 以前のリプレイの設定およびフィルタを取得するために他のAPIで使用できるリプレイ名を指定する必須パラメータ。

  • replay_dir: リプレイする取得済のワークロードを含むディレクトリを指定する必須パラメータ。


参照:


接続の再マッピング

リプレイ・データを初期化したら、ユーザー・セッションが適切なデータベースに接続し、リプレイ時に取得される場合と同様に外部との対話を実行できるように、取得済のワークロードで使用されている接続文字列を再マッピングする必要があります。 接続マッピングを表示するには、DBA_WORKLOAD_CONNECTION_MAPビューを使用します。 接続の再マッピングについては、「接続の再マッピング」を参照してください。

接続を再マッピングするには、次のようにREMAP_CONNECTIONプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (connection_id => 101,
                           replay_connection => 'dlsun244:3434/bjava21');
END;
/

この例では、接続ID 101に対応する接続で、replay_connectionパラメータで定義された新しい接続文字列が使用されます。

この例のREMAP_CONNECTIONプロシージャでは、次のパラメータを使用します。

  • connection_id: リプレイ・データの初期化時に生成され、取得したワークロードの接続に対応している必須パラメータ。

  • replay_connection: ワークロードのリプレイ時に使用される新しい接続文字列を指定する任意パラメータ。

ワークロードのリプレイ・オプションの設定

リプレイ・データを初期化し、接続を適切に再マッピングしたら、ワークロードのリプレイ用にデータベースを準備する必要があります。 ワークロードのリプレイの準備については、「データベース・ワークロードのリプレイの手順」を参照してください。

リプレイ・システムでワークロードのリプレイを準備するには、次のようにPREPARE_REPLAYプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (synchronization => TRUE);
END;
/

この例では、PREPARE_REPLAYプロシージャによって、事前に初期化されたリプレイが準備されます。 取得したワークロード内のCOMMITの順序は保持されます。

PREPARE_REPLAYプロシージャでは、次のパラメータを使用します。

  • synchronization: ワークロードのリプレイ時に同期化を使用するかどうかを決定する必須パラメータ。 このパラメータをTRUEに設定すると、取得したワークロード内のCOMMITの順序がリプレイ時に保持され、すべてのリプレイ・アクションがすべての依存COMMITアクションの完了後にのみ実行されます。 デフォルト値はTRUEです。

  • connect_time_scale: 指定した値で、ワークロードの取得を開始した時点からセッションが接続する時点までの経過時間をスケール変更する任意パラメータ。%値として解釈されます。 このパラメータを使用して、リプレイ時の同時ユーザー数を増減します。 デフォルト値は100です。

  • think_time_scale: 同一セッションからの連続する2つのユーザー・コール間の経過時間をスケール変更する任意パラメータ。%値として解釈されます。 このパラメータを0(ゼロ)に設定すると、リプレイ時にユーザー・コールは可能なかぎり後続でデータベースに送信されます。 デフォルト値は100です。

  • think_time_auto_correct: リプレイ時にユーザー・コールの完了にかかる時間が取得時より長い場合に、コール間の思考時間を(think_time_scaleパラメータに基づいて)変更する任意パラメータ。TRUEまたはFALSEに設定できます。 デフォルト値はTRUEです。

これらのパラメータの設定の詳細は、「リプレイ・オプションの指定」を参照してください。

ワークロードのリプレイの開始

ワークロードのリプレイを開始する前に、次の操作を行う必要があります。

ワークロードのリプレイを開始するには、次のようにSTART_REPLAYプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.START_REPLAY ();
END;
/

ワークロードのリプレイの停止

ワークロードのリプレイを停止するには、次のようにCANCEL_REPLAYプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.CANCEL_REPLAY ();
END;
/

ワークロードのリプレイのAWRデータのエクスポート

AWRデータをエクスポートすると、ワークロードの詳細な分析が可能になります。このデータは、2つのワークロードの取得(またはリプレイ)に対してAWR期間比較レポートを実行する場合には必須です。

AWRデータをエクスポートするには、次のようにEXPORT_AWRプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.EXPORT_AWR (replay_id => 1);
END;
/

この例では、リプレイIDが1のワークロードのリプレイに対応するAWRスナップショットがエクスポートされます。 EXPORT_AWRプロシージャでは、必須パラメータreplay_idを使用します。このパラメータは、AWRスナップショットをエクスポートするリプレイのIDを指定します。 このプロシージャは、対応するワークロードのリプレイが現在のデータベースで以前に実行されており、元のリプレイ期間に対応するAWRスナップショットが現在も使用可能である場合にのみ動作します。

ビューを使用したワークロードのリプレイの監視

この項では、ワークロードのリプレイを監視するために表示できるビューの概要を示します。これらのビューにアクセスするには、DBA権限が必要です。


参照:

これらのビューについては、『Oracle Databaseリファレンス』を参照してください。