6 データベース統計の収集

この章では、Oracle Databaseのデータベース統計を収集する方法を説明しており、内容は次のとおりです。

6.1 データベース統計の収集について

Oracle Databaseは、すべてのレベル(セッション・レベルを除く)でほとんどの統計の累積値とデルタ値を、自動ワークロード・リポジトリ(AWR)に自動的に存続させます。このプロセスは通常の期間に繰り返され、結果はAWRスナップショットに取得されます。スナップショットで取得したデルタ値は、時間ごとの各統計に対する変更を示します。

統計的ベースラインは、通常、システムが最適なレベルで正常に動作している期間中に取得された統計的割合の集合です。ベースラインで取得された統計を、パフォーマンスが低下している期間に取得された統計と比較してパフォーマンスの問題を診断するには、統計的ベースラインを使用します。これにより、大幅に値が大きくなっていて問題の原因だと思われる特定の統計を識別できます。AWRは、AWRスナップショットのペアまたは範囲をベースラインとして指定して保存できるようにすることで、ベースライン・データの取得をサポートします。

一般的にメトリックは、累積的な統計における変化の割合です。この割合は、時間、トランザクション、データベース・コールなど、様々な単位に対して測定できます。たとえば、1秒当たりのデータベース・コールの数はメトリックです。メトリック値は、一部のV$ビューに表示され、このビューに表示される値は、きわめて短い時間間隔(通常は60秒)での平均値です。最新のメトリック値の履歴は、V$ビューを介して使用でき、データの一部はAWRスナップショットでも存続されます。

次の各項では、より効果的なデータベース統計の収集を可能にするOracle Databaseの様々な機能について説明します。

注意:

  • プラガブル・データベース(PDB)とともにAWR機能を使用している場合には、データ可視性および権限の要件が異なります。AWR機能を含む管理性の機能がマルチテナント・コンテナ・データベース(CDB)で機能する仕組みの詳細は、『Oracle Database管理者ガイド』を参照してください。

  • この章に記載されているAWR機能を使用するには、Oracle Diagnostic Packのライセンスが必要です。

6.1.1 自動ワークロード・リポジトリ

AWRは、問題の検出および自己チューニングを目的として、パフォーマンス統計を収集、処理およびメンテナンスします。この収集されたデータは、メモリーとデータベースの両方に格納され、レポートおよびビューに表示されます。

AWRにより収集され処理される統計は、次のとおりです。

  • データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。

  • アクティビティの時間使用に基づく時間モデル統計。V$SYS_TIME_MODELおよびV$SESS_TIME_MODELビューに表示されます。

  • V$SYSSTATおよびV$SESSTATビューで収集されるシステム統計とセッション統計の一部。

  • システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づきます。

  • アクティブ・セッション履歴(ASH)統計は、最新のセッション・アクティビティの履歴を表します

関連項目:

6.1.2 スナップショット

スナップショットは、自動データベース診断モニター(ADDM)によりパフォーマンスの比較に使用される、特定の期間の履歴データのセットです。デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はAWRに8日間保存されます。スナップショットの作成や、スナップショット保存期間の変更を手動で行うこともできますが、通常は必要ありません。

AWRは、スナップショット間の違いを比較し、システム負荷への影響に基づいて収集するSQL文を判別します。これにより、期間中に収集する必要のあるSQL文の数が減少します。スナップショットが作成されると、スナップショットに取得されたデータがADDMにより分析され、パフォーマンス分析が実行されます。

関連項目:

スナップショットの管理の詳細は、「スナップショットの管理」を参照してください

6.1.3 ベースライン

ベースラインは、パフォーマンス上の問題が発生したときに、他のスナップショットと比較するために保持されている特定期間のスナップショットのセットです。ベースラインに含まれるスナップショットはAWRの自動消去プロセスから除外され、無期限に保持されます。

使用可能なベースラインには、次の複数のタイプがあります。

6.1.3.1 固定ベースライン

固定ベースラインは、過去の指定時における、固定した連続的な期間に対応します。ベースラインは最適なレベルでのシステム動作を表す必要があるため、固定ベースラインを作成する前に、ベースラインとして選択する期間を慎重に検討してください。将来的に、このベースラインを、パフォーマンスの低下期間中に取得された別のベースラインまたはスナップショットと比較して、時間経過に沿ってパフォーマンスの低下を分析できます。

関連項目:

固定ベースラインの管理の詳細は、「ベースラインの管理」を参照してください

6.1.3.2 変動ウィンドウ・ベースライン

変動ウィンドウ・ベースラインは、AWR保存期間内に存在するすべてのAWRデータに対応します。これは、AWRの全保存期間におけるAWRデータを使用してメトリックしきい値を計算できるため、適応しきい値を使用する際に役立ちます。

Oracle Databaseでは、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値を使用する予定の場合は、しきい値を正確に計算するため、より長い変動ウィンドウ(30日など)を使用することを検討してください。変動ウィンドウ・ベースラインのサイズを変更するには、変動ウィンドウの日数を、AWR保存期間の日数以下の値に変更します。したがって、変動ウィンドウのサイズを拡張するには、先にAWR保存期間を適切に拡張しておく必要があります。

関連項目:

変動ウィンドウ・ベースラインのサイズ変更の詳細は、「デフォルトの変動ウィンドウ・ベースラインのサイズ変更」を参照してください

6.1.3.3 ベースライン・テンプレート

ベースライン・テンプレートを使用すると、将来の連続的な期間におけるベースラインを作成できます。ベースライン・テンプレートには、次の2つのタイプがあります。

関連項目:

ベースライン・テンプレートの管理の詳細は、「ベースライン・テンプレートの管理」を参照してください

6.1.3.3.1 単一ベースライン・テンプレート

単一ベースライン・テンプレートを使用すると、将来の単一の連続的な期間におけるベースラインを作成できます。これは、将来に取得する期間が前もってわかっている場合に便利です。たとえば、次の週末にスケジュールされているシステム・テストの最中にAWRデータを取得することが可能です。この場合、単一ベースライン・テンプレートを作成することで、テストが実行されたときに自動的にその期間を取得できます。

6.1.3.3.2 繰返しベースライン・テンプレート

繰返しベースライン・テンプレートを使用すると、時間スケジュールの繰返しに基づいてベースラインを作成および削除できます。このテンプレートは、Oracle Databaseにより継続して連続的な期間を自動的に取得する場合に便利です。たとえば、1か月間にわたり毎週月曜日の朝にAWRデータを取得する必要があるとします。この場合、繰返しベースライン・テンプレートを作成することで、毎週月曜日という繰返しスケジュールに基づいてベースラインを自動的に作成し、1か月といった指定の期限の経過後に古いベースラインを自動的に削除できます。

6.1.4 領域使用量

AWRによって使用される領域は、次のように複数の要因によって決まります。

  • 任意の時点におけるデータベースのアクティブ・セッション数

  • スナップショット間隔

    スナップショット間隔により、スナップショットの収集頻度が決定されます。スナップショット間隔が短いほど頻度が高くなり、AWRにより収集されるデータ量が増大します。

  • 履歴データの保存期間

    保存期間により、このデータが消去前に保持されている期間が決定されます。保存期間が長いほど、AWRによって消費される領域が増加します。

デフォルトでは、Oracle Databaseにより、1時間に1回スナップショットが取得され、データベースに8日間保持されます。これらのデフォルト設定では、同時アクティブ・セッション数が平均10の標準的なシステムの場合、AWRデータ用に約200から300MBの領域が必要になる可能性があります。

AWRの領域消費量を減らすには、スナップショット間隔を長くして保存期間を短縮します。保存期間を短縮する場合は、Oracle Databaseの複数の自己管理機能が正常に機能するためにAWRデータに依存することに注意してください。十分なデータがないと、次のようなコンポーネントと機能の妥当性および正確さに影響する可能性があります。

  • 自動データベース診断モニター(ADDM)

  • SQLチューニング・アドバイザ

  • UNDOアドバイザ

  • セグメント・アドバイザ

可能な場合は、少なくとも1つのワークロード・サイクル全体で収集できるように、AWR保存期間を十分な長さに設定することをお薦めします。システムのワークロード・サイクルが平日にOLTPワークロード、週末にバッチ・ジョブというような週単位になっている場合、デフォルトのAWR保存期間である8日を変更する必要はありません。ただし、月末の帳簿締め処理時にシステムの月次ピーク負荷が発生する場合は、保存期間を1か月に設定する操作が必要になることがあります。

例外的な状況では、スナップショット間隔を0に設定して、自動スナップショット収集を無効にすることができます。この場合、ワークロードおよび統計データの自動収集は停止され、Oracle Databaseの自己管理機能の大部分が動作しなくなります。また、スナップショットを手動で作成することもできません。このため、自動スナップショット収集を無効にしないことをお薦めします。

関連項目:

スナップショット間隔および保存期間のデフォルト値を変更する方法の詳細は、「スナップショット設定の変更」を参照してください

6.1.5 適応しきい値

適応しきい値を使用すると、管理オーバーヘッドを最小限に抑えながら、パフォーマンスの問題を監視および検出できます。適応しきい値は、変動ウィンドウ・ベースラインで取得されるメトリック値から導出された統計を使用して、システム・メトリックの警告しきい値とクリティカル・アラートしきい値を自動的に設定します。これらのしきい値の統計は週に1回再計算され、時間の経過とともに変化するシステムのパフォーマンスに応じて新しいしきい値になります。また、適応しきい値では、定期的なワークロードのパターンに基づいて1日または週の異なる時間帯の様々なしきい値を計算できます。

たとえば、多くのデータベースでは、日中のオンライン・トランザクション処理(OLTP)と夜間のバッチ処理をサポートしています。トランザクションごとのレスポンス時間のパフォーマンス・メトリックは、日中のOLTPパフォーマンスの低下の検出に役立ちます。ただし、有用なOLTPのしきい値は、長時間実行トランザクションが一般的なバッチ・ワークロードに対しては、通常は低すぎます。そのため、OLTPに適切なしきい値では、バッチ処理時に不適切なパフォーマンス・アラートが頻繁にトリガーされることがあります。適応しきい値は、このようなワークロードのパターンを検出し、日中や夜間用の様々なしきい値を自動的に設定できます。

適応しきい値には、次の2種類があります。

6.1.5.1 最大パーセントのしきい値

最大パーセントのしきい値は、変動ウィンドウ・ベースライン内のデータに関して観察された最大値の割合の倍数として計算されます。

最大パーセントのしきい値は、システムをピーク・ワークロードに対応するようサイジングし、現在のワークロード・ボリュームが以前の高い値に近づいているか、その値を超えているときにアラートを生成する必要がある場合に特に役立ちます。未知だが明確な制限値を持つメトリックは、このような設定の第一候補になります。たとえば、1秒当たりの生成REDOのメトリックは、通常、最大パーセントのしきい値に対する適切な候補になります。

6.1.5.2 重大レベルのしきい値

重大レベルのしきい値は、変動ウィンドウ・ベースライン内のデータに基づくしきい値を超える値が観察されることがどの程度異常かを表す統計の百分位数に設定されます。

重大レベルのしきい値は、システムが正常に機能しているときに統計的に安定した動作を示すメトリックでは非常に役立ちますが、パフォーマンスが低下している場合は大きく変化する可能性があります。たとえば、トランザクションごとのレスポンス時間のメトリックは、適切に調整されたOLTPシステムの場合は安定していますが、パフォーマンスの問題が発生する場合は広い範囲で変動する可能性があります。重大レベルのしきい値は、異常なメトリックの値と異常なシステムのパフォーマンスの両方が発生する場合にアラートを生成することを意図しています。

重大レベルのしきい値は、次のいずれかのレベルに設定できます。

  • 高(.95)

    100の観測のうち5つのみがこの値を超えると予測されます。

  • 非常に高い(.99)

    100の観測のうち1つのみがこの値を超えると予測されます。

  • 重大(.999)

    1,000の観測のうち1つのみがこの値を超えると予測されます。

  • 極度(.9999)

    10,000の観測のうち1つのみがこの値を超えると予測されます。

重大レベルのしきい値を指定した場合、Oracle Databaseでは内部計算を実行してしきい値を設定します。ベースラインのデータを使用してより重大度のレベルが高いしきい値を設定できず、重大レベルのしきい値が設定されない場合があります。

重大(.999)または極度(.9999)の重大レベルのしきい値を指定し、予測どおりにアラートを受信しない場合、このしきい値を非常に高い(.99)や高(.95)などの低い値に設定できます。または、最大パーセントのしきい値をかわりに使用することを検討してください。しきい値を変更して、受信するアラートが多すぎることがわかった場合は、アラートがトリガーされる状況の発生回数を増やしてください。

注意:

ベースライン・メトリックを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。ベースライン・メトリックの適応しきい値を作成するには、Oracle Database 2日でパフォーマンス・チューニング・ガイドの説明に従ってCloud Controlを使用します。

関連項目:

6.2 自動ワークロード・リポジトリの管理

この項では、Oracle DatabaseのAWR機能の管理方法を説明しており、内容は次のとおりです。

関連項目:

AWRの説明は、「自動ワークロード・リポジトリ」を参照してください

6.2.1 自動ワークロード・リポジトリの有効化

AWRを使用したデータベース統計の収集はデフォルトで有効になっており、STATISTICS_LEVEL初期化パラメータで制御されます。

AWRによる統計収集を有効化する手順は次のとおりです。

  • STATISTICS_LEVELパラメータをTYPICALまたはALLに設定します。

    このパラメータのデフォルト設定はTYPICALです。

STATISTICS_LEVELBASICに設定すると、AWRを含む多くのOracle Databaseの機能が無効になるため、この設定はお薦めしません。STATISTICS_LEVELBASICに設定しても、DBMS_WORKLOAD_REPOSITORYパッケージを使用すればAWR統計を手動で取得できます。ただし、セグメント統計やメモリー・アドバイザ情報など、多くのシステム統計のインメモリー収集が無効になるため、これらのスナップショットで取得された統計は不完全になる可能性があります。

関連項目:

STATISTICS_LEVEL初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。

6.2.2スナップショットの管理

デフォルトでは、1時間ごとにスナップショットが生成され、その統計はワークロード・リポジトリに8日間保存されます。必要な場合には、スナップショットを手動で作成または削除し、スナップショット設定を変更できます。

この項では、スナップショットの管理方法を説明しており、内容は次のとおりです。

関連項目:

スナップショットの詳細は、「スナップショット」を参照してください

6.2.2.1 スナップショットを管理するためのユーザー・インタフェース

スナップショットを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してスナップショットを管理してください。

Cloud Controlを使用できない場合、スナップショットは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORYパッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORYプロシージャの起動に必要です。

関連項目:

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

6.2.2.2 スナップショットの作成

デフォルトでは、Oracle Databaseにより、1時間ごとにスナップショットが自動的に生成されます。ただし、自動生成されるスナップショットとは異なる時点の統計を取得するために、手動でスナップショットを作成することが必要な場合があります。

コマンドライン・インタフェースを使用したスナップショットの作成

手動でスナップショットを作成するには、CREATE_SNAPSHOTプロシージャを使用します。次の例に、CREATE_SNAPSHOTプロシージャ・コールを示します。

BEGIN
  DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
END;
/

この例では、スナップショットはローカル・データベース・インスタンスにただちに作成されます。既存のスナップショットの情報を表示するには、DBA_HIST_SNAPSHOTビューを使用します。

注意:

CREATE_SNAPSHOTプロシージャのflush_levelパラメータの値にTYPICALまたはALLを指定できます。フラッシュ・レベルのデフォルト値はTYPICALです。

フラッシュ・レベルは、取得するAWR統計の範囲と深度を示します。すべてのAWR統計を取得する場合は、フラッシュ・レベルをALLに設定します。パフォーマンス上の理由で、SQL統計、セグメント統計、ファイルおよび表領域統計などの一部のAWR統計をスキップする場合は、フラッシュ・レベルをTYPICALに設定します。

関連項目:

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

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

6.2.2.3 スナップショットの削除

デフォルトでは、Oracle Databaseにより、8日を超えてAWRに格納されているスナップショットが自動的に消去されます。ただし、領域を解放するために、一定範囲のスナップショットを手動で削除することが必要な場合があります。

コマンドライン・インタフェースを使用したスナップショットの削除

一定範囲のスナップショットを手動で削除するには、DROP_SNAPSHOT_RANGEプロシージャを使用します。次の例に、DROP_SNAPSHOT_RANGEプロシージャ・コールを示します。

BEGIN
  DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id  => 22, 
                                                high_snap_id => 32, 
                                                dbid         => 3310949047);
END;
/

この例では、スナップショットIDが22から32の範囲のスナップショットが、データベース識別子が3310949047のデータベース・インスタンスからただちに削除されます。このスナップショット範囲から取得された任意のASHデータも消去されます。

ヒント:

削除するスナップショットを決定するには、DBA_HIST_SNAPSHOTビューを使用して、既存のスナップショットを確認します。

関連項目:

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

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

6.2.2.4 スナップショット設定の変更

指定されたデータベースIDのスナップショット生成に関して、その間隔、保存および取得済上位SQLを調整できますが、この調整によって、Oracle Database診断ツールの精度に影響を与える可能性があります。

コマンドライン・インタフェースを使用したスナップショット設定の変更

MODIFY_SNAPSHOT_SETTINGSプロシージャを使用すると、次に示すように、様々なスナップショット設定を変更できます。

  • INTERVAL設定は、データベースがスナップショットを自動的に生成する頻度に影響します。

  • RETENTION設定は、データベースがスナップショットをAWRに保存する期間に影響します。

  • TOPNSQL設定は、SQL基準(経過時間、CPU時間、解析コール、共有可能メモリー、バージョン・カウント)ごとにフラッシュする上位SQLの数に影響します。

    この設定の値は、統計レベルまたはフラッシュ・レベルによる影響を受けず、AWR SQL収集のシステム・デフォルト動作より優先されます。この設定値をMAXIMUMに設定して、共有SQL領域内の完全なSQLセットを取得することは可能ですが、この値(または非常に大きい数値)に設定すると、収集および保存するデータが増加するため、領域およびパフォーマンスの問題が生じる可能性があります。

設定を変更するには、次の例に示すように、MODIFY_SNAPSHOT_SETTINGSプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, 
                                                     interval  => 30, 
                                                     topnsql   => 100, 
                                                     dbid      => 3310949047);
END;
/

この例では、データベース識別子が3310949047のデータベースのスナップショット設定が、次のように変更されます。

  • 保存期間は43200分(30日)に指定されます。

  • 各スナップショットの間の間隔は30分に指定されます。

  • SQL基準ごとにフラッシュする上位SQLの数は100に指定されます。

データベースの現在の設定を確認するには、次の例に示すように、DBA_HIST_WR_CONTROLビューを使用します。

SQL> select snap_interval, retention from DBA_HIST_WR_CONTROL; 

SNAP_INTERVAL               RETENTION 
--------------------------------------- 
+00000 01:00:00.0        +00008 00:00:00.0 

snap_intervalおよびretentionの値が、次の形式で表示されます。

+[days] [hours]:[minutes]:[seconds].[nanoseconds] 

関連項目:

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

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

6.2.3 ベースラインの管理

Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。必要な場合には、ベースラインを手動で作成、削除または名前変更し、ベースラインしきい値の設定を表示できます。また、変動ウィンドウ・ベースラインのウィンドウ・サイズを手動で変更できます。

この項では、ベースラインの管理方法を説明しており、内容は次のとおりです。

関連項目:

ベースラインの詳細は、「ベースライン」を参照してください

6.2.3.1 ベースラインを管理するためのユーザー・インタフェース

ベースラインを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してベースラインを管理してください。

Cloud Controlを使用できない場合、ベースラインは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORYパッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORYプロシージャの起動に必要です。

関連項目:

6.2.3.2 ベースラインの作成

Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。ただし、パフォーマンスが低下している期間に取得された別のベースラインまたはスナップショットと比較できるように、最適なレベルで運用されているシステムを表す固定ベースラインを手動で作成することが必要な場合があります。

コマンドライン・インタフェースを使用してベースラインを作成するには、次の例に示すように、CREATE_BASELINEプロシージャを使用します。

BEGIN
    DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270, 
                                              end_snap_id   => 280, 
                                              baseline_name => 'peak baseline', 
                                              dbid          => 3310949047, 
                                              expiration    => 30);
END;
/

この例では、データベース識別子が3310949047のデータベース・インスタンスに、次の設定でベースラインが作成されます。

  • 開始スナップショットの順序番号は270です。

  • 終了スナップショットの順序番号は280です。

  • ベースライン名はpeak baselineです。

  • ベースラインの有効期限は30日です。

ベースラインが作成されると、Oracle Databaseにより、一意のIDが新規ベースラインに自動的に割り当てられます。

ヒント:

ベースラインに含めるスナップショットの範囲を決定するには、DBA_HIST_SNAPSHOTビューを使用して、既存のスナップショットを確認します。

関連項目:

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

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

6.2.3.3 ベースラインの削除

ディスク領域を節約するには、使用されなくなったベースラインを定期的に削除することを検討してください。ベースラインに関連付けられたスナップショットは、ベースラインが明示的に削除されるか、ベースラインが期限切れになるまで無期限に保持されます。

コマンドライン・インタフェースを使用してベースラインを削除するには、次の例に示すように、DROP_BASELINEプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',
                                          cascade       => FALSE, 
                                          dbid          => 3310949047);
END;
/

この例では、ベースラインpeak baselineが、データベース識別子が3310949047のデータベース・インスタンスから削除され、関連付けられたスナップショットが保存されます。

ヒント:

削除するベースラインを決定するには、DBA_HIST_BASELINEビューを使用して、既存のベースラインを確認します。

ヒント:

関連付けられているスナップショットをベースラインとともに削除するには、cascadeパラメータをTRUEに設定します。

関連項目:

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

6.2.3.4 ベースラインの名前変更

コマンドライン・インタフェースを使用してベースラインの名前を変更するには、RENAME_BASELINEプロシージャを使用します。次の例に、RENAME_BASELINEプロシージャ・コールを示します。

BEGIN
    DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name => 'peak baseline', 
                                              new_baseline_name => 'peak mondays', 
                                              dbid              => 3310949047);
END;
/

この例では、データベース識別子が3310949047のデータベース・インスタンスに存在するベースラインの名前が、peak baselineからpeak mondaysに変更されます。

関連項目:

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

6.2.3.5 ベースライン・メトリックの表示

適応しきい値とともに使用する場合、ベースラインには、データベースでメトリックしきい値を計算する際に使用できるAWRデータが含まれます。

コマンドライン・インタフェースを使用して、ベースライン期間におけるメトリック値のサマリー統計を表示するには、SELECT_BASELINE_METRICSファンクションを使用します。

DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRICS (baseline_name IN VARCHAR2,
                                                  dbid          IN NUMBER DEFAULT NULL,
                                                  instance_num  IN NUMBER DEFAULT NULL)
   RETURN awr_baseline_metric_type_table PIPELINED;

関連項目:

  • ベースライン・メトリックしきい値の詳細は、「適応しきい値」を参照してください

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

6.2.3.6 デフォルトの変動ウィンドウ・ベースラインのサイズ変更

Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値のしきい値をより正確に計算するためにサイズを大きくするなど、特定の状況では、デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズを変更することが必要な場合があります。

コマンドライン・インタフェースを使用して、デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズを変更するには、次の例に示すように、MODIFY_BASELINE_WINDOW_SIZEプロシージャを使用します。

BEGIN
    DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (window_size => 30, 
                                                          dbid        => 3310949047);
END;
/

この例では、データベース識別子が3310949047のデータベース・インスタンスのデフォルトの変動ウィンドウ・ベースラインが30日にサイズ変更されます。

注意:

ウィンドウ・サイズは、AWR保存設定の値以下の値に設定する必要があります。現在のAWR保存期間を超えるウィンドウ・サイズを設定するには、スナップショット設定の変更の手順に従ってあらかじめretentionパラメータの値を増やしておく必要があります。

関連項目:

  • 変動ウィンドウ・ベースラインの詳細は、「変動ウィンドウ・ベースライン」を参照してください

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

6.2.4 ベースライン・テンプレートの管理

ベースライン・テンプレートを使用すると、将来の指定された期間を取得するベースラインを自動的に作成できます。この項では、ベースライン・テンプレートの管理方法を説明しており、内容は次のとおりです。

関連項目:

ベースライン・テンプレートの詳細は、「ベースライン・テンプレート」を参照してください

6.2.4.1 ベースライン・テンプレートを管理するためのユーザー・インタフェース

ベースライン・テンプレートを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してベースライン・テンプレートを管理します。

Cloud Controlを使用できない場合、ベースライン・テンプレートは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORYパッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORYプロシージャの起動に必要です。

関連項目:

Cloud Controlを使用したベースライン・テンプレートの管理については、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください

6.2.4.2 単一ベースライン・テンプレートの作成

単一ベースライン・テンプレートを使用して、将来の単一の固定期間におけるベースラインを作成できます。たとえば、単一ベースライン・テンプレートを作成し、2012年4月2日の午後5:00から午後8:00までに取得されるベースラインを生成できます。

コマンドライン・インタフェースを使用して単一ベースライン・テンプレートを作成するには、次の例に示すように、CREATE_BASELINE_TEMPLATEプロシージャを使用します。

BEGIN
    DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (start_time    => '2012-04-02 17:00:00 PST', 
                                                       end_time      => '2012-04-02 20:00:00 PST', 
                                                       baseline_name => 'baseline_120402', 
                                                       template_name => 'template_120402', 
                                                       expiration    => 30, 
                                                       dbid          => 3310949047);
END;
/

この例では、3310949047というデータベースIDを持つデータベース上に、2012年4月2日の午後5:00から午後8:00までの期間におけるベースラインbaseline_120402を生成するtemplate_120402というベースライン・テンプレートが作成されます。このベースラインは、30日後に期限切れとなります。

関連項目:

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

6.2.4.3 繰返しベースライン・テンプレートの作成

繰返しベースライン・テンプレートを使用すると、将来の一定期間において特定の時間間隔で繰り返されるベースラインを自動的に作成できます。たとえば、繰返しベースライン・テンプレートを作成し、2012年の毎週月曜日の午後5:00から午後8:00までに繰り返されるベースラインを生成できます。

コマンドラインを使用して繰返しベースライン・テンプレートを作成するには、次の例に示すように、CREATE_BASELINE_TEMPLATEプロシージャを使用します。

BEGIN
    DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (day_of_week => 'monday', 
                                                       hour_in_day => 17,
                                                       duration => 3, expiration => 30,
                                                       start_time => '2012-04-02 17:00:00 PST', 
                                                       end_time => '2012-12-31 20:00:00 PST', 
                                                       baseline_name_prefix => 'baseline_2012_mondays_', 
                                                       template_name => 'template_2012_mondays',
                                                       dbid => 3310949047);
END;
/

この例では、3310949047というデータベースIDを持つデータベース上に、2012年4月2日の午後5:00から2012年12月31日の午後8:00までの期間において毎週月曜日の午後5:00から午後8:00までベースラインを生成するtemplate_2012_mondaysというベースライン・テンプレートが作成されます。各ベースラインは、baseline_2012_mondays_という接頭辞付きの名前で作成され、30日後に期限切れとなります。

関連項目:

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

6.2.4.4 ベースライン・テンプレートの削除

すでに使用されていないベースライン・テンプレートは、ディスク領域を節約するために定期的に削除できます。

コマンドラインを使用してベースライン・テンプレートを削除するには、次の例に示すように、DROP_BASELINE_TEMPLATEプロシージャを使用します。

BEGIN
  DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (template_name => 'template_2012_mondays',
                                                   dbid          => 3310949047);
END;
/

この例では、template_2012_mondaysというベースライン・テンプレートが、データベース識別子が3310949047のデータベース・インスタンスから削除されます。

ヒント:

削除するベースライン・テンプレートを決定するには、DBA_HIST_BASELINE_TEMPLATEビューを使用して、既存のベースライン・テンプレートを確認します

関連項目:

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

6.2.5 自動ワークロード・リポジトリ・データの転送

Oracle Databaseでは、システム間でAWRデータを転送できます。この機能は、別のシステムを使用してAWRデータを分析する場合に役立ちます。AWRデータを転送するには、最初にソース・システムのデータベースからデータを抽出し、次にそのデータをターゲット・システムのデータベースにロードします。

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

6.2.5.1 AWRデータの抽出

awrextr.sqlスクリプトにより、一定範囲のスナップショットに対応するAWRデータをデータベースからデータ・ポンプ・エクスポート・ファイルに抽出します。作成後、このダンプ・ファイルを別のデータベースに転送して抽出データをロードできます。awrextr.sqlスクリプトを実行するには、SYSユーザーとしてデータベースに接続する必要があります。

AWRデータを抽出するには、次の手順を実行します。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrextr.sql
    

    AWRスキーマのデータベースのリストが表示されます。

  2. AWRデータを抽出するデータベースを指定します。

    Enter value for db_id: 1377863381
    

    この例では、1377863381というデータベース識別子を持つデータベースが選択されます。

  3. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 2
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。

  4. 最初と最後のスナップショットIDを指定して、AWRデータを抽出するスナップショットの範囲を定義します。

    Enter value for begin_snap: 30
    Enter value for end_snap: 40
    

    この例では、スナップショットIDが30のスナップショットが最初のスナップショットとして選択され、スナップショットIDが40のスナップショットが最後のスナップショットとして選択されます。

    ディレクトリ・オブジェクトのリストが表示されます。

  5. エクスポート・ダンプ・ファイルが保存されているディレクトリを示すディレクトリ・オブジェクトを指定します。

    Enter value for directory_name: DATA_PUMP_DIR
    

    この例では、ディレクトリ・オブジェクトDATA_PUMP_DIRが選択されます。

  6. エクスポート・ダンプ・ファイルの名前の接頭辞を指定します(.dmpという接尾辞が自動的に追加されます)。

    Enter value for file_name: awrdata_30_40
    

    この例では、awrdata_30_40というエクスポート・ダンプ・ファイルが、指定したディレクトリ・オブジェクトに対応するディレクトリに作成されます。

    Dump file set for SYS.SYS_EXPORT_TABLE_01 is:
    C:\ORACLE\PRODUCT\12.2.0.1\DB_1\RDBMS\LOG\AWRDATA_30_40.DMP
    Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 08:58:20
    

    抽出する必要のあるAWRデータの分量によっては、AWR抽出操作の完了までにしばらく時間がかかる場合があります。ダンプ・ファイルが作成されたら、データ・ポンプを使用してそのファイルを別のシステムに転送できます。

関連項目:

データ・ポンプの使用については、『Oracle Databaseユーティリティ』を参照してください。

6.2.5.2 AWRデータのロード

エクスポート・ダンプ・ファイルをターゲット・システムに転送したら、awrload.sqlスクリプトを使用して抽出済のAWRデータをロードします。awrload.sqlスクリプトにより、スナップショット・データをデータ・ポンプ・ファイルからデータベースに転送するためのステージング・スキーマが最初に作成されます。次に、データはステージング・スキーマから適切なAWR表に転送されます。awrload.sqlスクリプトを実行するには、SYSユーザーとしてデータベースに接続する必要があります。

AWRデータをロードするには、次の手順を実行します。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrload.sql
    

    ディレクトリ・オブジェクトのリストが表示されます。

  2. エクスポート・ダンプ・ファイルが含まれるディレクトリを示すディレクトリ・オブジェクトを指定します。

    Enter value for directory_name: DATA_PUMP_DIR
    

    この例では、ディレクトリ・オブジェクトDATA_PUMP_DIRが選択されます。

  3. エクスポート・ダンプ・ファイルの名前の接頭辞を指定します(.dmpという接尾辞が自動的に追加されます)。

    Enter value for file_name: awrdata_30_40
    

    この例では、awrdata_30_40というエクスポート・ダンプ・ファイルが選択されます。

  4. AWRデータをロードするステージング・スキーマの名前を指定します。

    Enter value for schema_name: AWR_STAGE
    

    この例では、AWRデータのロード先としてAWR_STAGEというステージング・スキーマが作成されます。

  5. ステージング・スキーマのデフォルト表領域を指定します。

    Enter value for default_tablespace: SYSAUX
    

    この例では、SYSAUX表領域が選択されます。

  6. ステージング・スキーマの一時表領域を指定します。

    Enter value for temporary_tablespace: TEMP
    

    この例では、TEMP表領域が選択されます。

  7. AWRデータのロード先としてAWR_STAGEというステージング・スキーマが作成されます。AWR_STAGEスキーマにロードされたAWRデータは、その後SYSスキーマのAWR表に転送されます。

    Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Completed 113 CONSTRAINT objects in 11 seconds
    Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Completed 1 REF_CONSTRAINT objects in 1 seconds
    Job "SYS"."SYS_IMPORT_FULL_03" successfully completed at 09:29:30
    ... Dropping AWR_STAGE user
    End of AWR Load
    

    抽出する必要のあるAWRデータの分量によっては、AWR抽出操作の完了までにしばらく時間がかかる場合があります。AWRデータのロード後、ステージング・スキーマは自動的に削除されます。

6.2.6 自動ワークロード・リポジトリ・ビューの使用

通常は、Oracle Enterprise Manager Cloud Control (Cloud Control)またはAWRレポートを使用してAWRデータを表示します。ただし、AWRに格納されている履歴データは、DBA_HISTビューを使用して表示できます。

注意:

マルチテナント環境では、これらのDBA_HISTビューを、AWR_ROOTビューおよびAWR_PDBビューと、それぞれCDBレベルおよびPDBレベルで交換することもできます。たとえば、PDBレベルでのアクティブ・セッション履歴に関するAWRデータの取得にはAWR_PDB_ACTIVE_SESS_HISTORYビューを使用でき、これは、非マルチテナント環境の独立したデータベースでのDBA_HIST_ACTIVE_SESS_HISTORYビューと同等です。PDBレベルのスナップショットが収集されていない場合、AWR_PDBビューにはAWRデータが表示されません。

表6-1 DBA_HISTビュー

DBA_HISTビュー 説明

DBA_HIST_ACTIVE_SESS_HISTORY

最新のシステム・アクティビティに関するインメモリー・アクティブ・セッション履歴の内容の履歴が表示されます。

DBA_HIST_BASELINE

システム上に収集されたベースラインに関する情報(各ベースラインの時間範囲やベースライン・タイプなど)が表示されます。

DBA_HIST_BASELINE_DETAILS

特定のベースラインに関する詳細情報が表示されます。

DBA_HIST_BASELINE_TEMPLATE

ベースラインを生成するためにシステムによって使用されるベースライン・テンプレートに関する情報が表示されます。

DBA_HIST_CON_SYS_TIME_MODEL

OLAPの時刻に関連する統計など、システムの時間モデル統計の履歴が表示されます。

DBA_HIST_CON_SYSMETRIC_HIST

システム・メトリック値に関する履歴情報が表示されます。

DBA_HIST_CON_SYSMETRIC_SUMM

長期(60秒)グループのシステム・メトリックのすべてのメトリック値について、統計サマリーの履歴が表示されます。

DBA_HIST_CON_SYSSTAT

OLAPカーネル統計などのシステム統計の履歴が表示されます。

DBA_HIST_CON_SYSTEM_EVENT

イベントの待機の合計に関する履歴情報が表示されます。

DBA_HIST_DATABASE_INSTANCE

データベース環境に関する情報が表示されます。

DBA_HIST_DB_CACHE_ADVICE

各行に対応するキャッシュ・サイズの物理読取りの数の履歴予測が表示されます。

DBA_HIST_DISPATCHER

スナップショット時の各ディスパッチャ・プロセスの履歴情報が表示されます。

DBA_HIST_DYN_REMASTER_STATS

動的リマスタリング・プロセスに関する統計情報が表示されます。

DBA_HIST_IOSTAT_DETAIL

ファイル・タイプと機能別に集計された履歴I/O統計が表示されます。

DBA_HIST_RSRC_PDB_METRIC

プラガブル・データベース(PDB)のリソース・マネージャ・メトリックに関する、過去1時間の履歴情報が表示されます。

DBA_HIST_RSRC_METRIC

コンシューマ・グループのリソース・マネージャ・メトリックに関する、過去1時間の履歴情報が表示されます。

DBA_HIST_SHARED_SERVER_SUMMARY

共有サーバー・アクティビティ、一般的なキュー、およびディスパッチャ・キューなど、共有サーバーの履歴情報が表示されます。

DBA_HIST_SNAPSHOT

システム内のスナップショットの情報が表示されます。

DBA_HIST_SQL_PLAN

SQL実行計画が表示されます。

DBA_HIST_WR_CONTROL

AWR制御用の設定が表示されます。

DBA_HIST_WR_SETTINGS

AWRの設定とメタデータが表示されます。

関連項目:

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

6.2.7 マルチテナント環境内の自動ワークロード・リポジトリの管理

マルチテナント・データベース・アーキテクチャは、Oracle Database 12cリリース1 (12.1.0.1)で導入されました。マルチテナント・アーキテクチャでは、コンテナ・データベース(CDB)に複数のプラガブル・データベース(PDB)を含めることができます。

Oracle Database 12cリリース1 (12.1.01)では、集中化された自動ワークロード・リポジトリ(AWR)に、マルチテナント環境内のCDBおよびPDBに関連するパフォーマンス・データが格納されます。AWRスナップショットは、CDBレベル(CDBルート)でのみ取得できます。このAWRスナップショットは、データベース・システム全体を対象としています。つまり、マルチテナント環境内のCDBおよびPDBに関する統計情報が含まれます。

Oracle Database 12cリリース2 (12.2)では、CDBルートおよび個別のPDBでAWRデータを格納、表示および管理します。AWRスナップショットは、CDBレベル(CDBルート)およびPDBレベル(個別PDB)で取得できます。

CDB管理者は、マルチテナント・デプロイメント全体の、セキュリティ・プロトコルの強制、リソースの監視、およびプランニングを担当します。CDB管理者は個別のPDBを管理しません。

PDB管理者は、個別のPDBの、アプリケーションの管理、リソースの監視、およびパフォーマンスに関連する問題のトラブルシューティングを担当します。

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

6.2.7.1 マルチテナント環境でのAWRデータのカテゴリ化

マルチテナント環境内のAWRデータは、次のようにカテゴリ化されます。

  • 一般AWRデータ

    このAWRデータにはセキュリティ上の問題がなく、CDB内のすべてのテナントが安全に共有できます。このデータは、すべてのPDBからアクセスでき、CDBとPDBの両方のレベルのスナップショットで取得されます。一般AWRデータの例としては、統計名、ラッチ名およびパラメータ名などがあります。

  • データベース・インスタンス全体のAWRデータ

    このAWRデータは、CDB内のすべてのテナントの集計データです。このデータにはデータベース・インスタンス全体のステータスが含まれており、CDB管理者にのみ有益です。このデータはCDBレベルのスナップショットでのみ取得されます。

  • PDB固有のAWRデータ

    このAWRデータには、CDB内のすべての個別PDBに関する情報が含まれています。個別PDBのデータベース・インスタンス全体に対する貢献度を表すコンテナ固有のデータを示しているため、このデータはCDBとPDBの両方の管理者にとって有益です。このデータは、CDBとPDBの両方のレベルのスナップショットで取得されます。

6.2.7.2 マルチテナント環境でのAWRデータの格納および取得

この項では、マルチテナント環境でのAWRデータのエクスポートおよびインポートと、スナップショットの管理プロセスについて説明します。

スナップショットの管理

Oracle Database 12cリリース2 (12.2)では、CDBレベル(CDBルート)とPDBレベル(個別PDB)でAWRスナップショットを取得できます。CDBレベルのスナップショット・データは、CDBルートのSYSAUX表領域に格納されます。PDBレベルのスナップショット・データは、PDBのSYSAUX表領域に格納されます。

CDBレベルのスナップショットには、ASH、SQL統計およびファイル統計などのPDB統計とCDB統計に関する情報が含まれます。CDB管理者は、AWRデータ保存期間の設定、スナップショット・スケジュールの設定、手動スナップショットの取得、CDBルートのスナップショット・データのパージなどの、CDB固有の管理操作を実行できます。

PDBレベルのスナップショットには、PDB統計と、PDBに関連するパフォーマンス上の問題を診断するために役立つ一部のグローバル統計も含まれます。PDB管理者は、AWRデータ保存期間の設定、スナップショット・スケジュールの設定、手動スナップショットの取得、PDBのスナップショット・データのパージなどの、PDB固有の管理操作を実行できます。

スナップショットの作成やスナップショットのパージなどの、CDBレベルおよびPDBレベルのスナップショット操作は、自動モードまたは手動モードのいずれでも実行できます。

自動スナップショット操作はスケジュールされ、特定の時間に自動的に実行されます。AWR_PDB_AUTOFLUSH_ENABLED初期化パラメータによって、CDB内のすべてのPDBまたはCDB内の個別のPDBに対して、自動スナップショットを有効化または無効化するように指定できます。自動スナップショット操作は、CDBに対してデフォルトで有効化されますが、PDBに対してデフォルトで無効化されます。PDBに対して自動スナップショットを有効化するには、PDB管理者が対象のPDBに接続し、AWR_PDB_AUTOFLUSH_ENABLEDパラメータの値をtrueに設定し、スナップショット生成間隔を0より大きい値に設定する必要があります。

関連項目:

AWR_PDB_AUTOFLUSH_ENABLED初期化パラメータの詳細は、Oracle Databaseリファレンスを参照してください

手動スナップショット操作はユーザーによって明示的に開始されます。自動スナップショットと手動スナップショットは同じAWR情報を取得します。PDBの場合、通常は手動スナップショットを使用することをお薦めします。PDBに対する自動スナップショットは、パフォーマンス上の理由で、選択的にのみ有効化することをお薦めします。

スナップショットを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。Cloud Controlが使用可能でない場合は、DBMS_WORKLOAD_REPOSITORYパッケージに含まれるプロシージャを使用してスナップショットを管理します。DBMS_WORKLOAD_REPOSITORYパッケージに含まれるプロシージャを使用するには、Oracle DBAロールが必要です。CDBルートおよびPDBのスナップショットを作成、削除および変更するSQLプロシージャは、非CDB用のそれらのプロシージャと同じです。これらのSQLプロシージャは、プロシージャ・コールでターゲット・データベースの情報が指定されない場合、デフォルトでローカル・データベース上でその操作を実行します。

注意:

  • PDBレベルのスナップショットには一意のスナップショットIDがあり、CDBレベルのスナップショットに関連していません。

  • CDB内のPDBの接続および切断操作によって、PDBに格納されているAWRデータが影響を受けることはありません。

  • CDB管理者は、PDBに次のSQL文を実行することによって、PDBロックダウン・プロファイルを使用してPDBのAWR機能を無効化できます。

    SQL> alter lockdown profile profile_name disable feature=('AWR_ACCESS');

    PDBでAWR機能を無効化すると、そのPDBに対するスナップショット操作を実行できなくなります。

    次のSQL文をPDBで実行すると、そのPDBのAWR機能を再度有効化できます。

    SQL> alter lockdown profile profile_name enable feature=('AWR_ACCESS');

関連項目:

AWRデータのエクスポートおよびインポート

マルチテナント環境のCDBルートおよびPDBのAWRデータをエクスポートおよびインポートするプロセスは、非CDBのAWRデータをエクスポートおよびインポートするプロセスに似ています。

関連項目:

  • Oracle DatabaseからのAWRデータのエクスポートの詳細は、AWRデータの抽出を参照してください

  • Oracle DatabaseへのAWRデータのインポートの詳細は、AWRデータのロードを参照してください

6.2.7.3 マルチテナント環境のAWRデータの表示

Oracle Databaseの様々なレポートおよびビューを使用して、マルチテナント環境のAWRデータを表示できます。

AWRレポート

AWRレポートを生成するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してAWRレポートを生成してください。

関連項目:

Cloud Controlを使用したAWRレポートの生成の詳細は、Oracle Database 2日でパフォーマンス・チューニング・ガイドを参照してください

Cloud Controlを使用できない場合は、次のようにSQLスクリプトを実行して、AWRレポートを生成します。これらのスクリプトを実行するには、DBAロールが必要です。

  • マルチテナント環境全体のグローバル・システム・データ統計を示す、CDB固有のAWRレポートをCDBルートから生成できます。ローカル・データベースのAWRレポートの生成の項で説明するSQLスクリプトを使用して、このAWRレポートを作成できます。

  • PDBに関連する統計を示す、PDB固有のAWRレポートをPDBから生成できます。ローカル・データベースのAWRレポートの生成の項で説明するSQLスクリプトを使用して、このAWRレポートを作成できます。

  • 特定のPDBに関連する統計を示す、PDB固有のAWRレポートをCDBルートから生成できます。特定データベースのAWRレポートの生成の項で説明するSQLスクリプトを使用して、このAWRレポートを作成できます。

AWRビュー

次の表に、マルチテナント環境のCDBルートおよび個別のPDBに格納されているAWRデータにアクセスするためのOracle Databaseのビューをリストします。

関連項目:

これらのAWRの詳細は、自動ワークロード・リポジトリ・ビューの使用を参照してください

表6-2 マルチテナント環境のAWRデータにアクセスするためのビュー

ビュー 説明

DBA_HISTビュー

  • DBA_HISTビューには、CDBルートにのみ存在するAWRデータが表示されます。

  • CDBルートからDBA_HISTビューにアクセスした場合は、CDBルートに格納されているすべてのAWRデータが表示されます。

  • PDBからDBA_HISTビューにアクセスした場合は、そのPDBに固有の、CDBルートのAWRデータのサブセットが表示されます。

DBA_HIST_CONビュー

  • DBA_HIST_CONビューはDBA_HISTビューに似ていますが、各コンテナに関するより詳細な情報が提供されるため、DBA_HISTビューより多くのデータが含まれています。

  • DBA_HIST_CONビューには、CDBルートにのみ存在するAWRデータが表示されます。

  • CDBルートからDBA_HIST_CONビューにアクセスした場合は、CDBルートに格納されているすべてのAWRデータが表示されます。

  • PDBからDBA_HIST_CONビューにアクセスした場合は、そのPDBに固有の、CDBルートのAWRデータのサブセットが表示されます。

AWR_ROOTビュー

  • AWR_ROOTビューは、Oracle Database 12cリリース2 (12.2)以降の、マルチテナント環境でのみ使用できます。

  • AWR_ROOTビューはDBA_HISTビューと同等です。

  • AWR_ROOTビューには、CDBルートにのみ存在するAWRデータが表示されます。

  • CDBルートからAWR_ROOTビューにアクセスした場合は、CDBルートに格納されているすべてのAWRデータが表示されます。

  • PDBからAWR_ROOTビューにアクセスした場合は、そのPDBに固有の、CDBルートのAWRデータのサブセットが表示されます。

AWR_PDBビュー

  • AWR_PDBビューは、Oracle Database 12cリリース2 (12.2)以降で使用できます。

  • AWR_PDBビューには、CDBルートまたはPDBに存在するローカルAWRデータが表示されます。

  • CDBルートからAWR_PDBビューにアクセスした場合は、CDBルートに格納されているAWRデータが表示されます。

  • PDBからAWR_PDBビューにアクセスした場合は、そのPDBに格納されているAWRデータが表示されます。

CDB_HISTビュー

  • CDB_HISTビューには、PDBに格納されているAWRデータが表示されます。

  • CDBルートからCDB_HISTビューにアクセスした場合は、すべてのPDBに格納されているAWRデータの和集合が表示されます。

  • PDBからCDB_HISTビューにアクセスした場合は、そのPDBに格納されているAWRデータが表示されます。

6.2.8 Active Data Guardスタンバイ・データベースでの自動ワークロード・リポジトリの管理

Oracle Database 12cリリース2 (12.2)からは、Active Data Guard (ADG)スタンバイ・データベースの自動ワークロード・リポジトリ(AWR)データを取得できるようになりました。この機能を使用すると、ADGスタンバイ・データベースのパフォーマンス関連の問題を分析できます。

ADGスタンバイ・データベースのAWRスナップショットは、リモート・スナップショットと呼ばれます。宛先と呼ばれるデータベース・ノードには、ソースと呼ばれるリモートADGスタンバイ・データベース・ノードから収集されたスナップショットが格納されます。

ADGプライマリ・データベースまたは非ADGデータベースのいずれも、宛先になることができます。宛先がADGプライマリ・データベースである場合、これはソース・データベースでもあり、そのスナップショットはローカル・スナップショットです。

ソースは、一意の名前または宛先にとって既知のソース名によって識別されます。

宛先ノードまたはソース・ノードには、その構成中に名前を割り当てることができます。そうしない場合、初期化パラメータDB_UNIQUE_NAMEの値がノードの名前として割り当てられます。

各ソースには、2つのデータベース・リンク(宛先からソースへのデータベース・リンクとソースから宛先へのデータベース・リンク)が存在する必要があります。これらのデータベース・リンクは、ADGデプロイメントの間に各ソースに構成されます。フェイルオーバー、スイッチオーバー、ホストの追加と削除などの特定のADGイベントの後に、データベース・アプリケーションが引き続き正しく動作するように、これらのデータベース・リンクを手動で再構成する必要があります。

リモート・スナップショットは、スケジュールされた時間間隔で自動的に、または手動で取得できます。リモート・スナップショットは、常に宛先ノードで開始されます。宛先でスナップショットの作成プロセスが開始されると、ソースはデータベース・リンクを使用して、自身のスナップショット・データを宛先にプッシュします。宛先に格納されているスナップショット・データまたはAWRデータには、AWRレポート、Oracle Databaseのインポートおよびエクスポート機能、ユーザー定義の問合せを使用してアクセスできます。自動データベース診断モニター(ADDM)アプリケーションは、AWRデータを使用して、データベースのパフォーマンスに関連した問題を分析します。

宛先データベースの役割

宛先データベースでは次のタスクが管理されます。

  • ソースの登録

  • 各ソースへの一意の識別子の割当て

  • 宛先とソースの間のデータベース・リンクの作成

  • ソースの自動スナップショットのスケジュールおよび開始

  • ソースのスナップショットの調整による宛先ワークロードの管理

  • 各ソースのスナップショット設定の管理

  • 新しく生成されたスナップショットへの識別子の割当て

  • AWR表のパーティション化

  • ローカルAWRへのパフォーマンス・データの格納

  • 宛先およびソースのAWRデータのパージ

ソース・データベースの役割

ソース・データベースでは次のタスクが管理されます。

  • ローカルAWRへの自身のパフォーマンス・データの格納

  • 宛先への自身のAWRデータの送信

  • 宛先からのサービス・リクエストへの応答

  • 宛先からのAWRデータの抽出

ADGスタンバイ・データベースでのAWR管理の主な手順

ADGスタンバイ・データベースでAWRを管理するための主な手順は、次のとおりです。

  1. リモート管理フレームワーク(RMF)の構成

  2. Active Data Guardスタンバイ・データベースのスナップショットの管理

  3. Active Data Guardスタンバイ・データベースのAWRデータの表示

注意:

ADG環境のAWRの構成を開始する前に、すべてのADGスタンバイ・データベースのデータベース・リンクが、ADGのデプロイ時にすでに構成されていることを確認してください。

6.2.8.1 リモート管理フレームワーク(RMF)の構成

リモート管理フレームワーク(RMF)は、Oracle Databaseのパフォーマンス統計(AWRデータ)の取得を有効化するためのアーキテクチャです。

注意:

Oracle Database 12cリリース2 (12.2)では、ADGスタンバイ・データベースおよびスタンドアロン・データベースに対してのみ、RMFを使用できます。

RMFトポロジは、すべての参加データベース・ノードとそのメタデータおよび接続情報で構成される、集中型アーキテクチャです。RMFトポロジには宛先と呼ばれるデータベース・ノードが1つ存在し、ソースと呼ばれるデータベース・ノードから収集されたパフォーマンス・データ(AWRデータ)を格納および管理する役割を持っています。宛先候補は、元の宛先が使用できないかダウングレードされた場合に、元の宛先を置き換えるように構成できるソースです。トポロジには、1つ以上の宛先候補と、宛先を1つのみ指定できます。

トポロジ内の各データベース・ノードには、一意の名前が割り当てられている必要があります。これは、ノードの構成時にプロシージャDBMS_UMF.configure_node()を使用して実行します。このプロシージャでノードの名前を指定しない場合は、初期化パラメータDB_UNIQUE_NAMEの値をノードの名前として使用します。

トポロジ内のデータベース・ノードは、データベース・リンクを使用して相互に通信します。宛先からソース、およびソースから宛先へのデータベース・リンクは、ADGのデプロイ時にADGスタンバイ・データベースごとに作成する必要があります。

サービスは、トポロジ上で実行されるアプリケーションです。たとえば、トポロジ上で実行されるAWRサービスによって、そのトポロジ内のすべてのデータベース・ノードに対するリモートAWRスナップショットが有効化されます。

RMF APIは、RMFトポロジを構成するために使用できるPL/SQLプロシージャおよび関数です。RMF APIは、PL/SQLパッケージDBMS_UMFで宣言されています。

注意:

  • SYS$UMFユーザーは、システム・レベルのRMFビューおよび表にアクセスするためのすべての権限を持つ、デフォルトのデータベース・ユーザーです。RMFのAWRに関連するすべての操作は、SYS$UMFユーザーのみが実行できます。SYS$UMFユーザーはデフォルトでロックされており、RMFトポロジをデプロイする前にロックを解除する必要があります。

  • RMFトポロジでデータベース・リンクを作成する際には、SYS$UMFユーザーのパスワードを指定する必要があります。SYS$UMFユーザーのパスワードを変更した場合は、RMFトポロジ内のすべてのデータベース・リンクを再作成する必要があります。

関連項目:

DBMS_UMFパッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください

RMFトポロジの設定

Oracle Databaseのパフォーマンス統計を収集するように、RMFトポロジを設定する必要があります。

RMFトポロジを設定するための前提条件は、次のとおりです。

  • RMFトポロジに登録するすべてのデータベース・ノードについて、宛先からソース、およびソースから宛先へのデータベース・リンクを作成する必要があります。この設定は、ADGのデプロイ時に行います。

RMFトポロジを設定するための手順は、次のとおりです。

  1. トポロジに追加するデータベース・ノードを構成します。

  2. トポロジを作成します。

  3. トポロジにデータベース・ノードを登録します。

  4. (オプション)トポロジ内のノード間のデータベース・リンクを登録します。この構成は、宛先が使用できなくなった場合に、宛先候補がデータベース・リンクを使用してトポロジ内の残りのノードに接続するために必要です。

RMFトポロジの設定の例

この例では、TS0およびS1の3つのデータベース・ノードをトポロジTopology_1に追加します。ノードTは宛先ノードであり、S0およびS1のノードはソース・ノードです。ノードS1は宛先候補であり、元の宛先Tが使用できない場合は、ノードS1が新しい宛先になります。AWRサービスは、トポロジ内のすべてのソースに対して有効化されています。

ADGのデプロイメント中に、次のデータベース・リンクがすでに作成されているとします。

  • DBLINK_T_to_S0: TからS0へのデータベース・リンク。

  • DBLINK_T_to_S1: TからS1へのデータベース・リンク。

  • DBLINK_S0_to_T: S0からTへのデータベース・リンク。

  • DBLINK_S0_to_S1: S0からS1へのデータベース・リンク。

  • DBLINK_S1_to_T: S1からTへのデータベース・リンク。

  • DBLINK_S1_to_S0: S1からS0へのデータベース・リンク。

RMFトポロジを設定するためのサンプル・コードを次に示します。

   /* Configure the nodes T, S0, and S1 by executing these procedures on the respective nodes */

   /* Execute this procedure on node T */
   SQL> exec DBMS_UMF.configure_node ('T');

   /* Execute this procedure on node S0 */
   SQL> exec DBMS_UMF.configure_node ('S0', 'DBLINK_S0_to_T');

   /* Execute this procedure on node S1 */
   SQL> exec DBMS_UMF.configure_node ('S1', 'DBLINK_S1_to_T');

   /* Execute all the following procedures on the destination node T */

   /* Create the topology 'Topology_1' */
   SQL> exec DBMS_UMF.create_topology ('Topology_1');

   /* Register the node S0 with the topology 'Topology_1' */
   SQL> exec DBMS_UMF.register_node ('Topology_1',
                                     'S0',
                                     'DBLINK_T_to_S0',
                                     'DBLINK_S0_to_T',
                                     'TRUE'  /* Set it as a source */,
                                     'FALSE' /* Set it as not a candidate destination */);

   /* Register the node S1 with the topology 'Topology_1' */
   SQL> exec DBMS_UMF.register_node ('Topology_1',
                                     'S1',
                                     'DBLINK_T_to_S1',
                                     'DBLINK_S1_to_T', 
                                     'TRUE'  /* Set it as a source */,
                                     'TRUE'  /* Set it as a candidate destination */);

   /* Register the database links between the nodes S0 and S1 in the topology 'Topology_1'. 
    * When destination T is unavailable at the time of failover, the source S0 can connect to
    * the candidate destination S1 using this database link.
    */
   SQL> exec DBMS_UMF.create_link ('Topology_1',
                                   'S0',
                                   'S1',
                                   'DBLINK_S0_to_S1',
                                   'DBLINK_S1_to_S0');

   /* Enable the AWR service on the node S0 in the topology 'Topology_1' */
   SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'S0');

   /* Enable the AWR service on the node S1 in the topology 'Topology_1' */
   SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'S1');

注意:

次のプロシージャを使用して、ノードに対するAWRサービスを無効化できます。

SQL> exec DBMS_WORKLOAD_REPOSITORY.unregister_remote_database(node_name)

ADGロール・トランジションの管理

ADGプライマリまたは元の宛先が失敗(フェイルオーバーイベント)したとき、または、メンテナンス・フェーズ(スイッチオーバー・イベント)中にADGスタンバイ・データベースまたは宛先候補がADGプライマリのロールを引き継いだときに、ADGロール・トランジションが発生します。

ロールを変更する前、つまり、フェイルオーバーまたはスイッチオーバー・イベントが発生したために宛先候補を新しい宛先へと変更する前に、次の構成手順を実行することをお薦めします。

  1. ソースと宛先候補の間にデータベース・リンクを作成します。各ソースに次のプロシージャを実行して、すべてのソースにこれが構成されている必要があります。

    SQL> EXEC DBMS_UMF.CREATE_LINK (topology name, 
                                    source name, 
                                    candidate destination name,
                                    source to candidate destination database link,
                                    candidate destination to source database link);

    注意:

    ロールの変更時に予期しない問題が発生することを避けるために、トポロジ内のすべてのノード間にデータベース・リンクを作成しておくことをお薦めします。

  2. 宛先候補のAWRスナップショットを取得します。

    注意:

    ロールの変更後に宛先候補のAWRレポートを生成するには、ロールの変更前に、宛先候補のスナップショットを少なくとも1つ取得します。

  3. 宛先候補とすべてのソースを再起動します。

後続の構成手順を完了したら、宛先候補で次のプロシージャを実行して、ロールを変更できます。

SQL> EXEC DBMS_UMF.SWITCH_DESTINATION(topology name, force_switch=>FALSE);

注意:

ロールの遷移期間にはソースのスナップショットを取得しないことをお薦めします。DBMS_UMF.SWITCH_DESTINATIONプロシージャを実行して、ロール変更プロセスが完了したら、ソースのスナップショットを取得できます。ロールの変更後にソースのAWRレポートを生成する場合は、ロールの変更後に取得されたスナップショットのみを選択する必要があります。

登録されたRMFトポロジの詳細の取得

次に説明するRMFビューには、マルチテナント環境に登録されているすべてのRMFトポロジの構成情報が表示されます。

表6-3 RMFビュー

RMFビュー 説明

DBA_UMF_TOPOLOGY

マルチテナント環境に登録されたすべてのトポロジが表示されます。各トポロジには、トポロジ名、宛先ID、トポロジの状態があります。RMFを有効化するには、少なくとも1つのトポロジの状態がACTIVEである必要があります。

DBA_UMF_REGISTRATION

マルチテナント環境内のすべてのトポロジの、登録されたすべてのノードが表示されます。

DBA_UMF_LINK

マルチテナント環境内のすべてのトポロジの、登録されたすべてのデータベース・リンクが表示されます。

DBA_UMF_SERVICE

マルチテナント環境内のすべてのトポロジの、登録されたすべてのサービスが表示されます。

関連項目:

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

6.2.8.2 Active Data Guardスタンバイ・データベースのスナップショットの管理

ADGスタンバイ・データベースのAWRスナップショットは、リモート・スナップショットと呼ばれます。ローカルAWRスナップショットと同じように、リモートAWRスナップショットは、スケジュールされた時間間隔で自動的に、または手動で生成できます。リモート・スナップショットの生成には、プッシュ・オン・デマンド・メカニズムが使用されます。ここでは、宛先がスナップショットの生成プロセスを開始し、データベース・リンクを介してスナップショット・データを宛先にプッシュするように、ソースに対して指示します。宛先は、各ソースに対して構成されているスナップショットの時間間隔に基づいて、自動スナップショットを定期的に開始します。

注意:

宛先は、個々のソースに設定されているスナップショット・データまたはAWRデータの保持設定に基づいて、期限切れのリモート・スナップショットをパージします。ローカルで生成されたスナップショットのパージは、スケジュールされた通常のパージ・プロセスで発生します。デフォルトでは、Oracle Databaseにより、8日を超えてAWRに格納されているスナップショットが自動的に消去されます。リモート・スナップショットのAWR表のパーティション化は、ローカル・スナップショットと同様に実行されます。

リモート・スナップショットの作成、変更および削除

リモート・スナップショットを作成、変更および削除するAPIは、ローカル・スナップショットに対してそれらを実行するAPIと同じです。

注意:

リモート・スナップショットを作成するために、DBMS_WORKLOAD_REPOSITORY.CREATE_REMOTE_SNAPSHOT APIを使用することもできます。このAPIは、ローカル・スナップショットを作成するAPI DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOTと同様に動作しますが、RMFトポロジ名のパラメータを追加で取得します。

リモート・スナップショットのベースラインの管理

リモート・スナップショットのベースラインを管理するAPIは、ローカル・スナップショットに対してそれを実行するAPIと同じです。

リモート・スナップショットのエクスポートとインポート

注意:

ADGスタンバイ・データベース(つまり、ソース・データベース)上で、リモート・スナップショットに関連したAWRのエクスポートおよびインポート・スクリプトを実行することはできません。これらのスクリプトは、常に宛先データベースで実行します。

リモート・スナップショットのAWRデータをエクスポートおよびインポートするプロセスは、ローカル・スナップショットに対してそれを実行するプロセスと同じです。Oracle Database 12cリリース2 (12.2)では、AWRデータのエクスポートおよびインポート・スクリプトであるawrextr.sqlおよびawrload.sqlは、特定のソースで作成されたスナップショットを識別するために、ソース名識別子を使用します。ソース名は、エクスポート操作中にダンプ・ファイルに格納され、インポート操作中にデフォルト・ソース名として使用されます。

関連項目:

ローカル・スナップショットのAWRデータのエクスポートおよびインポートの詳細は、自動ワークロード・リポジトリ・データの転送を参照してください。

awrextr.sqlスクリプトを使用したリモート・スナップショットのエクスポート

リモート・スナップショットをエクスポートするプロセスは、awrextr.sqlスクリプトを使用したローカル・スナップショットのエクスポート(「AWRデータの抽出」の項を参照)と似ていますが、次の点が異なります。

  • エクスポート・ログ・ファイルのデフォルトのディレクトリはダンプ・ファイルと同じですが、エクスポート・ログ・ファイルには他の任意のディレクトリを指定できます。

  • エクスポートするダンプ・ファイルの名前には、.dmp接尾辞を指定できます。

  • エクスポート・スクリプトによって、エクスポートする「マップ済データベースID」値のプロンプトが表示される前に、AWR表のSOURCE_DBIDSOURCE_NAMEの列値が表示されます。

awrload.sqlスクリプトを使用したリモート・スナップショットのインポート

リモート・スナップショットをインポートするプロセスは、awrload.sqlスクリプトを使用したローカル・スナップショットのインポート(「AWRデータのロード」の項を参照)と似ていますが、次の点が異なります。

  • インポート・ログ・ファイルのデフォルトのディレクトリはダンプ・ファイルと同じですが、インポート・ログ・ファイルには他の任意のディレクトリを指定できます。これは特に、ダンプ・ファイルが読取り専用ディレクトリに配置されている場合に便利です。

  • インポートするダンプ・ファイルの名前には、.dmp接尾辞を指定できます。

  • インポート・スクリプトは、ダンプ・ファイルにあるSOURCE_DBIDおよびSOURCE_NAMEの列値を使用して、AWRのスナップショットを格納するために使用する正しい「マップ済データベースID」を判断します。

注意:

スナップショットのインポート操作は、スナップショットのダンプが生成されたOracle Databaseのバージョンの影響を受けません。

6.2.8.3 Active Data Guardスタンバイ・データベースのAWRデータの表示

Oracle提供のAWRビューおよびAWRレポートを使用して、ADGスタンバイ・データベースに格納されたAWRデータを表示できます。

AWRビューを使用したAWRデータの表示

「自動ワークロード・リポジトリ・ビューの使用」の項で説明しているとおり、DBA_HISTビューを使用して、AWRに格納された履歴データを表示できます。

注意:

Oracle Database 12cリリース2 (12.2)では、ビューDBA_HIST_DATABASE_INSTANCEに、ADGスタンバイ・データベースのAWRをサポートするための追加のフィールドDB_UNIQUE_NAMEが含まれています。フィールドDB_UNIQUE_NAMEには、宛先に既知であるソースの一意識別子が格納されます。

AWRレポートを使用したAWRデータの表示

AWRレポートを使用して、ADGスタンバイ・データベースに関連したパフォーマンス統計を表示できます。AWRレポートを生成するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してAWRレポートを生成してください。Cloud Controlを使用できない場合は、Oracle提供のSQLスクリプトを使用して、AWRレポートを生成します。これらのスクリプトを実行するには、DBAロールが必要です。

ソース名とマップ済データベースIDのペアを使用して、特定のソースのAWRデータを問い合せることができます。マップ済データベースIDは、AWRでデータベース・インスタンスを識別するために使用され、AWR表のDBID列に格納されている、データベース識別子(DBID)に似ています。ADGスタンバイ・データベースのAWR DBID値は、次のように導出されます。

  • 宛先の場合、AWR DBID値はV$DATABASE.CON_DBIDの値です。

  • ソースの場合、AWR DBID値は、DBMS_UMF.GET_NODE_ID_LOCAL()の値またはDBA_UMF_REGISTRATIONビューのNODE_ID列の値です。

スナップショットIDはソース間で一意ではないため、特定のソースのスナップショットは、スナップショットIDとマップ済データベースIDのペアで識別されます。

関連項目:

Oracle提供のSQLスクリプトを使用したAWRレポートの生成の詳細は、特定データベースのAWRレポートの生成を参照してください。

6.3 自動ワークロード・リポジトリ・レポートの生成

AWRレポートは、2つのスナップショット(または2つの時点)の間に取得されたデータを示します。AWRレポートは複数のセクションに分割されています。レポートの内容には、選択した範囲のスナップショットに関するシステムのワークロード・プロファイルが含まれます。HTMLレポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。

注意:

指定した範囲のスナップショットにワークロード・アクティビティのないデータベースに対してレポートを実行すると、一部のレポート統計について0より小さいか100を超えるパーセンテージが計算される場合があります。この結果は、その統計に意味のある値がないことを意味します。

この項では、AWRレポートの生成方法を説明しており、内容は次のとおりです。

6.3.1 AWRレポートを生成するためのユーザー・インタフェース

AWRレポートを生成するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してAWRレポートを生成してください。

Cloud Controlを使用できない場合は、SQLスクリプトを実行してAWRレポートを生成します。これらのスクリプトを実行するには、DBAロールが必要です。

関連項目:

Cloud Controlを使用したAWRレポートの生成の詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください

6.3.2 コマンドライン・インタフェースを使用したAWRレポートの生成

この項では、コマンドライン・インタフェースでSQLスクリプトを実行し、AWRレポートを生成する方法を説明します。これらのスクリプトを実行するには、DBAロールが必要です。必要なAWRレポートを生成するための詳細な手順は、次の表で適切なタスクのリンクをクリックしてください。

表6-4 AWRレポートを生成するためのSQLスクリプト

タスク SQLスクリプト 説明

ローカル・データベースのAWRレポートの生成

awrrpt.sql

ローカル・データベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

特定データベースのAWRレポートの生成

awrrpti.sql

特定のデータベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

Oracle RACにおけるローカル・データベースのAWRレポートの生成

awrgrpt.sql

Oracle RAC環境におけるローカル・データベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

Oracle RACにおける特定データベースのAWRレポートの生成

awrgrpti.sql

Oracle RAC環境における特定のデータベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

ローカル・データベースにおけるSQL文のAWRレポートの生成

awrsqrpt.sql

ローカル・データベース・インスタンスの一定範囲のスナップショットIDについて、特定のSQL文の統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

特定データベースにおけるSQL文のAWRレポートの生成

awrsqrpi.sql

特定のデータベース・インスタンスの一定範囲のスナップショットIDについて、特定のSQL文の統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。

6.3.2.1 ローカル・データベースのAWRレポートの生成

awrrpt.sql SQLスクリプトでは、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。

コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにAWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrrpt.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: text
    

    この例では、テキスト形式のレポートが選択されます。

  3. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 2
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。

  4. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 150
    Enter value for end_snap: 160
    

    この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。

  5. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_1_150_160
    

    この例では、デフォルト名が使用され、awrrpt_1_150_160というAWRレポートが生成されます。

6.3.2.2 特定データベースのAWRレポートの生成

awrrpti.sql SQLスクリプトでは、特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびインスタンスを指定できます。

コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにAWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrrpti.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: text
    

    この例では、テキスト形式のレポートが選択されます。

    使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。

    Instances in this Workload Repository schema
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       DB Id    Inst Num DB Name      Instance     Host
    ----------- -------- ------------ ------------ ------------
     3309173529        1 MAIN         main         examp1690
     3309173529        1 TINT251      tint251      samp251
    
  3. 次のようにデータベース識別子(dbid)およびインスタンス番号(inst_num)の値を入力します。

    Enter value for dbid: 3309173529
    Using 3309173529 for database Id
    Enter value for inst_num: 1
    

    注意:

    ADGスタンバイ・データベースの場合、dbidの値は次のように決定されます。

    • 宛先ノードには、v$database.con_dbidの値を使用します。

    • ソース・ノードには、dbms_umf.get_node_id_local()の値を使用します。

  4. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 2
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。

  5. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 150
    Enter value for end_snap: 160
    

    この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。

  6. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_1_150_160
    

    この例では、デフォルト名が使用され、3309173529というデータベースIDを持つデータベース・インスタンスでawrrpt_1_150_160というAWRレポートが生成されます。

6.3.2.3 Oracle RACにおけるローカル・データベースのAWRレポートの生成

awrgrpt.sql SQLスクリプトでは、Oracle Real Application Clusters (Oracle RAC)環境における現在のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。

注意:

HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、HTMLレポートを生成することをお薦めします。

コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにOracle RAC AWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrgrpt.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: html
    

    この例では、HTML形式のレポートが選択されます。

  3. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 2
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最終日に取得されたスナップショットが表示されます。

  4. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 150
    Enter value for end_snap: 160
    

    この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。

  5. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_rac_150_160.html
    

    この例では、デフォルト名が使用され、awrrpt_rac_150_160.htmlというAWRレポートが生成されます。

6.3.2.4 Oracle RACにおける特定データベースのAWRレポートの生成

awrgrpti.sql SQLスクリプトでは、Oracle RAC環境で実行されている特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびデータベース・インスタンスのカンマ区切りのリストを指定できます。

注意:

HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、HTMLレポートを生成することをお薦めします。

コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにOracle RAC AWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrgrpti.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: html
    

    この例では、HTML形式のレポートが選択されます。

    使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。

    Instances in this Workload Repository schema
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       DB Id    Inst Num DB Name      Instance     Host
    ----------- -------- ------------ ------------ ------------
     3309173529        1 MAIN         main         examp1690
     3309173529        1 TINT251      tint251      samp251
     3309173529        2 TINT251      tint252      samp252
    
  3. データベース識別子(dbid)の値を入力します。

    Enter value for dbid: 3309173529
    Using 3309173529 for database Id
    
  4. レポートに含めるOracle RACインスタンスのインスタンス番号(instance_numbers_or_all)の値を入力します。

    Enter value for instance_numbers_or_all: 1,2
    
  5. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 2
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。

  6. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 150
    Enter value for end_snap: 160
    

    この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。

  7. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_rac_150_160.html
    

    この例では、デフォルト名が使用され、3309173529というデータベースIDを持つデータベース・インスタンスでawrrpt_rac_150_160.htmlというAWRレポートが生成されます。

6.3.2.5 ローカル・データベースにおけるSQL文のAWRレポートの生成

awrsqrpt.sql SQLスクリプトでは、一定範囲のスナップショットIDにおける特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。SQL文のパフォーマンスを検査またはデバッグする場合にこのレポートを実行します。

コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにSQL文のAWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: html
    

    この例では、HTML形式のレポートが選択されます。

  3. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 1
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。

  4. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 146
    Enter value for end_snap: 147
    

    この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。

  5. 特定のSQL文のSQL IDを指定して統計を表示します。

    Enter value for sql_id: 2b064ybzkwf1y
    

    この例では、2b064ybzkwf1yというSQL IDを持つSQL文が選択されます。

  6. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_1_146_147.html
    

    この例では、デフォルト名が使用され、awrrpt_1_146_147というAWRレポートが生成されます。

6.3.2.6 特定データベースにおけるSQL文のAWRレポートの生成

awrsqrpi.sql SQLスクリプトでは、特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDにおける特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成対象となるデータベース識別子およびインスタンスを指定できます。このレポートは、特定のデータベースおよびインスタンスにおけるSQL文のパフォーマンスを調査またはデバッグする場合に実行します。

コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにSQL文のAWRレポートを生成するには、次のようにします。

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
    
  2. レポートの形式としてHTMLまたはテキストのいずれかを指定します。

    Enter value for report_type: html
    

    この例では、HTML形式のレポートが選択されます。

    使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。

    Instances in this Workload Repository schema
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       DB Id    Inst Num DB Name      Instance     Host
    ----------- -------- ------------ ------------ ------------
     3309173529        1 MAIN         main         examp1690
     3309173529        1 TINT251      tint251      samp251
    
  3. 次のようにデータベース識別子(dbid)およびインスタンス番号(inst_num)の値を入力します。

    Enter value for dbid: 3309173529
    Using 3309173529 for database Id
    Enter value for inst_num: 1
    Using 1 for instance number
    
  4. スナップショットIDをリストする日数を指定します。

    Enter value for num_days: 1
    

    指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。

  5. ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。

    Enter value for begin_snap: 146
    Enter value for end_snap: 147
    

    この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。

  6. 特定のSQL文のSQL IDを指定して統計を表示します。

    Enter value for sql_id: 2b064ybzkwf1y
    

    この例では、2b064ybzkwf1yというSQL IDを持つSQL文が選択されます。

  7. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: 
    Using the report name awrrpt_1_146_147.html
    

    この例では、デフォルト名が使用され、3309173529というデータベースIDを持つデータベース・インスタンスでawrrpt_1_146_147というAWRレポートが生成されます。

6.4 パフォーマンス・ハブ・アクティブ・レポートの生成

EM Expressのパフォーマンス・ハブ機能では、指定した期間のすべてのパフォーマンス・データの統合ビューを示すアクティブ・レポートが提供されます。レポートは完全にインタラクティブです。この内容はHTMLファイルに保存され、このファイルはWebブラウザを使用してオフラインでアクセスできます。

関連項目:

EM Expressのパフォーマンス・ハブ機能の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください

この項では、パフォーマンス・ハブ・アクティブ・レポートの生成方法を説明しており、内容は次のとおりです。

6.4.1 パフォーマンス・ハブ・アクティブ・レポートの概要

パフォーマンス・ハブ・アクティブ・レポートを使用すると、指定した期間に使用可能なすべてのパフォーマンス・データが表示されます。期間に対してリアルタイム・データまたは履歴データのいずれを選択するかによって、パフォーマンス・ハブで使用可能なタブが異なります。リアルタイム・データを選択した場合、最後の時間のリアルタイム・データが表示されるため、より詳細なデータが表示されます。履歴データを選択した場合は、より詳細なデータが表示されますが、データ・ポイントは選択した期間の自動ワークロード・リポジトリ(AWR)の間隔に平均化されます。

この項では、パフォーマンス・ハブ・アクティブ・レポートについて説明しており、内容は次のとおりです。

6.4.1.1 パフォーマンス・ハブ・アクティブ・レポートのタブについて

パフォーマンス・ハブ・アクティブ・レポートには、様々なパフォーマンス領域に分類されたパフォーマンス・データを表示してナビゲートできるインタラクティブ・タブが含まれます。

パフォーマンス・ハブ・アクティブ・レポートに含まれるタブには次のものがあります。

  • サマリー

    「サマリー」タブにはリソース使用量、平均アクティブ・セッションおよびロード・プロファイル情報などのシステム・パフォーマンスの概要が示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • アクティビティ

    「アクティビティ」タブにはASH分析が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • ワークロード

    「ワークロード」タブには、コール率、ログオン率および上位SQLなどのワークロード・プロファイルに関するメトリック情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • RAC

    「RAC」タブには、受け取ったグローバル・キャッシュ・ブロック数および平均ブロック待機時間などのOracle RAC固有のメトリックが表示されます。このタブはOracle RAC環境でのみ使用できます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • 監視されたSQL

    「監視されたSQL」タブには、監視対象のSQL文に関する情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • ADDM

    「ADDM」タブには、ADDM分析タスクとリアルタイムADDM分析レポートの情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。

  • 最新のADDM結果

    「最新のADDM結果」タブには、過去5分間のシステム・パフォーマンスのリアルタイム分析が表示されます。このタブは、パフォーマンス・ハブ・アクティブ・レポートの指定期間が過去の時間内にある場合のみ使用できます。このタブはリアルタイム・データのみに使用できます。

  • データベース時間

    「データベース時間」タブには、様々なメトリックのカテゴリ別の待機イベントが表示されます。このタブは履歴データのみに使用できます。

  • リソース

    「リソース」タブには、オペレーティング・システムおよびI/Oの使用状況統計が表示されます。このタブは履歴データのみに使用できます。

  • システム統計

    「システム統計」タブにはデータベースおよびシステム統計が表示されます。このタブは履歴データのみに使用できます。

6.4.1.2 パフォーマンス・ハブ・アクティブ・レポートのタイプについて

レポート・タイプを選択することで、パフォーマンス・ハブ・アクティブ・レポートの各タブ内に表示される詳細のレベルを選択できます。

パフォーマンス・ハブ・アクティブ・レポートに使用可能なレポート・タイプには次のものがあります。

  • 基本

    すべてのタブの基本情報のみがレポートに保存されます。

  • 標準

    基本レポート・タイプに保存された情報以外に、「監視されたSQL」タブに含まれた上位SQL文のSQL監視情報とADDMレポートがレポートに保存されます。

  • すべて

    標準レポート・タイプに保存された情報以外に、「監視されたSQL」タブに含まれた全SQL文のSQL監視情報と、すべてのタブに対するすべての詳細レポートがレポートに保存されます。

6.4.2 パフォーマンス・ハブ・アクティブ・レポートを生成するためのコマンドライン・ユーザー・インタフェース

次のいずれかの方法でコマンドライン・インタフェースを使用して、パフォーマンス・ハブ・アクティブ・レポートを生成できます。

6.4.3 SQLスクリプトを使用したパフォーマンス・ハブ・アクティブ・レポートの生成

この項では、コマンドライン・インタフェースでperfhubrpt.sql SQLスクリプトを実行して、パフォーマンス・ハブ・アクティブ・レポートを生成する方法を説明します。このスクリプトの実行にはDBAロールが必要です。

パフォーマンス・ハブ・アクティブ・レポートを生成する手順:

  1. SQLプロンプトで次のように入力します。

    @$ORACLE_HOME/rdbms/admin/perfhubrpt.sql
    
  2. 目的のレポート・タイプを指定します。

    Please enter report type: typical
    

    使用可能なレポート・タイプの詳細は、「パフォーマンス・ハブ・アクティブ・レポートのタイプについて」を参照してください。

  3. 使用するデータベースのデータベース識別子の値を入力します。

    Please enter database ID: 3309173529
    

    ローカル・データベースを使用する場合は、null値(デフォルト値)を入力します。ローカル・データベース以外のデータベースのデータベース識別子を指定する場合、パフォーマンス・ハブ・アクティブ・レポートはインポートされたAWRデータから生成されます。

  4. 使用するデータベース・インスタンスのインスタンス番号の値を入力します。

    Please enter instance number: all instances
    

    すべてのインスタンスを指定する場合は、all instances(デフォルト値)と入力します。

  5. 終了時間および開始時間をdd:mm:yyyy hh:mi:ssの形式で指定して、目的の期間を入力します。

    Please enter end time in format of dd:mm:yyyy hh24:mi:ss: 03:04:2014 17:00:00
    Please enter start time in format of dd:mm:yyyy hh24:mi:ss: 03:04:2014 16:00:00
    
  6. レポート名を入力するか、デフォルトのレポート名を受け入れます。

    Enter value for report_name: my_perfhub_report.html
    

    この例では、2014年4月3日の午後4時から午後5時までの指定期間について、データベースID値3309173529のすべてのデータベース・インスタンスでmy_perfhub_reportというパフォーマンス・ハブ・アクティブ・レポートが生成されます。