この章では、本番システムでデータベース・ワークロードを取得する方法について説明します。データベース・リプレイを使用するための最初の手順は、本番ワークロードの取得です。データベース・リプレイのアーキテクチャに適したデータベース・ワークロードの取得方法の詳細は、「ワークロードの取得」を参照してください。
この章は次の項で構成されています:
ワークロードの取得を開始する前に、テスト・システムでデータベースをリストアするための方針を決定する必要があります。ワークロードをリプレイするには、リプレイ・システムのアプリケーション・データの論理状態を、リプレイの開始時における取得システムのデータの状態と同じにする必要があります。これを行うには、次のいずれかの方法を使用します。
Recovery Manager(RMAN)のDUPLICATE
コマンド
スナップショット・スタンバイ
データ・ポンプのインポートおよびエクスポート
これにより、リプレイ・システムのデータベースを、ワークロードの取得の開始時と同じ運用の状態までリストアできます。
関連項目:
|
正確な取得を行い、別の環境でのリプレイ時に役立つように、ワークロードを取得する前に適切な計画を行う必要があります。
データベース・ワークロードを取得する前に、次のオプションを慎重に検討してください。
この手順は必須ではありませんが、ワークロードの取得の開始前に進行中のトランザクションおよび依存トランザクションを確実に完了またはロールバックするために、その取得前にデータベースを再起動することをお薦めします。取得の開始前にデータベースを再起動しないと、進行中のトランザクションまたはコミット前のトランザクションは、ワークロードに完全に取得されません。進行中のトランザクションは、コールが取得された部分のトランザクションしかリプレイされないため、適切にリプレイされません。これにより、ワークロードのリプレイ時に望ましくないリプレイの相違が発生する可能性があります。不完全なトランザクションに依存する後続のトランザクションでも、リプレイ時にエラーが発生する場合があります。処理量が多いシステムでは、リプレイの相違がある程度あるのは一般的ですが、その場合でも、違いがあるコールがDB時間などの主要な属性でリプレイの大部分を占めていなければ、リプレイを使用して、システム変更に関して意味のある分析を実行できます。
そのため、データベースを再起動する前に、本番データベースを停止する適切なタイミング(システムへの影響が最も少ない時間)について検討するようにしましょう。たとえば、ワークロードの取得を午前8:00から開始しようと思った場合でも、営業時間中にサービスが停止することを避けるためには、その時間帯にデータベースが再起動されないようにする必要があります。そのような場合は、ワークロードの取得開始をもっと早い時間にずらすなどして、なるべく不都合のない時間にデータベースが再起動されるようにしましょう。
データベースを再起動したら、ユーザー・セッションが再接続してワークロードを発行し始める前に、ワークロードの取得を開始することが重要です。そうしないと、そのユーザー・セッションによって実行されたトランザクションは、その後のデータベース・リプレイで適切にリプレイされません(これは、トランザクションのうち、ワークロードの取得を開始した後に実行されたコールの部分しかリプレイされないためです)。この問題を避けるには、SYS
ユーザーのみにログインとワークロードの取得開始を許可するように、STARTUP RESTRICT
を使用してRESTRICTED
モードでデータベースを再起動します。デフォルトでは、ワークロードの取得が開始されると、RESTRICTED
モードのデータベース・インスタンスは自動的にUNRESTRICTED
モードに切り替わり、ワークロードの取得中は通常の操作を続行できます。
ワークロードの取得は、常に1回しか実行できません。Oracle Real Application Clusters(Oracle RAC)構成の場合、ワークロードの取得はデータベース全体を対象に実行されます。開始前にクリーンな状態でワークロードを取得できるよう、すべてのインスタンスを再起動する必要があります。
ワークロードの取得前にOracle RAC構成のすべてのインスタンスを再起動するには、次の手順を実行します。
すべてのインスタンスを停止します。
インスタンスの1つを再起動します。
ワークロードの取得を開始します。
残りのインスタンスを再起動します。
関連項目:
|
デフォルトでは、すべてのユーザー・セッションがワークロードの取得時に記録されます。ワークロード・フィルタを使用すると、ワークロードの取得時にワークロードに含めるユーザー・セッションと除外するユーザー・セッションを指定できます。包含フィルタおよび除外フィルタという2種類のワークロード・フィルタがあります。ワークロードの取得では、包含フィルタまたは除外フィルタのいずれか一方を使用でき、両方は使用できません。
包含フィルタでは、ワークロードに取得するユーザー・セッションを指定できます。これは、データベース・ワークロードの一部のみを取得する場合に便利です。
除外フィルタでは、ワークロードに取得しないユーザー・セッションを指定できます。これは、インフラストラクチャ(Oracle Enterprise Manager(EM)、Statspackなど)を監視するセッションやテスト・システムですでに実行中のプロセスなど、ワークロードで取得する必要がないセッション・タイプを除外する場合に便利です。たとえば、ワークロードをリプレイするシステムでEMを実行している場合、取得したEMセッションをそのシステムでリプレイすると、ワークロードが重複します。この場合、除外フィルタを使用してEMセッションを除外できます。
取得したワークロードを格納する場所を決定し、ディレクトリを設定します。ワークロードの取得を開始する前に、ディレクトリが空であり、ワークロードを格納するために十分なディスク領域があることを確認します。ワークロードの取得中にディレクトリのディスク領域が不足すると、取得が停止します。必要なディスク容量を見積もるため、短期間(数分間など)、ワークロードのテスト取得を実行し、完全取得に必要な容量がどれくらいかを推定することができます。潜在的なパフォーマンスの問題を回避するため、ターゲットのリプレイ・ディレクトリが別のファイル・システムにマウントされていることも確認する必要があります。
Oracle RACの場合、共有ファイル・システムの使用を検討してください。また、インスタンスごとに別々の物理ディレクトリを指定する1つの取得ディレクトリ・パスを設定することもできますが、これらの各ディレクトリに作成されたファイルは、単一のディレクトリに統合する必要があります。事前処理またはデータ・マスキングに使用できるようにするには、(取得ファイルのみでなく)各インスタンスのローカル取得ディレクトリのコンテンツ全体を共有ディレクトリにコピーする必要があります。たとえば、次のように想定します。
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
共有ディレクトリで前処理またはマスキングが可能になります。
特定のタイプのユーザー・セッションおよびクライアント・リクエストは、ワークロードに取得されてもデータベース・リプレイによってサポートされない場合があります。これらのセッションおよびリクエストのタイプをワークロードで取得すると、ワークロード・リプレイ中にエラーが発生する場合があります。
次のタイプのユーザー・セッションおよびクライアント・リクエストはデータベース・リプレイによってサポートされません。
SQL*Loaderなどのユーティリティを使用する、外部ファイルからのデータのダイレクト・パス・ロード
PL/SQL以外のアドバンスト・キューイング(AQ)
フラッシュバック問合せ
Oracle Call Interface(OCI)ベースのオブジェクト・ナビゲーション
SQL以外のオブジェクト・アクセス
分散トランザクション
取得された分散トランザクションはすべてローカル・トランザクションとしてリプレイされます。
XAトランザクション
XAトランザクションは取得もリプレイもされません。すべてのローカル・トランザクションは取得されます。
JAVA_XA
トランザクション
ワークロードでJAVA_XA
パッケージが使用される場合、JAVA_XA
ファンクション・コールおよびプロシージャ・コールは通常のPL/SQLワークロードとして取得されます。ワークロード・リプレイ中の問題を回避するには、リプレイを正常に完了できるように、リプレイ・システム上のJAVA_XA
パッケージの削除を検討してください。
Database Resident Connection Pooling (DRCP)
OUTバインドを使用したワークロード
同期モードをOBJECT_ID
に設定したマルチスレッド・サーバー(MTS)および共有サーバーのセッション
移行されたセッション
移行されたセッションのワークロードは取得されます。ただし、ユーザーのログインやセッションの移行操作は取得されません。ユーザー・ログインやセッションの移行が有効でない場合、ワークロードが不正なユーザーによってリプレイされる可能性があるため、リプレイでエラーが発生する可能性があります。
通常、データベース・リプレイでは、これらのタイプのサポートされていないユーザー・セッションおよびクライアント・リクエストの取得は行われません。取得された場合でも、データベース・リプレイによってリプレイされることはありません。そのため、サポートされていないユーザー・セッションおよびクライアント・リクエストを手動で除外する必要は、通常はありません。これらが取得され、リプレイ中にエラーが発生することがわかった場合は、ワークロードからこれらを除外するワークロード取得フィルタの使用を検討してください。
関連項目:
|
データベース・リプレイは、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以上が実行されているシステムでデータベース・ワークロードを取得する場合は、ワークロードの取得機能はデフォルトで有効になっているため、この機能を有効にする必要はありません。また、 |
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 )からパラメータを削除する必要があり、削除しないと、データベースは起動に失敗します。 |
関連項目:
|
任意のデータベース・リプレイ・エンティティを参照または操作するには、データベース・リプレイのリソース・タイプの権限が必要です。また、ワークロードに関連付けられたエンティティにアクセスするには、ワークロードを取得したターゲットのターゲット・オペレータ権限が必要です。ターゲットが現在存在しない場合、そのエンティティにアクセスするには、そのエンティティを所有するEnterprise ManagerまたはEnterprise Managerスーパー・ユーザーである必要があります。
次の項で説明する2つのセキュリティ・ロールを使用すると、データベース・リプレイ・エンティティに関連する権限の付与および取消しが簡単になります。
データベース・リプレイ・ビューア・ロールを持つユーザーは、すべてのデータベース・リプレイ・エンティティを表示できます。デフォルトでは、このロールを付与されるEnterprise Managerはいません。ただし、EM_ALL_VIEWERロールにはデフォルトでこのロールが含まれています。
データベース・リプレイ・ビューア・ロールには、次の権限があります。
データベース・リプレイ・ビューア(リソース・タイプ権限)
データベース・リプレイ・オペレータ・ロールには、データベース・リプレイ・ビューア・ロールが含まれるので、その権限も含まれます。データベース・リプレイ・オペレータ・ロールを持つユーザーは、すべてのデータベース・リプレイ・エンティティを編集および削除できます。デフォルトでは、このロールを付与されるEnterprise Managerはいません。ただし、EM_ALL_OPERATORロールにはデフォルトでこのロールが含まれています。
データベース・リプレイ・オペレータ・ロールには、次の権限があります。
データベース・リプレイ・オペレータ(リソース・タイプ権限)
名前付き資格証明の新規作成(リソース・タイプ権限)
新規ジョブの作成(リソース・タイプ権限)
表示可能な任意のターゲットに接続(ターゲット・タイプ権限)
任意の場所でのコマンドの実行(ターゲット・タイプ権限)
データベース・ターゲットでワークロードを取得またはリプレイする場合、Enterprise Managerユーザーにはデータベース・リプレイ・オペレータ・ロールのすべての権限に加え、ターゲット・データベースのターゲット・オペレータ権限が必要です。
この項では、Enterprise Managerを使用してデータベース・ワークロードを取得する方法について説明します。データベース・ワークロードを取得するための主要ツールは、Oracle Enterprise Managerです。
ヒント: Oracle Enterprise Managerを使用できない場合は、「APIを使用したデータベース・ワークロードの取得」で説明されているように、APIを使用してデータベース・ワークロードを取得できます。 |
Enterprise Managerを使用してデータベース・ワークロードを取得するには、次の手順を実行します。
Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」、「データベース・リプレイ」の順に選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。
「データベース・リプレイ」ページが表示されます。
データベース・リプレイ・ページの「取得済ワークロード」タブをクリックし、ツールバーの「作成」をクリックします。
取得の作成: 環境の計画ページが表示されます。
このページに説明されているいずれの前提条件も満たしていることを確認してから、両方のチェック・ボックスを選択し、「次へ」をクリックします。
取得の作成: データベース・ページが表示されます。
「追加」をクリックします。
「追加」ポップアップが表示されます。
取得名と説明(オプション)を入力し、「ターゲット・データベース」検索アイコンをクリックします。
「検索と選択: ターゲット」ポップアップが表示されます。
リストからターゲット・データベースを選択し、「選択」をクリックします。
「データベース資格証明」および「データベース・ホスト資格証明」にセクションが追加された状態で、「追加」ポップアップが再度表示されます。
データベース資格証明、データベース・ホスト資格証明、データベース取得の中間記憶域の場所を入力し、「OK」をクリックします。
取得データベースによって、取得ファイルが中間の記憶域の場所に配置されます。取得後、ファイルは記憶域にコピーされます。Enterprise Managerでは、Oracle RACデータベースに対する取得については、共有ファイル・システムで構成されたOracle RACのみをサポートしています。
これで、選択したターゲット・データベースが、本番データベースの選択表のデータベース・リストに表示されます。
「次へ」をクリックします。
取得の作成: オプション・ページが表示されます。
ワークロードの取得のオプションを選択します。
「SQLパフォーマンス・アナライザ」セクションで、ワークロードの取得時に、SQL文をSQLチューニング・セットに取得するかどうかを選択します。
データベースのリプレイでは、変更がシステム全体に及ぼす影響が分析されますが、SQLパフォーマンス・アナライザとともにSQLチューニング・セットを使用すれば、変更がSQL文と実行計画にどのように影響するか、SQLを中心とした分析を行うことができます。
ワークロードの取得時にはSQLチューニング・セットを取得し、ワークロードのリプレイ時には別のSQLチューニング・セットを取得することで、SQL文を再実行することなく、SQLパフォーマンス・アナライザを使用してこれらのSQLチューニング・セットを相互に比較できます。これにより、データベース・リプレイを実行しながら、SQLパフォーマンス・アナライザ・レポートを生成して、変化の前後のSQLパフォーマンスを比較できます。
注意: SQL文は、SQLチューニング・セットにデフォルトで取得され、推奨されるワークロード取得オプションです。Oracle RACでは、SQL文はSQLチューニング・セットへは取得されません。 |
「ワークロード・フィルタ」セクションで、「フィルタ・モード」リストの「除外」を選択して除外フィルタを使用するか、「包含」を選択して包含フィルタを使用します。
フィルタを追加するには、「追加」をクリックしてフィルタ名、セッション属性および値を該当するフィールドに入力します。
適切なワークロードの取得のオプションを選択したら、「次へ」をクリックします。
取得の作成: 記憶域ページが表示されます。
「記憶域ホスト」アイコンをクリックし、リストからターゲットを選択して、「選択」をクリックします。
記憶域ページで、ホスト資格証明と記憶域の場所をリクエストされます。
ホスト資格証明を指定し、「参照」をクリックして記憶域の場所を選択し、場所を選択して「OK」、「次へ」の順にクリックします。
取得の作成: スケジュール・ページが表示されます。
取得の開始時間と期間をスケジュールし、AWRデータのエクスポートをスケジュールして、「次へ」をクリックします。
デフォルトの取得期間は5分です。テストが必要な対象期間の代理アクティビティを取得する取得期間を変更します。
取得の作成: 確認ページが表示されます。
すべてのパラメータが意図したとおりに設定されたら、「発行」をクリックして取得ジョブを開始します。
デフォルトでは、「ワークロード取得中にSQL文をSQLチューニング・セットに取り込みます。」オプションが有効です。リプレイ終了時にSQLチューニング・セットを比較しない場合は、このオプションの選択を解除します。
データベース・リプレイ・ページが再度表示され、取得が正常に作成されたというメッセージと、「スケジュール済」などの取得のステータスが「取得」リストに表示されます。
取得の詳細は、取得名をダブルクリックしてください。
取得サマリー・ページが表示され、平均アクティブ・セッション、ワークロードの比較、関連する同時取得など、複数の属性があれば表示されます。
同時取得とは、複数のデータベースからワークロードを同時に取得することです。
データベース・リプレイ・ワークロードを同時に取得するには、次の手順に従います。
Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」、「データベース・リプレイ」の順に選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。
「データベース・リプレイ」ページが表示されます。
データベース・リプレイ・ページの「取得済ワークロード」タブをクリックし、ツールバーの「作成」をクリックします。
取得の作成: 環境の計画ページが表示されます。
このページに説明されているどちらの前提条件も満たしていることを確認してから、両方のチェック・ボックスを選択し、「次へ」をクリックします。
取得の作成: データベース・ページが表示されます。
「追加」をクリックします。
「追加」ポップアップが表示されます。
取得名と説明(オプション)を入力し、「ターゲット・データベース」検索アイコンをクリックします。
「検索と選択: ターゲット」ポップアップが表示されます。
リストからターゲット・データベースを選択し、「選択」をクリックします。
「データベース資格証明」および「データベース・ホスト資格証明」にセクションが追加された状態で、「追加」ポップアップが再度表示されます。
データベース資格証明、データベース・ホスト資格証明、データベース取得の中間記憶域の場所を入力し、「OK」をクリックします。
取得データベースによって、取得ファイルが中間の記憶域の場所に配置されます。取得後、ファイルは記憶域にコピーされます。
これで、選択したターゲット・データベースが、本番データベースの選択表のデータベース・リストに表示されます。
同時取得する別のデータベースを追加します。
ワークロードの取得のオプションを選択します。
「SQLパフォーマンス・アナライザ」セクションで、ワークロードの取得時に、SQL文をSQLチューニング・セットに取得するかどうかを選択します。
データベースのリプレイでは、変更がシステム全体に及ぼす影響が分析されますが、SQLパフォーマンス・アナライザとともにSQLチューニング・セットを使用すれば、変更がSQL文と実行計画にどのように影響するか、SQLを中心とした分析を行うことができます。
ワークロードの取得時にはSQLチューニング・セットを取得し、ワークロードのリプレイ時には別のSQLチューニング・セットを取得することで、SQL文を再実行することなく、SQLパフォーマンス・アナライザを使用してこれらのSQLチューニング・セットを相互に比較できます。これにより、データベース・リプレイを実行しながら、SQLパフォーマンス・アナライザ・レポートを生成して、変化の前後のSQLパフォーマンスを比較できます。
注意: SQLチューニング・セットへのSQL文の取得はデフォルトで実行されます。これは、推奨されるワークロード取得オプションです。 |
「ワークロード・フィルタ」セクションで、「フィルタ・モード」リストの「除外」を選択して除外フィルタを使用するか、「包含」を選択して包含フィルタを使用します。
フィルタを追加するには、「追加」をクリックしてフィルタ名、セッション属性および値を該当するフィールドに入力します。
適切なワークロードの取得のオプションを選択したら、「次へ」をクリックします。
取得の作成: 記憶域ページが表示されます。
「記憶域ホスト」アイコンをクリックし、リストからターゲットを選択して、「選択」をクリックします。
記憶域ページで、ホスト資格証明と記憶域の場所をリクエストされます。
ホスト資格証明を入力し、記憶域を選択するために「参照」をクリックし、「次」をクリックします。
取得の作成: スケジュール・ページが表示されます。
取得の開始時間と期間をスケジュールし、AWRデータのエクスポートをスケジュールして、「次へ」をクリックします。
デフォルトの取得期間は5分です。テストが必要な対象期間の代理アクティビティを取得する取得期間を変更します。
取得の作成: 確認ページが表示されます。
すべてのパラメータが意図したとおりに設定されたら、「発行」をクリックして取得ジョブを開始します。
デフォルトでは、「ワークロード取得中にSQL文をSQLチューニング・セットに取り込みます。」オプションが有効です。リプレイ終了時にSQLチューニング・セットを比較しない場合は、このオプションの選択を解除します。
データベース・リプレイ・ページが再度表示され、取得が正常に作成されたというメッセージと、「スケジュール済」などの取得のステータスが「取得」リストに表示されます。
取得の詳細は、取得名をダブルクリックしてください。
取得サマリー・ページが表示され、平均アクティブ・セッション、ワークロードの比較、関連する同時取得など、複数の属性が表示されます。
この項では、Enterprise Managerを使用してワークロードの取得を監視する方法について説明します。ワークロードの取得を監視するための主要ツールは、Oracle Enterprise Managerです。Enterprise Managerを使用すると、次の操作を実行できます。
アクティブなワークロードの取得の監視または停止
完了したワークロード取得の表示
この項には次のトピックが含まれます:
この項では、Enterprise Managerを使用してアクティブなワークロードの取得を監視する方法について説明します。
アクティブなワークロードの取得を監視するには、次の手順を実行します。
Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」、「データベース・リプレイ」の順に選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。
「データベース・リプレイ」ページが表示されます。
ステータスが「完了」以外の取得のデータベース・リプレイ・ページにある「取得済ワークロード」タブで、「取得」表から必要な取得の名前をクリックします。
詳細な統計、取得の進行中に動的に更新される平均アクティブ・セッションのグラフ、取得された要素と取得されなかった同じ要素間のデータの比較、および関連する同時取得(存在する場合)が表示された、データベース・リプレイ・ページの「サマリー」タブが開きます。
「平均アクティブ・セッション」グラフに表示されている「取得されていません」データは、現在取得されていないデータベース・アクティビティ(データベース・セッション)を表します。
「比較」セクションの「合計」列の値は、データベースの取得されたアクティビティと取得されていないアクティビティのすべてを表します。取得の作成ウィザードの「オプション」の手順で指定したワークロード・フィルタによって決められているフィルタリングは、主に、あるアクティビティが取得または取得されていない理由を意味します。また、バックグラウンド・アクティビティ、データベース・スケジューラ・ジョブ、およびリプレイ不可能なコールは取得されません。
右上隅のリフレッシュ・アイコンをクリックして、実行中に取得を更新できます。
データベース・リプレイ・ページに戻るには、「データベース・リプレイ」ブレッドクラムをクリックします。
この項では、Enterprise Managerを使用したアクティブなワークロードの取得の停止方法について説明します。
アクティブなワークロードの取得を停止するには、次の手順を実行します。
Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」、「データベース・リプレイ」の順に選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。
「データベース・リプレイ」ページが表示されます。
ステータスが「ドラフト」の取得のデータベース・リプレイ・ページの「取得済ワークロード」タブで、停止する取得の「取得」表の名前をクリックします。
取得サマリー・ページが表示されます。
「取得の停止」ボタンをクリックします。
ボタン・ラベルが「取得の停止中」に変更されます。処理が完了すると、「ステータス」が「停止中」に変更されます。
この項では、Enterprise Managerを使用したワークロード取得全体の管理方法について説明します。
完了したワークロードの取得を表示するには、次の手順を実行します。
Enterprise Manager Cloud Controlコンソールの「エンタープライズ」メニューで、「クオリティ管理」、「データベース・リプレイ」の順に選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。
「データベース・リプレイ」ページが表示されます。
データベース・リプレイ・ページにある「取得済ワークロード」タブで、ステータスが「完了」の取得の名前をクリックします。
「平均アクティブ・セッション」グラフに、取得中に記録された動的データではなく、取得期間の集計データが表示されることを除き、データベース・リプレイ・ページの「サマリー」タブには、進行中の取得に関するコンテンツが表示されます。
「平均アクティブ・セッション」チャートには、取得されたセッション・アクティビティが取得されていないセッション・アクティビティ(バックグラウンド・アクティビティやフィルタ処理されたセッションなど)と比較されてグラフィカルに表示されます。このチャートは、取得期間に使用可能なアクティブ・セッション履歴(ASH)データが存在する場合にのみ表示されます。
「比較」の下には、ワークロード取得の様々な統計が表示されます。
「取得」列
取得されたセッション・アクティビティの統計が表示されます。
「合計」列
合計セッション・アクティビティの統計が表示されます。
「合計の割合」列
ワークロードで取得された合計セッション・アクティビティの割合が表示されます。
データベース・リプレイ・ページに戻るには、「データベース・リプレイ」ブレッドクラムをクリックします。
PL/SQLインタフェースまたは異なるEnterprise Managerインスタンスを通して取得したワークロードをEnterprise Managerにインポートして、ワークロードが元々Enterprise Manager内で作成されたように管理することができます。ワークロードを取得中にしたり、取得を完了して、ワークロードをファイル・システムに格納できます。また、Enterprise Manager内で作成されたワークロードの場合と同様に、ワークロードを事前処理およびリプレイすることもできます。
この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。
Enterprise Manager外部にデータベース・ワークロードをインポートするには、次の手順に従います。
「データベース・リプレイ」ページの「取得済ワークロード」タブをクリックし、ツールバーの「インポート」をクリックします。
「ワークロードのインポート: ソース」ページが表示されます。
次の3つの選択肢のいずれかを選択して、取得されたワークロードをインポートし、「次へ」をクリックします。
取得が完了したワークロードをファイル・システムのディレクトリからインポート
このオプションは、通常APIを使用して作成されたワークロードに適用され、後続の処理用にEnterprise Managerにインポートします。この場合、Enterprise Managerは取得データベースを管理していない可能性があります。
取得が完了したワークロードをデータベース・ターゲットからインポート
この場合、Enterprise Managerは取得データベースをすでに管理している可能性があります。取得は、このデータベースで実行された可能性があるか、前述のオプションの場合と同様にロードされた可能性があります。
データベース・ターゲットで実行中の取得にアタッチ
このオプションは前述のオプションと似ていますが、すでに完了している取得ではなく、実行中の取得である点が異なります。
「ワークロードのインポート: データベース」ページが表示されます。
「データベース・ターゲット」フィールドの横の検索アイコンをクリックして、表示されるポップアップからデータベースを選択します。
注意: ワークロードをロードするデータベースのターゲット・バージョンは、ワークロードの取得に使用したバージョン以上である必要があります。たとえば、Oracle Database 12xを使用して取得した場合、取得の読取りで選択するデータベースはバージョン12x以上である必要があります。 |
データベースおよびホスト資格証明が要求されます。
前述の手順で、取得が完了したワークロードをファイル・システムのディレクトリからインポートを選択した場合は、ワークロードの場所も要求されます。
統合リプレイは、少なくとも2つの取得ディレクトリを含む別のディレクトリ構造を持っています。したがって、ワークロード・ディレクトリに統合リプレイが含まれている場合は、インポート操作中にEnterprise Managerが統合リプレイを認識できるように、チェック・ボックスを有効にする必要があります。
前述の手順で必要な入力を行い、「次へ」をクリックします。
「ワークロードのインポート: ワークロード」ページが表示されます。
手順2の選択に従って表示されるボタンに応じて、ワークロードのロードまたはワークロードの検出のいずれかをクリックします。
ワークロードが見つかった場合は、検出されたワークロード表に表示されます。
「次へ」をクリックして、ワークロードをロードするか、ワークロードの1つを選択し、「次へ」をクリックしてワークロードのインポートを継続します。
「ワークロードのインポート: リプレイ」ページが表示されるのは、次の条件の場合のみです。
手順2で、取得が完了したワークロードをファイル・システムのディレクトリからインポートを選択した場合。
1つ以上のリプレイがワークロードに含まれている場合。
オプション: 必要に応じて1つ以上のリプレイを選択し、リプレイ・タスク名を選択して、「次へ」をクリックします。
「ワークロードのインポート: 確認」ページが表示されます。
すべてが目的どおりに表示されたら、「送信」をクリックします。
「データベース・リプレイ」ページには、ジョブが正常に送信されたことを示すメッセージが表示されます。「取得済ワークロード」表で、ロードまたはインポートされたワークロードの「ステータス」列に「進行中」と表示されます。
ヒント: 「確認」ステップで送信した取得済ワークロード名をクリックして、ジョブの進行状況を確認できます。「取得サマリー」ページが表示され、データベース・リプレイ・インポート・ジョブ・リンクをクリックして、ジョブ実行ステップの進行状況を確認できます。 |
長時間をカバーする大きなワークロードを取得した場合は、テストを迅速化するために、ワークロードの特定の部分をリプレイするだけで済みます。データベース・リプレイ・ワークロードのサブセット化機能は、既存の取得済ワークロードの一部を抽出することにより、新しいワークロードを作成できます。
Enterprise Managerには、テスト・システムでリプレイに使用できる既存のワークロードからデータのサブセットを抽出するウィザードが用意されています。抽出された各サブセットは、自身のワークロード上または統合リプレイの他のワークロードでリプレイできる正規のワークロードです。
リプレイを実行するには、ワークロードを事前処理する必要があります。
この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。
ワークロードからサブセットを抽出するには、次の手順に従います。
「データベース・リプレイ」ページの「取得済ワークロード」タブから、サブセットを抽出するワークロードを選択し、「サブセット」をクリックします。
「サブセット・ワークロード: 定義」ページが表示され、ワークロードの「アクティブ・セッション履歴」グラフが表示されます。
ワークロードから抽出するサブセットの開始および終了時間を選択します。
ページの下部にある「サブセット」表の上の「追加」をクリックします。
サブセットの作成ポップアップが表示されます。
スナップショットまたはカレンダ時間のいずれかを選択して、開始および終了時間を指定し、「OK」をクリックします。
注意: すべてのパフォーマンス・データが、選択したカレンダで使用できるとは限らないため、スナップショット時間が推奨される選択肢になります。 |
選択した期間は、グレー表示されたセグメントとして「アクティブ・セッション」グラフに表示されます。
オプション: 前述の手順で選択した場合とは異なる期間で1つ以上の追加のサブセットを定義します。
オプション: 「拡張パラメータ」セクションで、サブセット・ワークロードの終了後に未完了のコールを含めるかどうかを指定します。デフォルトでは、サブセットのワークロードが開始されると、未完了のコールが含まれます。
これらのパラメータでは、定義された境界の外部コールを組み込むことができます。たとえば、トランザクションの境界として、開始および終了時間を指定すると、指定された開始時間より前にトランザクションが開始され、指定された終了時間後も継続される場合があります。
「次へ」をクリックします。
「サブセット・ワークロード: データベース」ページが表示されます。
「データベース・ターゲット」フィールドの横の検索アイコンをクリックして、表示される「検索と選択: ターゲット」ポップアップから、サブセット化用のデータベースを選択します。
データベースおよびホスト資格証明が要求されます。
前述の手順で必要な入力を行い、「次へ」をクリックします。
「サブセット・ワークロード: 場所」ページが表示されます。
ソース・ホストおよびステージング・データベース・ホストが同じ場合は、場所が事前入力されるので、ソース・ワークロード・ファイルの場所を指定する必要はありません。
ソース・ホストおよびステージング・データベースが同じでない場合は、次の手順を実行します。
「ホスト」フィールドに表示されるホスト名からワークロード・ファイルにアクセスするかどうか、また、ソース・ホストから、表示される「宛先ホスト」にファイルをコピーするかどうかを選択します。
直接アクセスは、ワークロードのサブセット化に使用するデータベースが、指定したファイル・システムの場所を使用して元のワークロードに直接アクセスできることを意味します。これは、通常は元のワークロードがネットワーク共有された場所に格納されている場合です。
アクセス権のコピーは、2つのホストが共有ネットワーク・パスにないことを意味します。Enterprise Managerが元のワークロードを現在の場所から、サブセット・データベース・ホスト上の指定された場所にコピーできるように、ソース・ホスト資格証明を指定する必要があります。
前述の選択内容に応じて、ワークロード・ファイルを含むディレクトリの場所を指定するか、宛先ホストの場所を指定します。
「サブセット」フィールドで、各サブセットの記憶域の場所を指定し、「次へ」をクリックします。
「サブセット・ワークロード: スケジュール」ページが表示されます。
サブセット・ジョブを開始する時間を指定し、「次へ」をクリックします。
「サブセット・ワークロード: 確認」ページが表示されます。
すべてが目的どおりに表示されたら、「送信」をクリックします。
「データベース・リプレイ」ページには、ジョブが正常に送信されたことを示すメッセージが表示されます。「リプレイ・タスク」表のサブセットの「ステータス」列に、「進行中」と表示されます。
ヒント: 「確認」ステップで送信したサブセット名をクリックして、ジョブの進行状況を確認できます。「取得サマリー」ページが表示され、データベース・リプレイ・サブセット・ジョブリンクをクリックして、ジョブ実行ステップの進行状況を確認できます。 |
2つの目的で、コピー機能を使用できます。
ソースから別のホストおよび場所に取得ファイルを複製する。
新しいホストおよび場所に取得ファイルを移動し、元の場所からソース・ファイルを削除する。
この機能は、Cloud Control Databaseプラグイン12.1.0.5以降のリリースで利用できます。
新しい場所にワークロードをコピーするには、次の手順に従います。
「データベース・リプレイ」ページの「取得済ワークロード」タブで、新しい場所にコピーするワークロードを選択し、「コピー」をクリックします。
「ワークロードのコピー」ページが表示され、選択したワークロード・ディレクトリの現在のソースの場所が表示されます。
必要に応じて、記憶域ホストの資格証明を指定または変更します。現在の記憶域ホストで定義済の資格証明が自動的に取得されます。
「コピー後」ラジオ・ボタンを有効のままにします(ソースの場所の元のワークロードが保持されます)。
ワークロード・ディレクトリの新しい場所の「記憶域ホスト」を選択します。
新しい記憶域ホストの資格証明を指定します。
ワークロードの新しい「宛先ロケーション」のディレクトリを選択します。
ジョブをスケジュールし、「発行」をクリックします。
「データベース・リプレイ」ページが再度表示され、ジョブが発行され、記憶域の場所が正常に更新されたことを示すメッセージが表示されます。
ヒント: 「ジョブ・アクティビティ」ページに移動して、送信メッセージに表示されたジョブ名を検索し、そのリンクをクリックして「ジョブ実行」ページにアクセスすることで、ジョブの進行状況をチェックできます。 |
この項では、APIを使用してデータベース・ワークロードを取得する方法について説明します。また、「Enterprise Managerを使用したデータベース・ワークロードの取得」で説明されているように、Oracle Enterprise Managerを使用してデータベース・ワークロードを取得できます。
DBMS_WORKLOAD_CAPTURE
パッケージを使用してデータベース・ワークロードを取得する手順は、次のとおりです。
関連項目:
|
この項では、ワークロード取得フィルタを追加および削除する方法について説明します。ワークロード取得に対するワークロード・フィルタの使用については、「ワークロード取得時のフィルタの使用」を参照してください。
ワークロードの取得にフィルタを追加するには、次のように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
プロシージャは、完了した取得に属するフィルタは削除せず、まだ開始されていない取得のフィルタのみに適用されます。
「データベース・ワークロードの取得の前提条件」で説明されているように、ワークロードの取得を開始する前に、データベース・ワークロードを取得するための前提条件を満たしておく必要があります。また、「ワークロードの取得のオプション」で説明されているように、ワークロードの取得のオプションを確認する必要があります。
取得されたワークロードのリプレイを開始する前にリプレイ・システムを開始ポイントにリストアできるように、適切に定義されたワークロードの開始ポイントを取得することが重要です。ワークロードの取得の開始ポイントを適切に定義するには、ワークロードの取得が開始されたときにアクティブなユーザー・セッションが存在しないことが理想的です。アクティブ・セッションでトランザクションが進行中の場合、それらのトランザクションはその後のデータベース・リプレイで適切にリプレイされませんが、これは、トランザクションのうち、ワークロードの取得を開始した後に実行されたコールの部分しかリプレイされないためです。この問題を避けるには、ワークロードの取得を開始する前にSTARTUP RESTRICT
を使用してデータベースを制限モードで再起動します。ワークロードの取得が開始されると、データベースは自動的に無制限モードに切り替わり、ワークロードの取得中は通常の操作を続行できます。ワークロード取得前のデータベースの再起動方法の詳細は、「データベースの再起動」を参照してください。
ワークロードの取得を開始するには、次のようにSTART_CAPTURE
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'dec10_peak', dir => 'dec10', duration => 600, capture_sts => TRUE, sts_cap_interval => 300); 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です。このパラメータの値をデフォルト値未満に設定すると、一部のワークロードで追加オーバーヘッドが生じる可能性があるため、そのような設定は推奨されません。
ワークロードの取得を停止するには、次のようにFINISH_CAPTURE
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE (); END; /
この例では、FINISH_CAPTURE
プロシージャは、ワークロードの取得を終了し、データベースを通常の状態に戻します。
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
を使用します。このプロシージャは、対応するワークロードの取得が現在のデータベースで実行され、元の取得期間に対応するAWRスナップショットがまだ使用可能である場合にのみ、機能します。
この項では、ワークロードの取得を監視するために表示できるビューの概要を示します。また、「Enterprise Managerを使用したワークロードの取得の監視」で説明されているように、Oracle Enterprise Managerを使用してワークロードの取得を監視できます。
これらのビューにアクセスするには、次のDBA権限が必要です。
DBA_WORKLOAD_CAPTURES
ビュー: 現在のデータベースで取得されたワークロードの取得をすべて示します。
DBA_WORKLOAD_FILTERS
ビュー: 現在のデータベースに定義されたワークロードの取得に対して使用されるワークロード・フィルタをすべて示します。
関連項目:
|