10 データベース・ワークロードの取得

この章では、本番システムでデータベース・ワークロードを取得する方法について説明します。データベース・リプレイを使用するための最初の手順は、本番ワークロードの取得です。

この章の構成は、次のとおりです。

関連項目:

データベース・リプレイのアーキテクチャに適したデータベース・ワークロードの取得方法の詳細は、「ワークロードの取得」を参照してください

10.1 データベース・ワークロードの取得の前提条件

ワークロードの取得を開始する前に、テスト・システムでデータベースをリストアするための方針を決定する必要があります。ワークロードをリプレイするには、リプレイ・システムのアプリケーション・データの論理状態を、リプレイの開始時における取得システムのデータの状態と同じにする必要があります。これを行うには、次のいずれかの方法を使用します。
  • Recovery Manager(RMAN)のDUPLICATEコマンド

  • スナップショット・スタンバイ

  • データ・ポンプのインポートおよびエクスポート

これにより、リプレイ・システムのデータベースを、ワークロードの取得の開始時と同じ運用の状態までリストアできます。

データベースがDatabase Vaultにより保護されている場合、データベース・リプレイを使用するには、Database Vault環境においてDBMS_WORKLOAD_CAPTUREおよびDBMS_WORKLOAD_REPLAYパッケージの使用が承認されている必要があります。

関連項目:

10.2 取得ディレクトリの設定

取得したワークロードを格納する場所を決定し、ディレクトリを設定します。ワークロードの取得を開始する前に、ディレクトリが空であり、ワークロードを格納するために十分なディスク領域があることを確認します。ワークロードの取得中にディレクトリのディスク領域が不足すると、取得が停止します。必要なディスク容量を見積もるため、短期間(数分間など)、ワークロードのテスト取得を実行し、完全取得に必要な容量がどれくらいかを推定することができます。潜在的なパフォーマンスの問題を回避するため、ターゲットのリプレイ・ディレクトリが別のファイル・システムにマウントされていることも確認する必要があります。

Oracle RACの場合、共有ファイル・システムの使用を検討してください。また、インスタンスごとに別々の物理ディレクトリを指定する1つの取得ディレクトリ・パスを設定することもできますが、これらの各ディレクトリに作成されたファイルは、単一のディレクトリに統合する必要があります。Enterprise Managerでは、Oracle RACデータベースに対する取得については、共有ファイル・システムで構成されたOracle RACのみをサポートしています。事前処理に使用できるようにするには、(取得ファイルのみでなく)各インスタンスのローカル取得ディレクトリのコンテンツ全体を共有ディレクトリにコピーする必要があります。たとえば、次のように想定します。

  • host1およびhost2という名前の2つのデータベース・インスタンスをLinuxのOracle RAC環境で実行します。

  • 両方のインスタンスで、/$ORACLE_HOME/rdbms/captureに解決される、CAPDIRという取得ディレクトリ・オブジェクトを使用しています。

  • /nfs/rac_captureにある共有ディレクトリを使用しています。

各ホストにログインして次のコマンドを実行する必要があります。

cp -r /$ORACLE_HOME/rdbms/capture/* /nfs/rac_capture

両方のインスタンスでこの処理を実行すると、/nfs/rac_capture共有ディレクトリで前処理またはマスキングが可能になります。

10.3 ワークロードの取得のオプション

正確な取得を行い、別の環境でのリプレイ時に役立つように、ワークロードを取得する前に適切な計画を行う必要があります。

データベース・ワークロードを取得する前に、次のオプションを慎重に検討してください。

10.3.1 データベースの再起動

この手順は必須ではありませんが、ワークロードの取得の開始前に進行中のトランザクションおよび依存トランザクションを確実に完了またはロールバックするために、その取得前にデータベースを再起動することをお薦めします。取得の開始前にデータベースを再起動しないと、進行中のトランザクションまたはコミット前のトランザクションは、ワークロードに完全に取得されません。進行中のトランザクションは、コールが取得された部分のトランザクションしかリプレイされないため、適切にリプレイされません。これにより、ワークロードのリプレイ時に望ましくないリプレイの相違が発生する可能性があります。不完全なトランザクションに依存する後続のトランザクションでも、リプレイ時にエラーが発生する場合があります。処理量が多いシステムでは、リプレイの相違がある程度あるのは一般的ですが、その場合でも、違いがあるコールがDB時間などの主要な属性でリプレイの大部分を占めていなければ、リプレイを使用して、システム変更に関して意味のある分析を実行できます。

そのため、データベースを再起動する前に、本番データベースを停止する適切なタイミング(システムへの影響が最も少ない時間)について検討するようにしましょう。たとえば、ワークロードの取得を午前8:00から開始しようと思った場合でも、営業時間中にサービスが停止することを避けるためには、その時間帯にデータベースが再起動されないようにする必要があります。そのような場合は、ワークロードの取得開始をもっと早い時間にずらすなどして、なるべく不都合のない時間にデータベースが再起動されるようにしましょう。

データベースを再起動したら、ユーザー・セッションが再接続してワークロードを発行し始める前に、ワークロードの取得を開始することが重要です。そうしないと、そのユーザー・セッションによって実行されたトランザクションは、その後のデータベース・リプレイで適切にリプレイされません(これは、トランザクションのうち、ワークロードの取得を開始した後に実行されたコールの部分しかリプレイされないためです)。この問題を避けるには、SYSユーザーのみにログインとワークロードの取得開始を許可するように、STARTUP RESTRICTを使用してRESTRICTEDモードでデータベースを再起動します。デフォルトでは、ワークロードの取得が開始されると、RESTRICTEDモードのデータベース・インスタンスは自動的にUNRESTRICTEDモードに切り替わり、ワークロードの取得中は通常の操作を続行できます。

ワークロードの取得は、常に1回しか実行できません。Oracle Real Application Clusters(Oracle RAC)構成の場合、ワークロードの取得はデータベース全体を対象に実行されます。いずれかのOracle RACノードで取得を有効にすると、すべてのデータベース・インスタンスのワークロードの取得が開始されます(ワークロードを取得するプロセスは、Oracle RACを認識します)。必須ではありませんが、ワークロードの取得が開始される前にOracle RAC構成のすべてのインスタンスを再起動し、進行中のトランザクションは取得されないようにすることをお薦めします。

ワークロードの取得前にOracle RAC構成のすべてのインスタンスを再起動するには、次の手順を実行します。

  1. すべてのインスタンスを停止します。
  2. すべてのインスタンスを再起動します。
  3. ワークロードの取得を開始します。
  4. アプリケーションを接続し、ユーザー・ワークロードを再起動します。

関連項目:

10.3.2 ワークロードの取得時のフィルタの使用

デフォルトでは、すべてのユーザー・セッションがワークロードの取得時に記録されます。ワークロード・フィルタを使用すると、ワークロードの取得時にワークロードに含めるユーザー・セッションと除外するユーザー・セッションを指定できます。包含フィルタおよび除外フィルタという2種類のワークロード・フィルタがあります。ワークロードの取得では、包含フィルタまたは除外フィルタのいずれか一方を使用でき、両方は使用できません。

包含フィルタでは、ワークロードに取得するユーザー・セッションを指定できます。これは、データベース・ワークロードの一部のみを取得する場合に便利です。

除外フィルタでは、ワークロードに取得しないユーザー・セッションを指定できます。これは、インフラストラクチャ(Oracle Enterprise Manager(EM)、Statspackなど)を監視するセッションやテスト・システムですでに実行中のプロセスなど、ワークロードで取得する必要がないセッション・タイプを除外する場合に便利です。たとえば、ワークロードをリプレイするシステムでEMを実行している場合、取得したEMセッションをそのシステムでリプレイすると、ワークロードが重複します。この場合、除外フィルタを使用してEMセッションを除外できます。

10.4 ワークロードの取得の制限事項

特定のタイプのユーザー・セッションおよびクライアント・リクエストは、ワークロードに取得されてもデータベース・リプレイによってサポートされない場合があります。これらのセッションおよびリクエストのタイプをワークロードで取得すると、ワークロード・リプレイ中にエラーが発生する場合があります。

次のタイプのユーザー・セッションおよびクライアント・リクエストはデータベース・リプレイによってサポートされません。

  • SQL*Loaderなどのユーティリティを使用する、外部ファイルからのデータのダイレクト・パス・ロード

  • PL/SQL以外のアドバンスト・キューイング(AQ)

  • フラッシュバック問合せ

  • Oracle Call Interface(OCI)ベースのオブジェクト・ナビゲーション

  • SQL以外のオブジェクト・アクセス

  • 分散トランザクション

    取得された分散トランザクションはすべてローカル・トランザクションとしてリプレイされます。

  • XAトランザクション

    XAトランザクションは取得もリプレイもされません。すべてのローカル・トランザクションは取得されます。

  • JAVA_XAトランザクション

    ワークロードでJAVA_XAパッケージが使用される場合、JAVA_XAファンクション・コールおよびプロシージャ・コールは通常のPL/SQLワークロードとして取得されます。ワークロード・リプレイ中の問題を回避するには、リプレイを正常に完了できるように、リプレイ・システム上のJAVA_XAパッケージの削除を検討してください。

  • データベース常駐接続プーリング(DRCP)

  • OUTバインドを使用したワークロード

  • 同期モードをOBJECT_IDに設定したマルチスレッド・サーバー(MTS)および共有サーバーのセッション

  • 移行されたセッション

    移行されたセッションのワークロードは取得されます。ただし、ユーザーのログインやセッションの移行操作は取得されません。ユーザー・ログインやセッションの移行が有効でない場合、ワークロードが不正なユーザーによってリプレイされる可能性があるため、リプレイでエラーが発生する可能性があります。

通常、データベース・リプレイでは、これらのタイプのサポートされていないユーザー・セッションおよびクライアント・リクエストの取得は行われません。取得された場合でも、データベース・リプレイによってリプレイされることはありません。そのため、サポートされていないユーザー・セッションおよびクライアント・リクエストを手動で除外する必要は、通常はありません。これらが取得され、リプレイ中にエラーが発生することがわかった場合は、ワークロードからこれらを除外するワークロード取得フィルタの使用を検討してください。

関連項目:

10.5 ワークロードの取得機能の有効化および無効化

データベース・リプレイは、Oracle Database 11g 以上のリリースへのデータベースのアップグレードをテストするために使用できる、Oracle Database 10g リリース2を実行中のシステムにおけるデータベース・ワークロードの取得をサポートします。Oracle Database 10gリリース2(10.2)の場合、ワークロードの取得機能はデフォルトでは有効になっていません。PRE_11G_ENABLE_CAPTURE初期化パラメータを指定することで、この機能を有効または無効にすることができます。

注意:

Oracle Database 10gリリース2が実行されているシステムでデータベース・ワークロードを取得する場合は、ワークロードの取得機能の有効化のみが必要です。

Oracle Database 11gリリース1以上が実行されているシステムでデータベース・ワークロードを取得する場合は、ワークロードの取得機能はデフォルトで有効になっているため、この機能を有効にする必要はありません。また、PRE_11G_ENABLE_CAPTURE初期化パラメータはOracle Database 10gリリース2(10.2)のみで有効で、その後のリリースでは使用できません。

Oracle Database 10gリリース2が実行されているシステムでワークロードの取得機能を有効にするには、SQLプロンプトでwrrenbl.sqlスクリプトを実行します。

@$ORACLE_HOME/rdbms/admin/wrrenbl.sql

wrrenbl.sqlスクリプトでは、ALTER SYSTEM SQL文がコールされ、PRE_11G_ENABLE_CAPTURE初期化パラメータがTRUEに設定されます。サーバー・パラメータ・ファイル(spfile)が使用されている場合、PRE_11G_ENABLE_CAPTURE初期化パラメータは、現在実行しているインスタンス用に変更された後、spfileに記録されるため、データベースを再起動しても、新しい設定が保持されるようになります。spfileが使用されていない場合、PRE_11G_ENABLE_CAPTURE初期化パラメータは、現在実行しているインスタンス用に変更されるだけであるため、データベースを再起動すると、新しい設定は保持されません。spfileを使用せずに設定を保持するには、初期化パラメータ・ファイル(init.ora)にパラメータを手動で指定する必要があります。

ワークロードの取得を無効にするには、SQLプロンプトでwrrdsbl.sqlスクリプトを実行します。

@$ORACLE_HOME/rdbms/admin/wrrdsbl.sql

wrrdsbl.sqlスクリプトでは、ALTER SYSTEM SQL文がコールされ、PRE_11G_ENABLE_CAPTURE初期化パラメータがFALSEに設定されます。サーバー・パラメータ・ファイル(spfile)が使用されている場合、PRE_11G_ENABLE_CAPTURE初期化パラメータは、現在実行しているインスタンス用に変更された後、spfileに記録されるため、データベースを再起動しても、新しい設定が保持されるようになります。spfileが使用されていない場合、PRE_11G_ENABLE_CAPTURE初期化パラメータは、現在実行しているインスタンス用に変更されるだけであるため、データベースを再起動すると、新しい設定は保持されません。spfileを使用せずに設定を保持するには、初期化パラメータ・ファイル(init.ora)にパラメータを手動で指定する必要があります。

注意:

PRE_11G_ENABLE_CAPTURE初期化パラメータは、Oracle Database 10gリリース2(10.2)のみで使用できます。その後のリリースでは、このパラメータは無効です。データベースのアップグレード後、サーバー・パラメータ・ファイル(spfile)または初期化パラメータ・ファイル(init.ora)からパラメータを削除する必要があり、削除しないと、データベースは起動に失敗します。

10.6 Enterprise Managerの権限およびロール

任意のデータベース・リプレイ・エンティティを参照または操作するには、データベース・リプレイのリソース・タイプの権限が必要です。また、ワークロードに関連付けられたエンティティにアクセスするには、ワークロードを取得したターゲットのターゲット・オペレータ権限が必要です。ターゲットが現在存在しない場合、そのエンティティにアクセスするには、そのエンティティを所有するEnterprise ManagerまたはEnterprise Managerスーパー・ユーザーである必要があります。

次の項で説明する2つのセキュリティ・ロールを使用すると、データベース・リプレイ・エンティティに関連する権限の付与および取消しが簡単になります。

10.6.1 データベース・リプレイ・ビューア・ロール

データベース・リプレイ・ビューア・ロールを持つユーザーは、すべてのデータベース・リプレイ・エンティティを表示できます。デフォルトでは、このロールを付与されるEnterprise Managerはいません。ただし、EM_ALL_VIEWERロールにはデフォルトでこのロールが含まれています。

データベース・リプレイ・ビューア・ロールは、データベース・リプレイ・ビューア(リソース・タイプ)権限で構成されています。

10.6.2 データベース・リプレイ・オペレータ・ロール

データベース・リプレイ・オペレータ・ロールには、データベース・リプレイ・ビューア・ロールが含まれるので、その権限も含まれます。データベース・リプレイ・オペレータ・ロールを持つユーザーは、すべてのデータベース・リプレイ・エンティティを編集および削除できます。デフォルトでは、このロールを付与されるEnterprise Managerはいません。ただし、EM_ALL_OPERATORロールにはデフォルトでこのロールが含まれています。

データベース・リプレイ・オペレータ・ロールには、次の権限があります。

  • データベース・リプレイ・オペレータ(リソース・タイプ権限)

  • 名前付き資格証明の新規作成(リソース・タイプ権限)

  • 新規ジョブの作成(リソース・タイプ権限)

  • 表示可能な任意のターゲットに接続(ターゲット・タイプ権限)

  • 任意の場所でのコマンドの実行(ターゲット・タイプ権限)

データベース・ターゲットでワークロードを取得またはリプレイする場合、Enterprise Managerユーザーにはデータベース・リプレイ・オペレータ・ロールのすべての権限に加え、ターゲット・データベースのターゲット・オペレータ権限が必要です。

10.7 Enterprise Managerを使用したデータベース・ワークロードの取得

この項では、Enterprise Managerを使用してデータベース・ワークロードを取得する方法について説明します。データベース・ワークロードを取得するための主要ツールは、Oracle Enterprise Managerです。

前提条件の詳細は、「データベース・ワークロードの取得の前提条件」を参照してください。

ヒント:

Oracle Enterprise Managerを使用できない場合は、「APIを使用したデータベース・ワークロードの取得」で説明されているように、APIを使用してデータベース・ワークロードを取得できます。

Enterprise Managerを使用してデータベース・ワークロードを取得するには、次の手順を実行します。

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

    「データベース・リプレイ」ページが表示されます。

  2. データベース・リプレイ・ページの「取得済ワークロード」タブをクリックし、ツールバーの「作成」をクリックします。

    取得の作成: 環境の計画ページが表示されます。

  3. このページに説明されているいずれの前提条件も満たしていることを確認してから、両方のチェック・ボックスを選択し、「次へ」をクリックします。

    取得の作成: データベース・ページが表示されます。

  4. 「追加」をクリックします。

    「追加」ポップアップが表示されます。

  5. 取得名と説明(オプション)を入力し、「ターゲット・データベース」検索アイコンをクリックします。

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

  6. 「ターゲット・タイプ」を選択し、任意で構成検索を指定し、一覧からターゲット・データベースを選択して、「選択」をクリックします。

    「データベース資格証明」および「データベース・ホスト資格証明」にセクションが追加された状態で、「追加」ポップアップが再度表示されます。

  7. データベース資格証明、データベース・ホスト資格証明、データベース取得の中間記憶域の場所を入力し、「OK」をクリックします。
    • 取得後、中間記憶域の場所を最終の記憶域の場所として使用しないかぎり、ファイルは記憶域の場所にコピーされます。

      注意:

      Enterprise Managerでは、Oracle RACデータベースに対する取得については、共有ファイル・システムで構成されたOracle RACのみをサポートしています。

    これで、選択したターゲット・データベースが、本番データベースの選択表のデータベース・リストに表示されます。

  8. 「次へ」をクリックします。

    取得の作成: オプション・ページが表示されます。

  9. ワークロードの取得のオプションを選択します。
    • 「SQLパフォーマンス・アナライザ」セクションで、ワークロードの取得時に、SQL文をSQLチューニング・セットに取得するかどうかを選択します。

      データベースのリプレイでは、変更がシステム全体に及ぼす影響が分析されますが、SQLパフォーマンス・アナライザとともにSQLチューニング・セットを使用すれば、変更がSQL文と実行計画にどのように影響するか、SQLを中心とした分析を行うことができます。

      ワークロードの取得時にはSQLチューニング・セットを取得し、ワークロードのリプレイ時には別のSQLチューニング・セットを取得することで、SQL文を再実行することなく、SQLパフォーマンス・アナライザを使用してこれらのSQLチューニング・セットを相互に比較できます。これにより、データベース・リプレイを実行しながら、SQLパフォーマンス・アナライザ・レポートを生成して、変化の前後のSQLパフォーマンスを比較できます。

      注意:

      SQL文は、SQLチューニング・セットにデフォルトで取得され、推奨されるワークロード取得オプションです。Oracle RACでは、SQL文はSQLチューニング・セットへは取得されません。

      ヒント:

      SQLパフォーマンス・アナライザ・レポートを使用したSQLチューニング・セットの比較の詳細は、「APIを使用したSQLパフォーマンス・アナライザ・レポートの生成」を参照してください。

    • 「ワークロード・フィルタ」セクションで、「フィルタ・モード」リストの「除外」を選択して除外フィルタを使用するか、「包含」を選択して包含フィルタを使用します。

      フィルタを追加するには、「追加」をクリックしてフィルタ名、セッション属性および値を該当するフィールドに入力します。

      ヒント:

      詳細は、「ワークロード取得でのフィルタの使用」を参照してください。

    適切なワークロードの取得のオプションを選択したら、「次へ」をクリックします。

    取得の作成: 記憶域ページが表示されます。

  10. 「記憶域ホスト」アイコンをクリックし、リストからターゲットを選択して、「選択」をクリックします。

    記憶域ページで、ホスト資格証明と記憶域の場所をリクエストされます。

  11. ホスト資格証明を指定し、「参照」をクリックして記憶域の場所を選択し、場所を選択して「OK」「次へ」の順にクリックします。

    取得の作成: スケジュール・ページが表示されます。

  12. 取得の開始時間と期間をスケジュールし、AWRデータのエクスポートをスケジュールして、「次へ」をクリックします。
    • デフォルトの取得期間は5分です。テストが必要な対象期間の代理アクティビティを取得する取得期間を変更します。

    取得の作成: 確認ページが表示されます。

  13. すべてのパラメータが意図したとおりに設定されたら、「発行」をクリックして取得ジョブを開始します。
    • デフォルトでは、「ワークロード取得中にSQL文をSQLチューニング・セットに取り込みます。」オプションが有効です。リプレイ終了時にSQLチューニング・セットを比較しない場合は、このオプションの選択を解除します。

    データベース・リプレイ・ページが再度表示され、取得が正常に作成されたというメッセージと、「スケジュール済」などの取得のステータスが「取得」リストに表示されます。

  14. 取得の詳細は、取得名をダブルクリックしてください。

    取得サマリー・ページが表示され、平均アクティブ・セッション、ワークロードの比較、関連する同時取得など、複数の属性があれば表示されます。

ヒント:

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

10.8 複数のデータベースからのワークロードの同時取得

同時取得とは、複数のデータベースからワークロードを同時に取得することです。

データベース・リプレイ・ワークロードを同時に取得するには、次の手順に従います。

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

    「データベース・リプレイ」ページが表示されます。

  2. データベース・リプレイ・ページの「取得済ワークロード」タブをクリックし、ツールバーの「作成」をクリックします。

    取得の作成: 環境の計画ページが表示されます。

  3. このページに説明されているどちらの前提条件も満たしていることを確認してから、両方のチェック・ボックスを選択し、「次へ」をクリックします。

    取得の作成: データベース・ページが表示されます。

    ヒント:

    前提条件の詳細は、「データベース・ワークロードの取得の前提条件」を参照してください。

  4. 「追加」をクリックします。

    「追加」ポップアップが表示されます。

  5. 取得名と説明(オプション)を入力し、「ターゲット・データベース」検索アイコンをクリックします。

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

  6. リストからターゲット・データベースを選択し、「選択」をクリックします。

    「データベース資格証明」および「データベース・ホスト資格証明」にセクションが追加された状態で、「追加」ポップアップが再度表示されます。

  7. データベース資格証明、データベース・ホスト資格証明、データベース取得の中間記憶域の場所を入力し、「OK」をクリックします。

    • 取得後、中間記憶域の場所を最終の記憶域の場所として使用しないかぎり、ファイルは記憶域の場所にコピーされます。

    これで、選択したターゲット・データベースが、本番データベースの選択表のデータベース・リストに表示されます。

  8. 同時取得する別のデータベースを追加します。

    1. 手順4から7の指示に従います。

      取得の作成: データベース・ページが再表示され、手順4から7で指定した1つ目のデータベースとともに、取得する別のデータベースが表示されます。

    2. 同時取得の名前と説明(オプション)を入力し、「次へ」をクリックします。

      取得の作成: オプション・ページが表示されます。

  9. ワークロードの取得のオプションを選択します。

    • 「SQLパフォーマンス・アナライザ」セクションで、ワークロードの取得時に、SQL文をSQLチューニング・セットに取得するかどうかを選択します。

      データベースのリプレイでは、変更がシステム全体に及ぼす影響が分析されますが、SQLパフォーマンス・アナライザとともにSQLチューニング・セットを使用すれば、変更がSQL文と実行計画にどのように影響するか、SQLを中心とした分析を行うことができます。

      ワークロードの取得時にはSQLチューニング・セットを取得し、ワークロードのリプレイ時には別のSQLチューニング・セットを取得することで、SQL文を再実行することなく、SQLパフォーマンス・アナライザを使用してこれらのSQLチューニング・セットを相互に比較できます。これにより、データベース・リプレイを実行しながら、SQLパフォーマンス・アナライザ・レポートを生成して、変化の前後のSQLパフォーマンスを比較できます。

      注意:

      SQLチューニング・セットへのSQL文の取得はデフォルトで実行されます。これは、推奨されるワークロード取得オプションです。

    • 「ワークロード・フィルタ」セクションで、「フィルタ・モード」リストの「除外」を選択して除外フィルタを使用するか、「包含」を選択して包含フィルタを使用します。

      フィルタを追加するには、「追加」をクリックしてフィルタ名、セッション属性および値を該当するフィールドに入力します。

    適切なワークロードの取得のオプションを選択したら、「次へ」をクリックします。

    取得の作成: 記憶域ページが表示されます。

  10. 「記憶域ホスト」アイコンをクリックし、リストからターゲットを選択して、「選択」をクリックします。

    記憶域ページで、ホスト資格証明と記憶域の場所をリクエストされます。

  11. ホスト資格証明を入力し、記憶域を選択するために「参照」をクリックし、「次」をクリックします。

    取得の作成: スケジュール・ページが表示されます。

  12. 取得の開始時間と期間をスケジュールし、AWRデータのエクスポートをスケジュールして、「次へ」をクリックします。

    • デフォルトの取得期間は5分です。テストが必要な対象期間の代理アクティビティを取得する取得期間を変更します。

    取得の作成: 確認ページが表示されます。

  13. すべてのパラメータが意図したとおりに設定されたら、「発行」をクリックして取得ジョブを開始します。

    • デフォルトでは、「ワークロード取得中にSQL文をSQLチューニング・セットに取り込みます。」オプションが有効です。リプレイ終了時にSQLチューニング・セットを比較しない場合は、このオプションの選択を解除します。

    データベース・リプレイ・ページが再度表示され、取得が正常に作成されたというメッセージと、「スケジュール済」などの取得のステータスが「取得」リストに表示されます。

  14. 取得の詳細は、取得名をダブルクリックしてください。

    取得サマリー・ページが表示され、平均アクティブ・セッション、ワークロードの比較、関連する同時取得など、複数の属性が表示されます。

10.9 Enterprise Managerを使用したワークロードの取得の監視

この項では、Enterprise Managerを使用してワークロードの取得を監視する方法について説明します。ワークロードの取得を監視するための主要ツールは、Oracle Enterprise Managerです。Enterprise Managerを使用すると、次の操作を実行できます。
  • アクティブなワークロードの取得の監視または停止

  • 完了したワークロード取得の表示

ヒント:

Oracle Enterprise Managerが使用できない場合は、「ビューを使用したワークロードの取得の監視」で説明されているように、ビューを使用してワークロードの取得を監視できます。

この項では、次の項目について説明します。

10.9.1 アクティブなワークロードの取得の監視

この項では、Enterprise Managerを使用してアクティブなワークロードの取得を監視する方法について説明します。

アクティブなワークロードの取得を監視するには、次の手順を実行します。

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

    「データベース・リプレイ」ページが表示されます。

  2. ステータスが「完了」以外の取得のデータベース・リプレイ・ページにある「取得済ワークロード」タブで、「取得」表から必要な取得の名前をクリックします。

    詳細な統計、取得の進行中に動的に更新される平均アクティブ・セッションのグラフ、取得された要素と取得されなかった同じ要素間のデータの比較、および関連する同時取得(存在する場合)が表示された、データベース・リプレイ・ページの「サマリー」タブが開きます。

    • 「平均アクティブ・セッション」グラフに表示されている「取得されていません」データは、現在取得されていないデータベース・アクティビティ(データベース・セッション)を表します。

    • 「比較」セクションの「合計」列の値は、データベースの取得されたアクティビティと取得されていないアクティビティのすべてを表します。取得の作成ウィザードの「オプション」の手順で指定したワークロード・フィルタによって決められているフィルタリングは、主に、あるアクティビティが取得または取得されていない理由を意味します。また、バックグラウンド・アクティビティ、データベース・スケジューラ・ジョブ、およびリプレイ不可能なコールは取得されません。

    • 右上隅のリフレッシュ・アイコンをクリックして、実行中に取得を更新できます。

  3. データベース・リプレイ・ページに戻るには、「データベース・リプレイ」ブレッドクラムをクリックします。

10.9.2 アクティブなワークロードの取得の停止

この項では、Enterprise Managerを使用したアクティブなワークロードの取得の停止方法について説明します。

アクティブなワークロードの取得を停止するには、次の手順を実行します。

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

    「データベース・リプレイ」ページが表示されます。

  2. ステータスが「ドラフト」の取得のデータベース・リプレイ・ページの「取得済ワークロード」タブで、停止する取得の「取得」表の名前をクリックします。

    取得サマリー・ページが表示されます。

  3. 「取得の停止」ボタンをクリックします。

    ボタン・ラベルが「取得の停止中」に変更されます。処理が完了すると、「ステータス」が「停止中」に変更されます。

10.9.3 完了したワークロード取得の表示

この項では、Enterprise Managerを使用したワークロード取得全体の管理方法について説明します。

完了したワークロードの取得を表示するには、次の手順を実行します。

  1. Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」「データベース・リプレイ」の順に選択します。

    「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

    「データベース・リプレイ」ページが表示されます。

  2. データベース・リプレイ・ページにある「取得済ワークロード」タブで、ステータスが「完了」の取得の名前をクリックします。

    「平均アクティブ・セッション」グラフに、取得中に記録された動的データではなく、取得期間の集計データが表示されることを除き、データベース・リプレイ・ページの「サマリー」タブには、進行中の取得に関するコンテンツが表示されます。

    「平均アクティブ・セッション」チャートには、取得されたセッション・アクティビティが取得されていないセッション・アクティビティ(バックグラウンド・アクティビティやフィルタ処理されたセッションなど)と比較されてグラフィカルに表示されます。このチャートは、取得期間に使用可能なアクティブ・セッション履歴(ASH)データが存在する場合にのみ表示されます。

    「比較」の下には、ワークロード取得の様々な統計が表示されます。

    • 「取得」列

      取得されたセッション・アクティビティの統計が表示されます。

    • 「合計」列

      合計セッション・アクティビティの統計が表示されます。

    • 「合計の割合」列

      ワークロードで取得された合計セッション・アクティビティの割合が表示されます。

  3. データベース・リプレイ・ページに戻るには、「データベース・リプレイ」ブレッドクラムをクリックします。

ヒント:

ワークロードの取得レポートへのアクセスの詳細は、「取得およびリプレイ済ワークロードの分析」を参照してください。

10.10 Enterprise Manager外部のワークロードのインポート

PL/SQLインタフェースまたは異なるEnterprise Managerインスタンスを通して取得したワークロードをEnterprise Managerにインポートして、ワークロードが元々Enterprise Manager内で作成されたように管理することができます。ワークロードを取得中にしたり、取得を完了して、ワークロードをファイル・システムに格納できます。また、Enterprise Manager内で作成されたワークロードの場合と同様に、ワークロードを事前処理およびリプレイすることもできます。

この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。

Enterprise Manager外部にデータベース・ワークロードをインポートするには、次の手順に従います。

  1. 「データベース・リプレイ」ページの「取得済ワークロード」タブをクリックし、ツールバーの「インポート」をクリックします。

    「ワークロードのインポート: ソース」ページが表示されます。

  2. 次の3つの選択肢のいずれかを選択して、取得されたワークロードをインポートし、「次へ」をクリックします。

    • 取得が完了したワークロードをファイル・システムのディレクトリからインポート

      このオプションは、通常APIを使用して作成されたワークロードに適用され、後続の処理用にEnterprise Managerにインポートします。この場合、Enterprise Managerは取得データベースを管理していない可能性があります。

    • 取得が完了したワークロードをデータベース・ターゲットからインポート

      この場合、Enterprise Managerは取得データベースをすでに管理している可能性があります。取得は、このデータベースで実行された可能性があるか、前述のオプションの場合と同様にロードされた可能性があります。

    • データベース・ターゲットで実行中の取得にアタッチ

      このオプションは前述のオプションと似ていますが、すでに完了している取得ではなく、実行中の取得である点が異なります。

    「ワークロードのインポート: データベース」ページが表示されます。

  3. 「データベース・ターゲット」フィールドの横の検索アイコンをクリックして、表示されるポップアップからデータベースを選択します。

    注意:

    ワークロードをロードするデータベースのターゲット・バージョンは、ワークロードの取得に使用したバージョン以上である必要があります。たとえば、Oracle Database 12xを使用して取得した場合、取得の読取りで選択するデータベースはバージョン12x以上である必要があります。

    • データベースおよびホスト資格証明が要求されます。

    • 前述の手順で、取得が完了したワークロードをファイル・システムのディレクトリからインポートを選択した場合は、ワークロードの場所も要求されます。

    • 統合リプレイは、少なくとも2つの取得ディレクトリを含む別のディレクトリ構造を持っています。したがって、ワークロード・ディレクトリに統合リプレイが含まれている場合は、インポート操作中にEnterprise Managerが統合リプレイを認識できるように、チェック・ボックスを有効にする必要があります。

  4. 前述の手順で必要な入力を行い、「次へ」をクリックします。

    「ワークロードのインポート: ワークロード」ページが表示されます。

    • 手順2で、「完了した取得済ワークロードをファイル・システムのディレクトリからインポートします。」を選択した場合は、このページに「ワークロードのロード」ボタンが表示されます。

    • 手順2で、「完了した取得済ワークロードをデータベース・ターゲットからインポートします。」または「データベース・ターゲットで実行中の取得にアタッチします。」を選択した場合は、このページに「ワークロードの検出」ボタンが表示されます。

  5. 手順2の選択に従って表示されるボタンに応じて、ワークロードのロードまたはワークロードの検出のいずれかをクリックします。

    ワークロードが見つかった場合は、検出されたワークロード表に表示されます。

  6. 「次へ」をクリックして、ワークロードをロードするか、ワークロードの1つを選択し、「次へ」をクリックしてワークロードのインポートを継続します。

    「ワークロードのインポート: リプレイ」ページが表示されるのは、次の条件の場合のみです。

    • 手順2で、「完了した取得済ワークロードをファイル・システムのディレクトリからインポートします。」を選択した場合。

    • 1つ以上のリプレイがワークロードに含まれている場合。

  7. オプション: 必要に応じて1つ以上のリプレイを選択し、リプレイ・タスク名を選択して、「次へ」をクリックします。

    「ワークロードのインポート: 確認」ページが表示されます。

  8. すべてが目的どおりに表示されたら、「送信」をクリックします。

    「データベース・リプレイ」ページには、ジョブが正常に送信されたことを示すメッセージが表示されます。「取得済ワークロード」表で、ロードまたはインポートされたワークロードの「ステータス」列に「進行中」と表示されます。

    ヒント:

    「確認」ステップで送信した取得済ワークロード名をクリックして、ジョブの進行状況を確認できます。「取得サマリー」ページが表示され、データベース・リプレイ・インポート・ジョブ・リンクをクリックして、ジョブ実行ステップの進行状況を確認できます。

10.11 既存のワークロードからのサブセットの作成

長時間をカバーする大きなワークロードを取得した場合は、テストを迅速化するために、ワークロードの特定の部分をリプレイするだけで済みます。データベース・リプレイ・ワークロードのサブセット化機能は、既存の取得済ワークロードの一部を抽出することにより、新しいワークロードを作成できます。

Enterprise Managerには、テスト・システムでリプレイに使用できる既存のワークロードからデータのサブセットを抽出するウィザードが用意されています。抽出された各サブセットは、自身のワークロード上または統合リプレイの他のワークロードでリプレイできる正規のワークロードです。

リプレイを実行するには、ワークロードを事前処理する必要があります。

この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。

ワークロードからサブセットを抽出するには、次の手順に従います。

  1. 「データベース・リプレイ」ページの「取得済ワークロード」タブから、サブセットを抽出するワークロードを選択し、「サブセット」をクリックします。

    「サブセット・ワークロード: 定義」ページが表示され、ワークロードの「アクティブ・セッション履歴」グラフが表示されます。

  2. ワークロードから抽出するサブセットの開始および終了時間を選択します。

    1. ページの下部にある「サブセット」表の上の「追加」をクリックします。

      サブセットの作成ポップアップが表示されます。

    2. スナップショットまたはカレンダ時間のいずれかを選択して、開始および終了時間を指定し、「OK」をクリックします。

      注意:

      すべてのパフォーマンス・データが、選択したカレンダで使用できるとは限らないため、スナップショット時間が推奨される選択肢になります。

      選択した期間は、グレー表示されたセグメントとして「アクティブ・セッション」グラフに表示されます。

    3. オプション: 前述の手順で選択した場合とは異なる期間で1つ以上の追加のサブセットを定義します。

    4. オプション: 「拡張パラメータ」セクションで、サブセット・ワークロードの終了後に未完了のコールを含めるかどうかを指定します。デフォルトでは、サブセットのワークロードが開始されると、未完了のコールが含まれます。

      • これらのパラメータでは、定義された境界の外部コールを組み込むことができます。たとえば、トランザクションの境界として、開始および終了時間を指定すると、指定された開始時間より前にトランザクションが開始され、指定された終了時間後も継続される場合があります。

  3. 「次へ」をクリックします。

    「サブセット・ワークロード: データベース」ページが表示されます。

  4. 「データベース・ターゲット」フィールドの横の検索アイコンをクリックして、表示される「検索と選択: ターゲット」ポップアップから、サブセット化用のデータベースを選択します。

    データベースおよびホスト資格証明が要求されます。

  5. 前述の手順で必要な入力を行い、「次へ」をクリックします。

    「サブセット・ワークロード: 場所」ページが表示されます。

    • ソース・ホストおよびステージング・データベース・ホストが同じ場合は、場所が事前入力されるので、ソース・ワークロード・ファイルの場所を指定する必要はありません。

    • ソース・ホストおよびステージング・データベースが同じでない場合は、次の手順を実行します。

      1. 「ホスト」フィールドに表示されるホスト名からワークロード・ファイルにアクセスするかどうか、また、ソース・ホストから、表示される「宛先ホスト」にファイルをコピーするかどうかを選択します。

        直接アクセスは、ワークロードのサブセット化に使用するデータベースが、指定したファイル・システムの場所を使用して元のワークロードに直接アクセスできることを意味します。これは、通常は元のワークロードがネットワーク共有された場所に格納されている場合です。

        アクセス権のコピーは、2つのホストが共有ネットワーク・パスにないことを意味します。Enterprise Managerが元のワークロードを現在の場所から、サブセット・データベース・ホスト上の指定された場所にコピーできるように、ソース・ホスト資格証明を指定する必要があります。

      2. 前述の選択内容に応じて、ワークロード・ファイルを含むディレクトリの場所を指定するか、宛先ホストの場所を指定します。

  6. 「サブセット」フィールドで、各サブセットの記憶域の場所を指定し、「次へ」をクリックします。

    「サブセット・ワークロード: スケジュール」ページが表示されます。

  7. サブセット・ジョブを開始する時間を指定し、「次へ」をクリックします。

    「サブセット・ワークロード: 確認」ページが表示されます。

  8. すべてが目的どおりに表示されたら、「送信」をクリックします。

    「データベース・リプレイ」ページには、ジョブが正常に送信されたことを示すメッセージが表示されます。「リプレイ・タスク」表のサブセットの「ステータス」列に、「進行中」と表示されます。

    ヒント:

    「確認」ステップで送信したサブセット名をクリックして、ジョブの進行状況を確認できます。「取得サマリー」ページが表示され、データベース・リプレイ・サブセット・ジョブリンクをクリックして、ジョブ実行ステップの進行状況を確認できます。

10.12 新しい場所からのワークロードのコピーまたは移動

2つの目的で、コピー機能を使用できます。目的は、次のとおりです。
  • ソースから別のホストおよび場所に取得ファイルを複製する。

  • 新しいホストおよび場所に取得ファイルを移動し、元の場所からソース・ファイルを削除する。

この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。

新しい場所にワークロードをコピーするには、次の手順に従います。

  1. 「データベース・リプレイ」ページの「取得済ワークロード」タブで、新しい場所にコピーするワークロードを選択し、「コピー」をクリックします。

    「ワークロードのコピー」ページが表示され、選択したワークロード・ディレクトリの現在のソースの場所が表示されます。

  2. 必要に応じて、記憶域ホストの資格証明を指定または変更します。現在の記憶域ホストで定義済の資格証明が自動的に取得されます。

  3. 「コピー後」ラジオ・ボタンを有効のままにします(ソースの場所の元のワークロードが保持されます)。

  4. ワークロード・ディレクトリの新しい場所の「記憶域ホスト」を選択します。

  5. 新しい記憶域ホストの資格証明を指定します。

  6. ワークロードの新しい「宛先ロケーション」のディレクトリを選択します。

  7. ジョブをスケジュールし、「発行」をクリックします。

    「データベース・リプレイ」ページが再度表示され、ジョブが発行され、記憶域の場所が正常に更新されたことを示すメッセージが表示されます。

    ヒント:

    「ジョブ・アクティビティ」ページに移動して、送信メッセージに表示されたジョブ名を検索し、そのリンクをクリックして「ジョブ実行」ページにアクセスすることで、ジョブの進行状況をチェックできます。

10.13 APIを使用したデータベース・ワークロードの取得

この項では、APIを使用してデータベース・ワークロードを取得する方法について説明します。また、「Enterprise Managerを使用したデータベース・ワークロードの取得」で説明されているように、Oracle Enterprise Managerを使用してデータベース・ワークロードを取得できます。

DBMS_WORKLOAD_CAPTUREパッケージを使用してデータベース・ワークロードを取得する手順は、次のとおりです。

関連項目:

10.13.1 ワークロード取得フィルタの定義

この項では、ワークロード取得フィルタを追加および削除する方法について説明します。ワークロード取得に対するワークロード・フィルタの使用については、「ワークロード取得でのフィルタの使用」を参照してください。

ワークロード取得にフィルタを追加するには、次の手順に従います。

  • ADD_FILTERプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
                               fname => 'user_ichan',
                               fattribute => 'USER',
                               fvalue => 'ICHAN');
    END;
    /
    

    この例では、ADD_FILTERプロシージャは、user_ichanというフィルタを追加します。このフィルタは、ユーザー名ICHANに属するすべてのセッションを除外するために使用できます。

    この例のADD_FILTERプロシージャでは、次のパラメータを使用します。

    • fname: 追加するフィルタの名前を指定する必須パラメータ。

    • fattribute: フィルタを適用する属性を指定する必須パラメータ。有効値は、PROGRAM、MODULE、ACTION、SERVICE、INSTANCE_NUMBERおよびUSERです。

    • fvalue: フィルタを適用する属性に対応する値を指定する必須パラメータ。一部の属性(モジュールやアクションなど)では、%などのワイルドカードを使用できます。

ワークロード取得からフィルタを削除するには、次の手順に従います。

  • DELETE_FILTERプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.DELETE_FILTER (fname => 'user_ichan');
    END;
    /
    

    この例では、DELETE_FILTERプロシージャは、ワークロードの取得からuser_ichanというフィルタを削除します。

    この例のDELETE_FILTERプロシージャは、必須パラメータfnameを使用します。このパラメータは、削除するフィルタの名前を指定します。DELETE_FILTERプロシージャは、完了した取得に属するフィルタは削除せず、まだ開始されていない取得のフィルタのみに適用されます。

10.13.2 ワークロードの取得の開始

この項では、ワークロード取得を開始する方法について説明します。
ワークロードの取得を開始する前に、データベース・ワークロードを取得するための前提条件を満たす必要があります。前提条件は、「データベース・ワークロードの取得の前提条件」に記載されています。また、「ワークロードの取得のオプション」で説明されているように、ワークロードの取得のオプションを確認する必要があります。

取得されたワークロードのリプレイを開始する前にリプレイ・システムを開始ポイントにリストアできるように、適切に定義されたワークロードの開始ポイントを取得することが重要です。ワークロードの取得の開始ポイントを適切に定義するには、ワークロードの取得が開始されたときにアクティブなユーザー・セッションが存在しないことが理想的です。アクティブ・セッションでトランザクションが進行中の場合、それらのトランザクションはその後のデータベース・リプレイで適切にリプレイされませんが、これは、トランザクションのうち、ワークロードの取得を開始した後に実行されたコールの部分しかリプレイされないためです。この問題を避けるには、ワークロードの取得を開始する前にSTARTUP RESTRICTを使用してデータベースを制限モードで再起動します。ワークロードの取得が開始されると、データベースは自動的に無制限モードに切り替わり、ワークロードの取得中は通常の操作を続行できます。ワークロード取得前のデータベースの再起動の詳細は、「データベースの再起動」を参照してください。

ワークロード取得を開始するには、次の手順に従います。

  • START_CAPTUREプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'dec10_peak', 
                               dir => 'dec10',
                               duration => 600,
                               capture_sts => TRUE,
                               sts_cap_interval => 300,
                               plsql_mode => 'extended'
                               encryption => 'AES256');
    END;
    /
    

    この例では、dec10_peakというワークロードが600秒間取得され、dec10というデータベース・ディレクトリ・オブジェクトで定義されたファイル・システムに格納されます。ワークロードの取得と並行して、SQLチューニング・セットも取得されます。

    この例のSTART_CAPTUREプロシージャでは、次のパラメータを使用します。

    • name: 取得するワークロードの名前を指定する必須パラメータ。

    • dir: 取得したワークロードを格納するディレクトリを指すディレクトリ・オブジェクトを指定する必須パラメータ。

    • duration: ワークロードの取得が終了するまでの時間(秒)を指定するパラメータ。値を指定しない場合、ワークロードの取得は、FINISH_CAPTUREプロシージャがコールされるまで続きます。

    • capture_sts: ワークロードの取得と並行してSQLチューニング・セットを取得するかどうかを指定するパラメータ。このパラメータをTRUEに設定した場合、ワークロードの取得中に1つのSQLチューニング・セットを取得し、ワークロードのリプレイ中にもう1つ別のSQLチューニング・セットを取得することで、SQL文を再実行しなくても、SQLパフォーマンス・アナライザを使用してそれらのSQLチューニング・セットを比較できます。この方法では、データベース・リプレイの実行中に、SQLパフォーマンス・アナライザ・レポートを取得して、変更の前と後のSQLパフォーマンスを比較することができます。また、「ワークロードの取得のAWRデータのエクスポート」で説明されているように、EXPORT_AWRプロシージャを使用して、結果のSQLチューニング・セットをそのAWRデータとともにエクスポートできます。

      この機能は、Oracle RACではサポートされていません。DBMS_WORKLOAD_CAPTUREを使用して定義したワークロード取得フィルタは、SQLチューニング・セットの取得には適用されません。このパラメータのデフォルト値はFALSEです。

    • sts_cap_interval: カーソル・キャッシュからのSQLチューニング・セット取得の継続時間(秒)を指定するパラメータ。デフォルト値は300です。このパラメータの値をデフォルト値未満に設定すると、一部のワークロードで追加オーバーヘッドが生じる可能性があるため、そのような設定は推奨されません。

    • オプションのplsql_modeパラメータでは、取得およびリプレイ時にPL/SQLがDBリプレイでどのように処理されるか指定します。

      plsql_modeパラメータには次の2つの値を設定できます。

      • top_level: 最上位レベルのPL/SQLコールのみ取得およびリプレイされます。これは、Oracle Database 12cリリース2 (12.2.0.1)より前のDBリプレイによるPL/SQLの処理方法です。これがデフォルト値です。

      • extended: 最上位レベルのPL/SQLコールとPL/SQLからコールされたSQLの両方が取得されます。ワークロードがリプレイされると、リプレイは最上位レベルと拡張レベルのいずれかで実行され、両方のレベルでは実行されません。

    • encryptionパラメータでは、取得ファイルの暗号化に使用されるアルゴリズムを指定します。

      encryptionパラメータでは、次の暗号化標準を使用できます。

      • NULL - 取得ファイルは暗号化されません(デフォルト値)

      • AES128 - 取得ファイルはAES128を使用して暗号化されます

      • AES192 - 取得ファイルはAES192を使用して暗号化されます

      • AES256 - 取得ファイルはAES256を使用して暗号化されます

      注意:

      暗号化ありでSTART_CAPTUREを実行するには、oracle.rat.database_replay.encryption (大/小文字を区別)識別子を使用してパスワードを設定する必要があります。パスワードはソフトウェア・キーストアに格納されます。ソフトウェア・キーストアの作成の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

例: パスワードベースのソフトウェア・キーストアの設定

次の文は、パスワードベースのソフトウェア・キーストアを作成します。

ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'MYKEYSTORE' IDENTIFIED BY password;

次の文は、パスワードベースのソフトウェア・キーストアを開き、パスワードベースのソフトウェア・キーストアのバックアップを作成します。

ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;

ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password WITH BACKUP;

次の文は、タグDBREPLAYを指定してクライアント'oracle.rat.database_replay.encryption'のシークレットsecret_keyをパスワードベースのソフトウェア・キーストアに追加します。シークレットを追加する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT ADD SECRET secret_key FOR CLIENT 'oracle.rat.database_replay.encryption' USING TAG 'DBREPLAY' 
IDENTIFIED BY password WITH BACKUP;

次の文は、パスワードベースのソフトウェア・キーストアを閉じます。

ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY password;

注意:

データベース取得およびデータベース・リプレイを実行するには、ソフトウェア・キーストアをオープンしたままにしておく必要があります。

10.13.3 ワークロードの取得の停止

この項では、ワークロード取得を停止する方法について説明します。

ワークロード取得を停止するには、次の手順に従います。

  • FINISH_CAPTUREプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE (); 
    END;
    /
    

    この例では、FINISH_CAPTUREプロシージャは、ワークロードの取得を終了し、データベースを通常の状態に戻します。

ヒント:

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

10.13.4 ワークロードの取得のAWRデータのエクスポート

AWRデータをエクスポートすると、ワークロードの詳細な分析が可能になります。このデータは、2つのワークロードの取得(またはリプレイ)に対して、リプレイの期間比較レポートまたはAWR期間比較レポートを実行する場合には必須です。

AWRデータをエクスポートする手順は次のとおりです。

  • EXPORT_AWRプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.EXPORT_AWR (capture_id => 2);
    END;
    /
    

    この例では、取得IDが2のワークロード取得に対応するAWRスナップショットがエクスポートされます。また、ワークロードの取得中に取得されたSQLチューニング・セットもエクスポートされます。

    EXPORT_AWRプロシージャでは、AWRスナップショットをエクスポートする取得のIDを指定する必須パラメータcapture_idを使用します。capture_idパラメータの値がDBA_WORKLOAD_CAPTURESビューのID列に表示されます。

    注意:

    このプロシージャは、対応するワークロードの取得が現在のデータベースで実行され、元の取得期間に対応するAWRスナップショットがまだ使用可能である場合にのみ、機能します。

関連項目:

DBA_WORKLOAD_CAPTURESビューの詳細は、『Oracle Databaseリファレンス』を参照してください

10.13.5 ワークロードの取得のAWRデータのインポート

AWRデータは取得システムからエクスポートすると、取得済ワークロードをリプレイするテスト・システムなどの別のシステムにインポートできます。AWRデータをインポートすると、ワークロードの詳細な分析が可能になります。このデータは、2つのワークロードの取得(またはリプレイ)に対して、リプレイの期間比較レポートまたはAWR期間比較レポートを実行する場合には必須です。

AWRデータをインポートするには、次の手順を実行します。

  • 次の例に従って、IMPORT_AWRファンクションを使用します。

    CREATE USER capture_awr
    SELECT DBMS_WORKLOAD_CAPTURE.IMPORT_AWR (capture_id => 2,
                                             staging_schema => 'capture_awr')
      FROM DUAL;
    

    この例では、取得IDが2のワークロード取得に対応するAWRスナップショットがcapture_awrという名前のステージング・スキーマを使用してインポートされます。

    この例のIMPORT_AWRプロシージャでは、次のパラメータを使用します。

    • 必須パラメータcapture_idでは、AWRスナップショットをインポートする取得のIDを指定します。capture_idパラメータの値がDBA_WORKLOAD_CAPTURESビューのID列に表示されます。

    • 必須パラメータstaging_schemaでは、SYS AWRスキーマにAWRスナップショットをインポートする間に、ステージング領域として使用できる現在のデータベースの有効なスキーマ名を指定します。

注意:

staging_schemaパラメータで指定したスキーマにAWR表と同じ名前の表が含まれる場合、このファンクションは失敗します。

関連項目:

DBA_WORKLOAD_CAPTURESビューの詳細は、『Oracle Databaseリファレンス』を参照してください

10.14 APIの使用による既存のワークロード取得の暗号化および復号化

この項では、APIを使用して既存のワークロード取得を暗号化および復号化する方法について説明します。

ワークロード取得時には、接続文字列やSQLテキスト、バインド値といった各種情報が保存されます。機密データが含まれている場合、この情報は暗号化できます。「ワークロードの取得の開始」で説明されているとおりに、ワークロード取得時に暗号化を有効にできます。

10.14.1 既存のワークロード取得の暗号化

この項では、既存のワークロード取得を暗号化する方法について説明します。

既存のワークロード取得を暗号化するには、次の手順に従います。

  • ENCRYPT_CAPTUREプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.ENCRYPT_CAPTURE(src_dir => 'dec10',
                                            dst_dir => 'dec10_enc',
                                            encryption => 'AES128');
    END;
    /
    

    この例のENCRYPT_CAPTUREプロシージャでは、次のパラメータを使用します。

    • src_dirパラメータは、暗号化するワークロード取得が格納されているディレクトリを指しています。

    • dst_dirパラメータは、暗号化された取得が暗号化後に保存されるディレクトリを指しています。

    • encryptionパラメータでは、ワークロード取得の暗号化に使用されるアルゴリズムを指定します。

注意:

DBMS_WORKLOAD_CAPTURE.ENCRYPT_CAPTUREを実行する前に、ソフトウェア・キーストアにoracle.rat.database_replay.encryption (大/小文字を区別)識別子を格納しておく必要があります。

10.14.2 暗号化されたワークロード取得の復号化

この項では、暗号化されたワークロード取得を復号化する方法について説明します。

暗号化されたワークロード取得は、DBMS_WORKLOAD_CAPTURE.DECRYPT_CAPTUREプロシージャを使用して復号化できます。

暗号化されたワークロード取得を復号化するには、次の手順に従います。

  • DECRYPT_CAPTUREプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_CAPTURE.DECRYPT_CAPTURE(src_dir => 'dec10_enc',
                                            dst_dir => 'dec10');
    END;
    /
    

    この例のDECRYPT_CAPTUREプロシージャでは、次のパラメータを使用します。

    • src_dirパラメータは、暗号化された取得が格納されているディレクトリを指しています。

    • dst_dirパラメータは、復号化された取得が復号化後に保存されるディレクトリを指しています。

注意:

DBMS_WORKLOAD_CAPTURE.DECRYPT_CAPTUREを実行する前に、ソフトウェア・キーストアにoracle.rat.database_replay.encryption (大/小文字を区別)識別子を格納しておく必要があります。

10.15 ビューを使用したワークロードの取得の監視

この項では、ワークロードの取得を監視するために表示できるビューの概要を示します。また、「Enterprise Managerを使用したワークロードの取得の監視」で説明されているように、Oracle Enterprise Managerを使用してワークロードの取得を監視できます。

これらのビューにアクセスするには、次のDBA権限が必要です。

  • DBA_WORKLOAD_CAPTURESビュー: 現在のデータベースで取得されたワークロードの取得をすべて示します。

  • DBA_WORKLOAD_FILTERSビュー: 現在のデータベースに定義されたワークロードの取得に対して使用されるワークロード・フィルタをすべて示します。

関連項目: