ヘッダーをスキップ
Oracle® Database Real Application Testingユーザーズ・ガイド
11gリリース2(11.2)
B56321-06
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 データベース・ワークロードの事前処理

ワークロードを取得し、テスト・システムの設定が完了したら、取得したデータを事前処理する必要があります。取得されたワークロードの事前処理によって、ワークロードのリプレイに必要なすべてのメタデータが作成されます。事前処理は、取得したワークロードをリプレイする前に、ワークロードごとに1回行う必要があります。取得したワークロードは、事前処理を行うと、リプレイ・システムで繰り返しリプレイできるようになります。

取得したワークロードを事前処理するには、まず、取得したすべてのデータ・ファイルを取得システムの格納先のディレクトリから、事前処理を実行するインスタンスのディレクトリに移動する必要があります。事前処理は、リソースを大量に必要とするため、次の条件を満たすシステムで実行する必要があります。

Oracle Real Application Clusters(Oracle RAC)では、事前処理用にリプレイ・システムのデータベース・インスタンスを1つ選択します。このインスタンスは、ローカル・ファイル・システムまたは共有ファイル・システムに格納可能な、事前処理を必要とする取得済データ・ファイルにアクセスできる必要があります。取得システムの取得ディレクトリ・パスがインスタンスごとに別々の物理ディレクトリに解決される場合、これらの各ディレクトリに作成されたすべての取得ファイルは、事前処理を実行する単一のディレクトリに移動する必要があります。

通常、取得したワークロードはリプレイ・システムで事前処理します。取得したワークロードをリプレイ・システムから切り離されたシステムで事前処理する場合は、事前処理完了後に、すべての事前処理済データ・ファイルを、事前処理を行ったシステムの格納先ディレクトリからリプレイ・システムのディレクトリに移動する必要があります。

この章は次の項で構成されています:


ヒント:

取得したワークロードを事前処理する前に、本番システムでワークロードを取得する必要があります。詳細は、第9章「データベース・ワークロードの取得」を参照してください。

10.1 Enterprise Managerを使用した単一のデータベース・ワークロードの準備

単一のワークロードを準備するには、次のタスクを実行する必要があります。

  • データベース・リプレイ・タスクの作成

  • リプレイ・タスクからのリプレイの作成

  • テスト・データベースの準備

  • ワークロードの前処理とリプレイ・クライアントのデプロイ


注意:

テスト・データベースの準備が必要なのは、まだ準備を行っていない場合のみです。

この後の各項では、これらのタスクの実行方法について説明します。

10.1.1 データベース・リプレイ・タスクの作成

続行するには、リプレイする取得に、取得されたユーザー・コールが存在している必要があります。

データベース・リプレイ・タスクを作成するには、次の手順に従います。

  1. データベース・リプレイ・ページで「リプレイ・タスク」タブをクリックし、ツールバーの「作成」をクリックします。

    タスクの作成ページが表示されます。

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

  2. タスクの名前を指定し、リプレイする取得を選択して、「発行」をクリックします。統合されたリプレイで、2つ以上の取得を選択します。

    データベース・リプレイ・ページが再度表示され、「リプレイ・タスク」タブの表に新しく作成されたリプレイ・タスクが表示されます。

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

10.1.2 リプレイ・タスクからのリプレイの作成

リプレイを作成するには、次の手順に従います。

  1. データベース・リプレイ・ページで「リプレイ・タスク」タブをクリックします。

  2. 表の必要なリプレイ・タスクのリンクをクリックします。

    取得のリプレイ・タスク・ページが表示されます。

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

  3. 「リプレイ」セクションの「作成」をクリックします。

    「リプレイの作成」ポップアップが表示されます。

  4. 必要な名前と説明(オプション)を入力し、「ターゲット・データベース」アイコンをクリックします。

    「検索と選択: ターゲット」ポップアップが表示されます。

  5. 必要なデータベースを選択して、「選択」をクリックします。

  6. 「リプレイの作成」ポップアップの「OK」をクリックします。

    必要なタスクを実行するリンク付きの「タスク・リスト」が含まれるリプレイのデータベース・リプレイ・ページが表示されます。

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

次の項で説明されている、「タスク・リスト」の最初のタスクに進みます。

10.1.3 テスト・データベースの準備

テスト・データベースの準備では、次の操作を実行します。

  • テスト・データベースの設定

  • テスト・データベースの分離


注意:

このタスクは任意で実行します。テスト・データベースをすでに設定している場合、「ワークロードの前処理とリプレイ・クライアントのデプロイ」に進みます。

次の手順は、各タスクの実行方法を説明しており、どのような順番で実行してもかまいません。

テスト・データベースを設定するには、次の手順に従います。

  1. 特定のリプレイのリプレイ・ページで、「テスト・データベースの設定」タスクのリンクをクリックします。

    テスト・データベースの設定ページが表示されます。

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

  2. データベースをアップグレードするかどうかを選択し、クラスタ・データベースであるかどうかを示します。

  3. 「既存データベース・ソフトウェアのクローニング」サブタスクの「タスクに移動」アイコンをクリックするか、先にテスト・データベースを作成する場合は「全タスクの有効化」をクリックします。

  4. ウィザードのオンライン・ヘルプに記載されている指示に従います。

    タスクが完了すると、各タスクの「ステータス」列にチェックマークが表示されます。

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

テスト・データベースを分離するには、次の手順に従います。

  1. 特定のリプレイのリプレイ・ページで、「テスト・データベースの分離」タスクのリンクをクリックします。

    外部システムへの参照はリプレイ中に問題の原因になる可能性があることを説明するページが表示されます。

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

  2. 表示されるリンクを使用して、可能性のある外部システムへの参照を検証し、無効な参照を変更して「OK」をクリックします。

    リプレイ・サマリー・ページが再度表示されます。

10.1.4 ワークロードの前処理とリプレイ・クライアントのデプロイ

リプレイの最終準備をするには、次の手順に従います。

  • ワークロードの前処理

    取得済の各ワークロードに対し、ワークロードをリプレイするデータベースのバージョンごとに1回前処理を実行します。ワークロードを前処理したら、テスト・データベースのバージョンがワークロードを前処理したバージョンと同じであるかぎり、それ以降のリプレイ・タスクでは、再度前処理をする必要なくそれをリプレイできます。たとえば、MyReplay1およびMyReplay2という2つのリプレイ名を持つリプレイ・タスクがある場合、MyReplay1を前処理した後は、ディレクトリ・オブジェクトを直接再使用するだけでMyReplay2をリプレイできます。

    前処理には、ワークロード・アナライザ・レポートを使用できます。

  • リプレイ・クライアントのデプロイ

    リプレイ・クライアント・ホストが、「データベース・ターゲット名」フィールドに指定したテスト・データベースのOracleホームにアクセスできる場合は、リプレイ・クライアントを別のリプレイ・クライアント・ホストにデプロイする必要はありません。

次の手順は、各タスクを完了する方法を説明しています。

ワークロードを事前処理するには、次の手順に従います。

  1. 特定のリプレイのリプレイ・ページで、「ワークロードの事前処理」タスクのリンクをクリックします。

    「取得されたワークロードの前処理: ワークロードの検索」ページが表示されます。

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

  2. 必要なワークロードの場所オプションを選択して、「次」をクリックします。


    注意:

    最初はコピー・オプションを選択する必要があります。

    「取得されたワークロードの前処理: ワークロードのコピー」ページが表示されます。

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

  3. 必要な資格証明およびワークロードのコピーおよび前処理先の新しい場所を指定し、「次」をクリックします。

    システムは処理中に進捗状況の棒グラフを表示して応答し、コピー操作が終了した後に取得されたワークロードの前処理: ディレクトリを選択ページが表示されます。

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

  4. ディレクトリ・オブジェクトを指定するかワークロードが含まれる場所をポイントする新しいディレクトリ・オブジェクトを作成します。前の手順でワークロードを新しい場所にコピーするよう選択をした場合、ディレクトリ・オブジェクトが「ワークロード・ディレクトリの新しい場所」で指定した正しい場所を確実にポイントするようにします。

    システムは取得サマリーを表示して応答します。「詳細の取得」セクションを展開して、ワークロード・プロファイルとワークロード・フィルタを表示できます。統合されたリプレイに取得サマリーは表示されません。

    「次へ」をクリックして、「取得されたワークロードの前処理: スケジュール」ページを表示します。

  5. 前処理ジョブのスケジュールを入力します。

    1. 必要な独自のジョブ名を指定するか、システム提供の名前をそのまま使用します。ジョブ・システムは、自動的に大文字でジョブに名前を付けます。

    2. ジョブを発行後すぐに実行するか、または後で実行するかを示します。

    3. ホスト資格証明を指定します。これは、オペレーティング・システムでの前処理ジョブの実行に使用されます。

    「次へ」をクリックし、「取得されたワークロードの前処理: 確認」ページを表示します。

  6. 意図したとおりに設定されていることを確認して、「発行」をクリックします。

    データベース・リプレイ・ページが表示され、入力にエラーがないものと見なされ、ページ上部の確認メッセージに「ワークロードの準備ジョブJOBNAMEは正常に作成されました。」と表示されます。

  7. 「JOBNAME」リンクをクリックして、ジョブのステータスを確認します。「ワークロード・リプレイ」タスクに進む前に、ジョブが完了している必要があります。


    注意:

    試行後に期間比較レポートを生成するには、テスト・データベースに追加のPL/SQLパッケージをインストールする必要があるという内容のメッセージが、「タスク・リスト」に表示される場合があります。「ワークロード・リプレイ」タスクに進む前に、この問題を解決するには、「PL/SQLパッケージのインストール」をクリックします。


    ヒント:

    取得したワークロードを事前処理したら、テスト・システムでリプレイできます。詳細は、第11章「データベース・ワークロードのリプレイ」を参照してください。

リプレイ・クライアントをデプロイするには、次の手順に従います。

  1. 特定のリプレイのリプレイ・ページで、「リプレイ・クライアントのデプロイ」タスクのリンクをクリックします。

    リプレイ・クライアントのデプロイ・ページが表示されます。

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

  2. 関連するワークロード取得に定義されているデフォルト値をそのまま使用するか、それらの値をオーバーライドして「続行」をクリックします。

    Oracleデータベース・クライアントのプロビジョニング・ウィザードが表示されます。

  3. ウィザードの各ステップのオンライン・ヘルプに記載されている指示に従います。

    「確認」ステップで「発行」をクリックすると、設定したスケジュールに従ってデプロイメント・プロシージャが実行され、リプレイ・サマリー・ページが再度表示されます。

10.2 APIを使用したデータベース・ワークロードの事前処理

この項では、DBMS_WORKLOAD_REPLAYパッケージを使用して取得したワークロードを事前処理する方法について説明します。また、「Enterprise Managerを使用した単一のデータベース・ワークロードの準備」で説明されているように、Oracle Enterprise Managerを使用して取得済ワークロードを前処理することも可能です。

取得したワークロードを事前処理するには、次のようにPROCESS_CAPTUREプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE (capture_dir => 'dec06');
END;
/

この例では、dec06ディレクトリに格納されている取得済ワークロードが事前処理されます。

この例のPROCESS_CAPTUREプロシージャでは、必須パラメータcapture_dirを使用します。このパラメータは、事前処理する取得済ワークロードが含まれているディレクトリを指定します。


ヒント:

取得したワークロードを事前処理したら、テスト・システムでリプレイできます。詳細は、第11章「データベース・ワークロードのリプレイ」を参照してください。


関連項目:

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


10.2.1 ワークロード・アナライザのコマンドライン・インタフェースの実行

ワークロード・アナライザは、ワークロード取得ディレクトリを分析して、取得ワークロードのうち、データ不足、ワークロード取得中に発生したエラー、データベース・リプレイによってサポートされていない使用機能などのために正確にリプレイできない部分を識別するJavaプログラムです。ワークロード分析の結果は、分析対象である取得ディレクトリ内に置かれるwcr_cap_analysis.htmlという名前のHTMLレポートに保存されます。エラーを防ぐことができる場合、ワークロード分析レポートにはリプレイ前に実行できる予防措置が示されます。エラーを修正できない場合はワークロード分析レポートにそのエラーに関する記述が加えられるので、リプレイ時にそのエラーを考慮しておくことができます。ワークロード・アナライザの実行はデフォルトのオプションであり、実行することを強く推奨します。


注意:

Oracle Enterprise Managerを使用してワークロードの取得を事前処理する場合は、コマンドライン・インタフェースでワークロード・アナライザを実行する必要はありません。Oracle Enterprise Managerでは、ワークロードの事前処理の一環としてワークロード・アナライザを実行できます。

ワークロード・アナライザは、Oracle Database Enterprise Editionリリース11.2.0.2以上が実行されているシステムの$ORACLE_HOME/rdbms/jlib/ディレクトリにある2つのJARファイル(dbranalyzer.jarおよびdbrparser.jar)で構成されます。ワークロード・アナライザには、Java 1.5以上および$ORACLE_HOME/jdbc/lib/ディレクトリにojdbc6.jarファイルが必要です。ワークロード・アナライザをコマンドライン・インタフェースで実行するには、次のjavaコマンドを1行で実行します。

java -classpath
$ORACLE_HOME/jdbc/lib/ojdbc6.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar:
$ORACLE_HOME/rdbms/jlib/dbranalyzer.jar:
oracle.dbreplay.workload.checker.CaptureChecker
<capture_directory> <connection_string>

capture_directoryパラメータには、取得ディレクトリのオペレーティング・システム・パスを入力します。このディレクトリには、ワークロード取得のAWRデータもエクスポートされている必要があります。connection_stringパラメータには、リリース11.1以上のOracle Databaseの接続文字列を入力します。

次に、ワークロード・アナライザ・プログラムによって、データベース・ユーザーのユーザー名とパスワードの入力が求められます。このデータベース・ユーザーは、DBMS_WORKLOAD_CAPTUREパッケージのEXECUTE権限とターゲット・データベースのSELECT_CATALOGロールを持っている必要があります。

このコマンドの例は次のとおりです。

java -classpath
$ORACLE_HOME/jdbc/lib/ojdbc6.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar:
$ORACLE_HOME/rdbms/jlib/dbranalyzer.jar:
oracle.dbreplay.workload.checker.CaptureChecker /scratch/capture
jdbc:oracle:thin:@myhost.mycompany.com:1521:orcl