この章では、テスト・システムでデータベース・ワークロードをリプレイする方法について説明します。 事前処理された取得済のワークロードは、同じバージョンの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(ゼロ)に設定すると、すべてのセッションへの接続が即時試行されます。
リプレイ・クライアントは、各スレッドによって取得済セッションからワークロードが発行されるマルチスレッド・プログラム($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
(デフォルト)、calibrate
、list_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を使用してデータベース・ワークロードをリプレイする方法について説明します。 データベース・ワークロードをリプレイするための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してデータベース・ワークロードをリプレイすることもできます。詳細は、「APIを使用したデータベース・ワークロードのリプレイ」を参照してください。
Enterprise Managerを使用してデータベース・ワークロードをリプレイするには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。
「データベース・リプレイ」ページが表示されます。
「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。
「ワークロード・リプレイ」ページが表示されます。
「ディレクトリ・オブジェクト」リストで、リプレイする事前処理済のワークロードが含まれているディレクトリを選択します。
ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。 詳細は、「リプレイ・ディレクトリの設定」を選択してください。
「取得サマリー」セクションに、選択したディレクトリ内の事前処理された取得済のワークロードに関する情報が表示されます。 取得済のワークロードのその他の詳細を表示するには、「詳細の取得」を開きます。 開いた「詳細の取得」セクションに、ワークロードのプロファイルおよびワークロードの取得時に使用したワークロード・フィルタが表示されます。
「リプレイの設定」をクリックします。
「ワークロード・リプレイ: 前提条件」ページが表示されます。
操作を進める前に、すべての前提条件が満たされていることを確認します。
テスト・システムでワークロードをリプレイする場合は、そのテスト・システムがリプレイ用に適切に準備されていることを確認してください。詳細は、「テスト・システムの設定」を選択してください。
すべての前提条件が満たされたら、「続行」をクリックします。
「ワークロード・リプレイ: 外部システムへの参照」ページが表示されます。
すべての外部システムに対する潜在的な参照を確認し、無効な参照を変更します。
「ワークロード・リプレイ: 外部システムへの参照」ページで使用可能なリンクを使用して、ワークロードの取得プロセス時に参照された可能性があるデータベース・リンク、ディレクトリ・オブジェクトおよびOracle Streamsを確認します。 他にも、これらのカテゴリに含まれていない外部システムへの参照が存在する場合があります。 詳細は、「外部システムへの参照の解決」を参照してください。
外部システムへのすべての参照を確認し、必要に応じて変更した後で、「続行」をクリックします。
「ワークロード・リプレイ: 初期オプションの選択」ページが表示されます。
「リプレイ名」フィールドにリプレイの名前を入力するか、またはシステムによって生成された名前をそのまま使用できます。
「初期オプション」で、デフォルトのリプレイ・オプションを使用するか、前回のリプレイ(使用可能な場合)のリプレイ・オプションを使用するかを選択します。 以前のリプレイが複数存在する場合は、使用するリプレイを「リプレイ名」リストから選択します。
「次へ」をクリックします。
「ワークロード・リプレイ: オプションのカスタマイズ」ページが表示されます。
取得した接続文字列を、リプレイ・システムを指す接続文字列に再マッピングします。
「接続マッピング」タブをクリックします。 取得した接続文字列を再マッピングするには、複数の方法があります。 次のいずれかを選択できます。
すべてのクライアント接続に対して単一の接続記述子を使用します。: このオプションを選択し、使用する接続記述子を入力します。 接続記述子はリプレイ・システムを指している必要があります。
接続をテストするには、「接続のテスト」をクリックします。 接続記述子が有効な場合は、正常に接続されたことを示す情報メッセージが表示されます。
すべてのクライアント接続に対して単一のTNSネット・サービス名を使用します。: このオプションを選択し、使用するサービス名を入力します。 すべてのリプレイ・クライアントがネット・サービス名を解決できる必要があります。ネット・サービス名の解決は、ローカルのtnsnames.oraファイルを使用して行うことができます。
ワークロードで取得済の各クライアント接続記述子に対して、個別の接続記述子またはネット・サービス名を使用します。: このオプションを選択し、取得システムの値ごとにリプレイ・クライアントで使用される対応リプレイ・システム値を入力します。
詳細は、「接続の再マッピング」を参照してください。
リプレイ・パラメータを使用してリプレイ・オプションを指定します。
リプレイの動作を変更するには、「リプレイ・パラメータ」タブをクリックし、リプレイ・パラメータごとに目的の値を入力します。 デフォルト値を使用することをお薦めします。 リプレイ・パラメータの設定については、「リプレイ・オプションの指定」を参照してください。
リプレイ・パラメータを設定したら、「次へ」をクリックします。
「ワークロード・リプレイ: リプレイ・クライアントの準備」ページが表示されます。
リプレイ・クライアントがリプレイ用に準備されていることを確認します。
次に進む前に、リプレイ・クライアントを準備する必要があります。 詳細は、「リプレイ・クライアントの設定」を参照してください。
すべてのリプレイ・クライアントの起動準備が完了したら、「次へ」をクリックします。
「ワークロード・リプレイ: クライアント接続の待機」ページが表示されます。
リプレイ・クライアントを起動します。
リプレイ・クライアントの起動については、「リプレイ・クライアントの設定」を参照してください。
リプレイ・クライアントが起動すると、「クライアント接続」にリプレイ・クライアントの接続が表示されます。 すべてのリプレイ・クライアントが接続したら、「次へ」をクリックします。
「ワークロード・リプレイ: 確認」ページが表示されます。
ワークロードのリプレイに関して定義したオプションおよびパラメータを確認します。
リプレイを開始する前に、システム時計をできるかぎり取得の開始時間に近い値に再設定します。 これによって、時間に依存するワークロードのリプレイで発生の可能性があるデータの相違が最小限に抑えられます。 詳細は、「システム時計の再設定」を参照してください。
リプレイを実行するには、「発行」をクリックします。 リプライ・クライアントが接続されていない場合、このボタンは無効になります。変更する場合は、「戻る」をクリックします。 変更を保存せずにリプレイを取り消す場合は、「取消」をクリックします。
リプレイを開始すると、「ワークロード・リプレイの表示」ページが表示されます。 アクティブなワークロードのリプレイの監視については、「アクティブなワークロードのリプレイの監視」を参照してください。
この項では、Enterprise Managerを使用してワークロードのリプレイを監視する方法について説明します。 ワークロードのリプレイを監視するための主要ツールは、Oracle Enterprise Managerです。Enterprise Managerを使用すると、次の操作を実行できます。
アクティブなワークロードのリプレイの監視または停止
完了したワークロードのリプレイの表示
なんらかの理由でOracle Enterprise Managerを使用できない場合は、ビューを使用してワークロードのリプレイを監視できます。詳細は、「ビューを使用したワークロードのリプレイの監視」を参照してください。
内容は次のとおりです。
この項では、Enterprise Managerを使用してアクティブなワークロードのリプレイを監視する方法について説明します。
アクティブなワークロードのリプレイを監視するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。
「データベース・リプレイ」ページが表示されます。
「アクティブな取得とリプレイ」で、監視するワークロードのリプレイを選択し、「表示」をクリックします。
「ワークロード・リプレイの表示」ページが表示されます。
「サマリー」に、ワークロードのリプレイに関する情報が表示されます。
ワークロード・プロファイルを表示するには、「ワークロード・プロファイル」タブをクリックします。
「経過時間の比較」のグラフは、ワークロードの取得時の経過時間と比較して、同じワークロードをリプレイした際の経過時間が示されます。 「リプレイ」の棒が「取得」の棒より短い場合は、リプレイ・システムのワークロードが取得システムのワークロードより速く処理されることを示しています。 ワークロードのリプレイが実行中の場合は、「取得」の棒の一部がリプレイ未実行として表示されています。
「相違」には、リプレイ・システムと取得システムの間のエラーおよびデータの相違が表示されます。 この情報は、リプレイ品質の評価基準として使用できます。
取得時とリプレイ時のワークロードの詳細な比較を表示するには、「詳細な比較」を開きます。
このセクションには次の情報が表示されます。
期間
ワークロードに取得された期間が、ワークロードのリプレイにかかる時間と比較されます。 「取得」列には、取得された期間が表示されます。 「リプレイ」列には、ワークロードのリプレイにかかる時間の長さが表示されます。 「取得の割合」列には、ワークロードのリプレイにかかる期間が、取得された期間に対する割合として表示されます。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しています。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しています。
データベース時間
取得された期間に消費されたデータベース時間が、ワークロードのリプレイ時に消費されるデータベース時間と比較されます。
平均アクティブ・セッション
ワークロードに取得された平均アクティブ・セッションの数が、リプレイされる平均アクティブ・セッションの数と比較されます。
ユーザー・コール
ワークロードに取得されたユーザー・コールの数が、リプレイされるユーザー・コールの数と比較されます。
ワークロードのリプレイ・レポートを表示するには、「ワークロード・リプレイレポートの表示」をクリックします。
取得システムおよびリプレイ・システムで使用された接続文字列を表示するには、「接続マッピング」タブをクリックします。
ワークロードのリプレイで使用されたリプレイ・パラメータを表示するには、「リプレイ・パラメータ」タブをクリックします。
ワークロードのリプレイを停止するには、「リプレイの停止」をクリックします。
「データベース・リプレイ」ページに戻るには、「OK」をクリックします。
この項では、完了したワークロードのリプレイをEnterprise Managerを使用して表示する方法について説明します。
完了したワークロードのリプレイを表示するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。
「データベース・リプレイ」ページが表示されます。
「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。
「ワークロード・リプレイ」ページが表示されます。
「ディレクトリ・オブジェクト」リストで、リプレイに使用された事前処理済のワークロードが含まれているディレクトリを選択します。
ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。
「リプレイ履歴」セクションに、取得したワークロードのこれまでのリプレイが表示されます。 これまでのリプレイの詳細を表示するには、リプレイを選択して「表示」をクリックします。
「ワークロード・リプレイの表示」ページが表示されます。
「サマリー」に、ワークロードのリプレイに関する情報が表示されます。
ワークロード・プロファイルを表示するには、「ワークロード・プロファイル」タブをクリックします。
「経過時間の比較」のグラフは、ワークロードの取得時の経過時間と比較して、同じワークロードをリプレイした際の経過時間が示されます。 「リプレイ」の棒が「取得」の棒より短い場合は、リプレイ・システムのワークロードが取得システムのワークロードより速く処理されることを示しています。
「相違」には、リプレイ・システムと取得システムの間のエラーおよびデータの相違が表示されます。 この情報は、リプレイ品質の評価基準として使用できます。
取得時とリプレイ時のワークロードの詳細な比較を表示するには、「詳細な比較」を開きます。 このセクションには次の情報が表示されます。
期間
ワークロード内に取得された期間が、ワークロードのリプレイにかかった時間と比較されます。 「取得」列には、取得された期間が表示されます。 「リプレイ」列に、ワークロードのリプレイにかかった時間の長さが表示されます。 「取得の割合」列には、ワークロードのリプレイにかかった時間が、取得された期間に対する割合として表示されます。 値が100%未満の場合、リプレイ・システムは取得システムより速くワークロードを処理しました。 値が100%を超える場合、リプレイ・システムは取得システムより遅くワークロードを処理しました。
データベース時間
取得された期間に消費されたデータベース時間が、ワークロードのリプレイ時に消費されるデータベース時間の長さと比較されます。
平均アクティブ・セッション
ワークロードに取得された平均アクティブ・セッションの数が、リプレイされる平均アクティブ・セッションの数と比較されます。
ユーザー・コール
ワークロードに取得されたユーザー・コールの数が、リプレイされるユーザー・コールの数と比較されます。
ワークロードのリプレイ・レポートを表示するには、「ワークロード・リプレイレポートの表示」をクリックします。
取得システムおよびリプレイ・システムで使用された接続文字列を表示するには、「接続マッピング」タブをクリックします。
ワークロードのリプレイで使用されたリプレイ・パラメータを表示するには、「リプレイ・パラメータ」タブをクリックします。
レポートを実行するには、「レポート」タブをクリックします。
完了したワークロードのリプレイに対して実行できるレポートには、いくつかの種類があります。
ワークロードのリプレイ
ワークロードのリプレイ・レポートには、取得システムとリプレイ・システムの間のデータおよびパフォーマンスの相違の評価に使用できる情報が含まれています。 このレポートを実行するには、「ワークロード・リプレイレポート」でレポートの実行をクリックします。 ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。
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日でパフォーマンス・チューニング・ガイド』を参照してください。
レポートの生成中は、「レポート」ウィンドウが表示されます。レポートが生成されたら、「ファイルに保存」をクリックしてレポートを保存できます。
「データベース・リプレイ」ページに戻るには、「OK」をクリックします。
この項では、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
です。
これらのパラメータの設定の詳細は、「リプレイ・オプションの指定」を参照してください。
ワークロードのリプレイを開始する前に、次の操作を行う必要があります。
取得したワークロードの事前処理。詳細は、「APIを使用したデータベース・ワークロードの事前処理」を参照してください。
リプレイ・データの初期化。詳細は、「リプレイ・データの初期化」を参照してください。
リプレイ・オプションの指定。詳細は、「ワークロードのリプレイ・オプションの設定」を参照してください。
リプレイ・クライアントの起動。詳細は、「リプレイ・クライアントの開始」を参照してください。
ワークロードのリプレイを開始するには、次のようにSTART_REPLAY
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_REPLAY.START_REPLAY (); END; /
ワークロードのリプレイを停止するには、次のようにCANCEL_REPLAY
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_REPLAY.CANCEL_REPLAY (); END; /
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権限が必要です。
DBA_WORKLOAD_CAPTURES
ビュー: 現在のデータベースで取得されたワークロードの取得をすべて示します。
DBA_WORKLOAD_FILTERS
ビュー: ワークロードの取得およびワークロードのリプレイの両方に対して、現在のデータベースに定義されたすべてのワークロード・フィルタを示します。
DBA_WORKLOAD_REPLAYS
ビュー: 現在のデータベースでリプレイされたワークロードのリプレイをすべて示します。
DBA_WORKLOAD_REPLAY_DIVERGENCE
ビュー: このビューを使用すると、ワークロードのリプレイの相違を監視できます。
DBA_WORKLOAD_CONNECTION_MAP
ビュー: ワークロードのリプレイの接続マッピング情報を示します。
V$WORKLOAD_REPLAY_THREAD
ビュー: リプレイ・クライアントからのすべてのセッションに関する情報を示します。
参照: これらのビューについては、『Oracle Databaseリファレンス』を参照してください。 |