この章では、データベース・リプレイのレポートを生成および分析する方法について説明します。 データベース・リプレイのレポートには、ワークロードの取得レポートおよびワークロードのリプレイ・レポートの2種類があります。 ワークロードの取得レポートには、取得されたワークロードの統計、取得された上位セッション・アクティビティに関する情報、および取得プロセス中に使用されたワークロード・フィルタが含まれます。 ワークロードのリプレイ・レポートには、取得システムとリプレイ・システムのパフォーマンスの相違の評価に使用できる情報が含まれています。
内容は次のとおりです。
注意: リプレイの分析が完了したら、ワークロード・ディレクトリ・オブジェクトを別の物理的な場所にバックアップしてから、そのデータベースをワークロード取得時点の元の状態にリストアし、ワークロードのリプレイを繰り返して、システムに対する他の変更をテストすることができます。 |
この項では、Oracle Enterprise Managerを使用してワークロードの取得レポートを生成する方法について説明します。 ワークロードの取得レポートを生成するための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してワークロードの取得レポートを生成できます。詳細は、「APIを使用したワークロードの取得レポートの生成」を参照してください。
Enterprise Managerを使用してワークロードの取得レポートを生成するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。
「データベース・リプレイ」ページが表示されます。
「ワークロードの取得履歴の表示」をクリックします。
「ワークロードの取得履歴の表示」ページが表示されます。
ワークロードの取得レポートを実行するワークロードの取得を選択し、「表示」をクリックします。
「ワークロードの取得の表示」ページが表示されます。
ワークロードの取得レポートを表示するには、「ワークロードの取得レポートの表示」をクリックします。
レポートの生成中は、「レポート」ウィンドウが表示されます。
レポートが生成されたら、「ファイルに保存」をクリックしてレポートを保存できます。
ワークロードの取得レポートの使用方法については、「ワークロードの取得レポートの使用」を参照してください。
この項では、DBMS_WORKLOAD_CAPTURE
パッケージを使用してワークロードの取得レポートを生成する方法について説明します。 ワークロードの取得レポートは、Oracle Enterprise Managerを使用して生成することもできます。詳細は、「Enterprise Managerを使用したワークロードの取得レポートの生成」を参照してください。
最新のワークロードの取得に関するレポートを生成するには、次のようにDBMS_WORKLOAD_CAPTURE
.GET_CAPTURE_INFO
プロシージャおよびDBMS_WORKLOAD_CAPTURE.REPORT
ファンクションを使用します。
DECLARE cap_id NUMBER; cap_rpt CLOB; BEGIN cap_id := DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO(dir => 'dec06'); cap_rpt := DBMS_WORKLOAD_CAPTURE.REPORT(capture_id => cap_id, format => DBMS_WORKLOAD_CAPTURE.TYPE_TEXT); END; /
この例では、GET_CAPTURE_INFO
プロシージャは、dec06ディレクトリ内のワークロードの取得に関するすべての情報を収集し、そのワークロードの取得に対応する適切なcap_id
を戻します。 REPORT
ファンクションは、GET_CAPTURE_INFO
プロシージャによって戻されたcap_id
を使用してテキスト・レポートを生成します。
GET_CAPTURE_INFO
プロシージャでは、必須パラメータdir
を使用します。このパラメータは、ワークロードの取得のディレクトリ・オブジェクト名を指定します。
REPORT
ファンクションでは、次のパラメータを使用します。
capture_id
: レポートが生成されるワークロードの取得を含むディレクトリを指定する必須パラメータ。 このディレクトリは、ワークロードの取得を含むホスト・システム内の有効なディレクトリである必要があります。 このパラメータの値は、GET_CAPTURE_INFO
プロシージャによって戻されるcap_idに一致する必要があります。
format
: レポートの形式を指定する必須パラメータ。 有効値は、DBMS_WORKLOAD_CAPTURE.TYPE_TEXTおよびDBMS_WORKLOAD_REPLAY.TYPE_HTMLです。
ワークロードの取得レポートの使用方法については、「ワークロードの取得レポートの使用」を参照してください。
参照: DBMS_WORKLOAD_CAPTURE パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 |
ワークロードの取得レポートには、ワークロードの取得の有効性を評価するために使用できる様々なタイプの情報が含まれます。 このレポートに示される情報から、取得したワークロードについて、次の項目を確認できます。
リプレイする実際のワークロードを表しているかどうか
除外するワークロードが含まれていないかどうか
リプレイできるかどうか
ワークロードの取得レポートに含まれる情報は、次のカテゴリに分類されます。
ワークロードの取得に関する詳細情報(ワークロードの取得の名前、定義済のフィルタ、日付、時刻、取得のSCNなど)
ワークロードの取得に関する全般的な統計(取得済の合計DB時間、取得済のログインとトランザクションの数など)と、合計システム・アクティビティに対する割合
取得されたワークロードのプロファイル
バージョン制限のために取得されなかったワークロードのプロファイル
定義済のフィルタによって除外された未取得のワークロードのプロファイル
バックグラウンド・プロセスまたはスケジュール済のジョブで構成された未取得のワークロードのプロファイル
この項では、Oracle Enterprise Managerを使用してワークロードのリプレイ・レポートを生成する方法について説明します。 ワークロードのリプレイ・レポートを生成するための主要ツールは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、APIを使用してワークロードのリプレイ・レポートを生成できます。詳細は、「APIを使用したワークロードのリプレイ・レポートの生成」を参照してください。
Enterprise Managerを使用してワークロードのリプレイ・レポートを生成するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「データベース・リプレイ」をクリックします。
「データベース・リプレイ」ページが表示されます。
「タスクに移動」列で、「ワークロード・リプレイ」タスクに対応するアイコンをクリックします。
「ワークロード・リプレイ」ページが表示されます。
「ディレクトリ・オブジェクト」リストで、ワークロードのリプレイ・レポートを生成するリプレイで使用される事前処理済のワークロードが含まれているディレクトリを選択します。
ディレクトリを選択すると、「ワークロード・リプレイ」ページがリフレッシュされて「取得サマリー」および「リプレイ履歴」セクションが表示されます。
「リプレイ履歴」で、ワークロードのリプレイ・レポートを生成するリプレイを選択し、「表示」をクリックします。
「ワークロード・リプレイの表示」ページが表示されます。
「ワークロード・リプレイレポートの表示」をクリックします。
ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。
この項では、DBMS_WORKLOAD_REPLAY
パッケージを使用してワークロードのリプレイ・レポートを生成する方法について説明します。 ワークロードのリプレイ・レポートは、Oracle Enterprise Managerを使用して生成することもできます。詳細は、「Enterprise Managerを使用したワークロードのリプレイ・レポートの生成」を参照してください。
ワークロードの取得に関する最新のワークロードのリプレイ・レポートを生成するには、次のようにDBMS_WORKLOAD_REPLAY
.GET_REPLAY_INFOプロシージャおよびDBMS_WORKLOAD_REPLAY.REPORT
ファンクションを使用します。
ワークロードのリプレイ・レポートを生成するには、次のようにREPORT
ファンクションを使用します。
DECLARE cap_id NUMBER; rep_id NUMBER; rep_rpt CLOB; BEGIN cap_id := DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO(dir => 'dec06'); /* Get the latest replay for that capture */ SELECT max(id) INTO rep_id FROM dba_workload_replays WHERE capture_id = cap_id; rep_rpt := DBMS_WORKLOAD_REPLAY.REPORT(replay_id => rep_id, format => DBMS_WORKLOAD_REPLAY.TYPE_TEXT); END; /
この例では、GET_REPLAY_INFO
プロシージャが、dec06ディレクトリ内のワークロードの取得に関するすべての情報、およびこのディレクトリに含まれているワークロードのリプレイのすべての試行履歴を取得します。 このプロシージャは、最初にワークロードの取得に関する情報が含まれているDBA_WORKLOAD_CAPTURES
に行をインポートします。 次に、リプレイ試行がリプレイ・ディレクトリから取得されるたびに、DBA_WORKLOAD_REPLAYS
ビューに行をインポートします。 SELECT
文は、ワークロードの最新のリプレイの適切なrep_id
を戻します。 REPORT
ファンクションは、SELECT
文によって戻されたrep_id
を使用してテキスト・レポートを生成します。
GET_CAPTURE_INFO
プロシージャでは、必須パラメータdir
を使用します。このパラメータは、ワークロードのリプレイのディレクトリ・オブジェクト名を指定します。
REPORT
ファンクションでは、次のパラメータを使用します。
replay_id
: レポートが生成されるワークロードのリプレイを含むディレクトリを指定する必須パラメータ。 このディレクトリは、ワークロードのリプレイを含むホスト・システム内の有効なディレクトリである必要があります。 このパラメータの値は、GET_CAPTURE_INFO
プロシージャによって戻されるrep_idに一致する必要があります。
format
: レポートの形式を指定する必須パラメータ。 有効値は、DBMS_WORKLOAD_REPLAY.TYPE_TEXT、DBMS_WORKLOAD_REPLAY.TYPE_HTMLおよびDBMS_WORKLOAD_REPLAY.TYPE_HTMLです。
ワークロードのリプレイ・レポートの使用については、「ワークロードのリプレイ・レポートの使用」を参照してください。
参照: DBMS_WORKLOAD_REPLAY パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 |
テスト・システムでワークロードをリプレイすると、取得した内容とリプレイされる内容に多少の相違が発生する場合があります。 リプレイの相違が発生する要因は多数ありますが、それらはワークロードのリプレイ・レポートを使用して分析できます。 ワークロードのリプレイ・レポートに含まれている情報は、パフォーマンスおよびデータの相違で構成されています。
パフォーマンスの相違は、データベースのパフォーマンス全体に影響を与える新しいアルゴリズムがリプレイ・システムに導入された場合に発生する可能性があります。 たとえば、より新しいバージョンのOracle Databaseでワークロードがリプレイされると、新しいアルゴリズムによって特定のリクエストがより高速に実行される可能性があり、この高速の実行が相違として現れます。 この場合は、望ましい相違です。
データの相違は、DMLまたはSQL問合せの結果が、ワークロードですでに取得された結果と一致しない場合に発生します。 たとえば、リプレイ時にSQL文によって取得時より少ない数の行が戻されることがあります。
エラーの相違は、リプレイされたデータベース・コールで次のような状況が発生した場合に現れます。
取得されていない新しいエラーが発生した場合
取得されたエラーが発生しなかった場合
取得されたエラーとは異なるエラーが発生した場合
ワークロードのリプレイ・レポートに含まれる情報は、次のカテゴリに分類されます。
ワークロードのリプレイおよびワークロードの取得に関する詳細情報(ジョブ名、ステータス、データベース情報、各プロセスの継続時間と時刻、ディレクトリ・オブジェクト、ディレクトリ・パスなど)
ワークロードのリプレイに関して選択されたリプレイ・オプションおよび起動されたリプレイ・クライアントの数
ワークロードのリプレイおよびワークロードの取得に関する全般的な統計(取得済およびリプレイ済の合計DB時間、取得済およびリプレイ済のログインとトランザクションの数など)と、合計システム・アクティビティに対する割合
リプレイされたワークロードのプロファイル
リプレイの相違
エラーの相違
DMLおよびSQL問合せのデータの相違