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

前
次

16.3 ワークロードの縮小の使用

この項では、ワークロードの縮小を使用して取得したワークロードを3倍にするシナリオを想定し、データベース統合リプレイでワークロードの縮小を使用する方法を説明します。このシナリオでは、スケールアップ・テストでワークロードの縮小を使用する方法を説明します。ワークロードの縮小の詳細は、「ワークロードの縮小について」を参照してください。

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

  • 元のワークロードは午前2時から午後8時まで取得され、3つの取得サブセットに縮小されました。

  • 最初の取得のサブセットは、元のワークロードの午前2時から午後8時の部分です。

  • 2つ目の取得のサブセットは、元のワークロードの午前8時から午後2時の部分です。

  • 3つ目の取得のサブセットは、元のワークロードの午後2時から午後8時の部分です。

  • リプレイ時にワークロードを3倍にするために、3つの取得サブセットを同時にリプレイすることでワークロードの縮小が実行されます。

このシナリオでワークロードの縮小を実行するには、次の手順を実行します。

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

    CREATE OR REPLACE DIRECTORY cons_dir AS '/u01/test/cons_dir';
    
  2. 元のワークロードが保存されているディレクトリにディレクトリ・オブジェクトを作成します。

    CREATE OR REPLACE DIRECTORY cap_monday AS '/u01/test/cons_dir/cap_monday';
    
  3. 取得サブセットを保存する予定のディレクトリにディレクトリ・オブジェクトを作成します。

    1. 最初の取得サブセットのディレクトリ・オブジェクトを作成します。

      CREATE OR REPLACE DIRECTORY cap_mon_2am_8am
                                 AS '/u01/test/cons_dir/cap_monday_2am_8am';
      
    2. 2つ目の取得サブセットのディレクトリ・オブジェクトを作成します。

      CREATE OR REPLACE DIRECTORY cap_mon_8am_2pm
                                 AS '/u01/test/cons_dir/cap_monday_8am_2pm';
      
    3. 3つ目の取得サブセットのディレクトリ・オブジェクトを作成します。

      CREATE OR REPLACE DIRECTORY cap_mon_2pm_8pm
                                 AS '/u01/test/cons_dir/cap_monday_2pm_8pm';
      
  4. 取得サブセットを作成します。

    1. 午前2時から午前8時の期間の1つ目の取得サブセットを生成します。

      EXEC DBMS_WORKLOAD_REPLAY.GENERATE_CAPTURE_SUBSET ('CAP_MONDAY',
                                'CAP_MON_2AM_8AM', 'mon_2am_8am_wkld',
                                0, TRUE, 21600, FALSE, 1);
      
    2. 午前8時から午後2時の期間の2つ目の取得サブセットを生成します。

      EXEC DBMS_WORKLOAD_REPLAY.GENERATE_CAPTURE_SUBSET ('CAP_MONDAY',
                                'CAP_MON_8AM_2PM', 'mon_8am_2pm_wkld',
                                21600, TRUE, 43200, FALSE, 1);
      
    3. 午後2時から午後8時の期間の3つ目の取得サブセットを生成します。

      EXEC DBMS_WORKLOAD_REPLAY.GENERATE_CAPTURE_SUBSET ('CAP_MONDAY',
                                'CAP_MON_2PM_8PM', 'mon_2pm_8pm_wkld',
                                43200, TRUE, 0, FALSE, 1);
      
  5. 取得サブセットを事前処理します。

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

    EXEC DBMS_WORKLOAD_REPLAY.SET_REPLAY_DIRECTORY ('CONS_DIR');
    
  7. リプレイ・スケジュールを作成し、取得サブセットを追加します。

    EXEC DBMS_WORKLOAD_REPLAY.BEGIN_REPLAY_SCHEDULE ('monday_folded_schedule');
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('CAP_MON_2AM_8AM') FROM dual;
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('CAP_MON_8AM_2PM') FROM dual;
    SELECT DBMS_WORKLOAD_REPLAY.ADD_CAPTURE ('CAP_MON_2PM_8PM') FROM dual;
    EXEC DBMS_WORKLOAD_REPLAY.END_REPLAY_SCHEDULE;
    
  8. 統合リプレイを初期化します。

    EXEC DBMS_WORKLOAD_REPLAY.INITIALIZE_CONSOLIDATED_REPLAY (
                              'monday_folded_replay', 'monday_folded_schedule');
    
  9. 接続を再マッピングします。

    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;
      
  10. 統合リプレイを準備します。

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

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

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

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

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

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

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

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

    EXEC DBMS_WORKLOAD_REPLAY.START_CONSOLIDATED_REPLAY;