プライマリ・コンテンツに移動
Oracle® Database Testingガイド
12cリリース1 (12.1)
B71349-07
目次へ移動
目次
索引へ移動
索引

前
次

16.2 タイム・シフトの使用

この項では、タイム・シフトを使用し、3つのアプリケーションから取得したワークロードのピークを合わせて同時にリプレイするシナリオを想定し、データベース統合リプレイでタイム・シフトを使用する方法を説明します。このシナリオでは、タイム・シフトを使用しストレス・テストを実行する方法を説明します。タイム・シフトの詳細は、「タイム・シフトについて」を参照してください。

このシナリオでは、次を想定しています。

  • 最初のワークロードは、営業アプリケーションから取得します。

  • 2つ目のワークロードは、ピーク時間が営業ワークロードの1時間前であるCRMアプリケーションから取得します。

  • 3つ目のワークロードは、ピーク時間が営業ワークロードの30分前であるDWアプリケーションから取得します。

  • これらのワークロードのピークを合わせるために、リプレイ時にCRMワークロードに1時間の遅延を、DWワークロードには30分の遅延を追加してタイム・シフトを実行します。

このシナリオでタイム・シフトを実行するには、次の手順を実行します。

  1. ストレス・テストを実行するリプレイ・システムで、取得したワークロードが保存されているルート・ディレクトリにディレクトリ・オブジェクトを作成します。

    CREATE [OR REPLACE] DIRECTORY cons_dir AS '/u01/test/cons_dir';
    
  2. 取得した個々のワークロードを別のディレクトリに事前処理します。

    • 営業ワークロードでは、次の手順を実行します。

      1. ディレクトリ・オブジェクトを作成します。

        CREATE OR REPLACE DIRECTORY sales AS '/u01/test/cons_dir/cap_sales';
        
      2. 営業アプリケーションから取得したワークロードがこのディレクトリに格納されていることを確認します。

      3. ワークロードを事前処理します。

        EXEC DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE ('SALES');
        
    • CRMワークロードには、次を実行します。

      1. ディレクトリ・オブジェクトを作成します。

        CREATE OR REPLACE DIRECTORY crm AS '/u01/test/cons_dir/cap_crm';
        
      2. CRMアプリケーションから取得したワークロードがこのディレクトリに格納されていることを確認します。

      3. ワークロードを事前処理します。

        EXEC DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE ('CRM');
        
    • DWワークロードには、次の手順を実行します。

      1. ディレクトリ・オブジェクトを作成します。

        CREATE OR REPLACE DIRECTORY DW AS '/u01/test/cons_dir/cap_dw';
        
      2. DWアプリケーションから取得したワークロードがこのディレクトリに格納されていることを確認します。

      3. ワークロードを事前処理します。

        EXEC DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE ('DW');
        
  3. ルート・ディレクトリをリプレイ・ディレクトリに設定します。

    EXEC DBMS_WORKLOAD_REPLAY.SET_REPLAY_DIRECTORY ('CONS_DIR');
    
  4. リプレイ・スケジュールを作成し、ワークロード取得を追加します。

    EXEC DBMS_WORKLOAD_REPLAY.BEGIN_REPLAY_SCHEDULE ('align_peaks_schedule');
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('SALES') FROM dual;
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('CRM', 3600) FROM dual;
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('DW', 1800) FROM dual;
    EXEC DBMS_WORKLOAD_REPLAY.END_REPLAY_SCHEDULE;
    

    3,600秒(または1時間)の遅延がCRMワークロードに追加され、1,800秒の遅延(または30分)がDWワークロードに追加されます。

  5. 統合リプレイを初期化します。

    EXEC DBMS_WORKLOAD_REPLAY.INITIALIZE_CONSOLIDATED_REPLAY ('align_peaks_replay',
                              'align_peaks_schedule');
    
  6. 接続を再マッピングします。

    1. DBA_WORKLOAD_CONNECTION_MAPビューに接続マッピング情報を問い合せます。

      SELECT schedule_cap_id, conn_id, capture_conn, replay_conn
        FROM dba_workload_connection_map;
      
    2. 接続を再マッピングします。

      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 1,
           conn_id => 1, replay_connection => 'inst1');
      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 1,
           conn_id => 2, replay_connection => 'inst1');
      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 2,
           conn_id => 1, replay_connection => 'inst2');
      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 2,
           conn_id => 2, replay_connection => 'inst2');
      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 3,
           conn_id => 1, replay_connection => 'inst3');
      EXEC DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (schedule_cap_id => 3,
           conn_id => 2, replay_connection => 'inst3');
      

      replay_connectionパラメータは、テスト・システムに定義したサービスを示します。

    3. 接続の再マッピングを確認します。

      SELECT schedule_cap_id, conn_id, capture_conn, replay_conn
        FROM dba_workload_connection_map;
      
  7. 統合リプレイを準備します。

    EXEC DBMS_WORKLOAD_REPLAY.PREPARE_CONSOLIDATED_REPLAY;
    
  8. リプレイ・クライアントを起動します。

    1. 必要なリプレイ・クライアントの数を見積もります。

      wrc mode=calibrate replaydir=/u01/test/cons_dir/cap_sales
      wrc mode=calibrate replaydir=/u01/test/cons_dir/cap_crm
      wrc mode=calibrate replaydir=/u01/test/cons_dir/cap_dw
      
    2. 必要なリプレイ・クライアントの数を判断するために出力を追加します。

      統合したワークロードに含まれるワークロード取得ごとに、最低1つのリプレイ・クライアントを開始する必要があります。

    3. このコマンドを繰り返し、必要な数のリプレイ・クライアントを起動します。

      wrc username/password mode=replay replaydir=/u01/test/cons_dir
      

      replaydirパラメータは、ワークロード取得が格納されているルート・ディレクトリに設定されています。

  9. 統合リプレイを開始します。

    EXEC DBMS_WORKLOAD_REPLAY.START_CONSOLIDATED_REPLAY;