6 データベース統計の収集
この章では、Oracle Databaseのデータベース統計を収集する方法を説明しており、内容は次のとおりです。
データベース統計の収集について
Oracle Databaseは、すべてのレベル(セッション・レベルを除く)でほとんどの統計の累積値とデルタ値を、自動ワークロード・リポジトリ(AWR)に自動的に存続させます。このプロセスは通常の期間に繰り返され、結果はAWRスナップショットに取得されます。スナップショットで取得したデルタ値は、時間ごとの各統計に対する変更を示します。
統計的ベースラインは、通常、システムが最適なレベルで正常に動作している期間中に取得された統計的割合の集合です。ベースラインで取得された統計を、パフォーマンスが低下している期間に取得された統計と比較してパフォーマンスの問題を診断するには、統計的ベースラインを使用します。これにより、大幅に値が大きくなっていて問題の原因だと思われる特定の統計を識別できます。AWRは、AWRスナップショットのペアまたは範囲をベースラインとして指定して保存できるようにすることで、ベースライン・データの取得をサポートします。
一般的にメトリックは、累積的な統計における変化の割合です。この割合は、時間、トランザクション、データベース・コールなど、様々な単位に対して測定できます。たとえば、1秒当たりのデータベース・コールの数はメトリックです。メトリック値は、一部のV$
ビューに表示され、このビューに表示される値は、きわめて短い時間間隔(通常は60秒)での平均値です。最新のメトリック値の履歴は、V$
ビューを介して使用でき、データの一部はAWRスナップショットでも存続されます。
次の各項では、より効果的なデータベース統計の収集を可能にするOracle Databaseの様々な機能について説明します。
ノート:
-
プラガブル・データベース(PDB)とともにAWR機能を使用している場合には、データ可視性および権限の要件が異なります。AWR機能などの管理機能がマルチテナント・コンテナ・データベース(CDB)で機能する仕組みの詳細は、Oracle Multitenant管理者ガイドを参照してください。
-
この章に記載されているAWR機能を使用するには、Oracle Diagnostic Packのライセンスが必要です。
自動ワークロード・リポジトリ
AWRは、問題の検出および自己チューニングを目的として、パフォーマンス統計を収集、処理およびメンテナンスします。この収集されたデータは、メモリーとデータベースの両方に格納され、レポートおよびビューに表示されます。
AWRにより収集され処理される統計は、次のとおりです。
-
データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。
-
アクティビティの時間使用に基づく時間モデル統計。
V$SYS_TIME_MODEL
およびV$SESS_TIME_MODEL
ビューに表示されます。 -
V$SYSSTAT
およびV$SESSTAT
ビューで収集されるシステム統計とセッション統計の一部。 -
システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づきます。
-
アクティブ・セッション履歴(ASH)統計は、最新のセッション・アクティビティの履歴を表します
関連項目:
-
様々なタイプのデータベース統計の詳細は、「データベース統計について」を参照してください
-
V$SYS_TIME_MODEL
、V$SESS_TIME_MODEL
、V$SYSSTAT
およびV$SESSTAT
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
スナップショット
スナップショットは、自動データベース診断モニター(ADDM)によりパフォーマンスの比較に使用される、特定の期間の履歴データのセットです。デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はAWRに8日間保存されます。スナップショットの作成や、スナップショット保存期間の変更を手動で行うこともできますが、通常は必要ありません。
AWRは、スナップショット間の違いを比較し、システム負荷への影響に基づいて収集するSQL文を判別します。これにより、期間中に収集する必要のあるSQL文の数が減少します。スナップショットが作成されると、スナップショットに取得されたデータがADDMにより分析され、パフォーマンス分析が実行されます。
関連項目:
スナップショットの管理の詳細は、「スナップショットの管理」を参照してください
ベースライン
ベースラインは、パフォーマンス上の問題が発生したときに、他のスナップショットと比較するために保持されている特定期間のスナップショットのセットです。ベースラインに含まれるスナップショットはAWRの自動消去プロセスから除外され、無期限に保持されます。
使用可能なベースラインには、次の複数のタイプがあります。
固定ベースライン
固定ベースラインは、過去の指定時における、固定した連続的な期間に対応します。ベースラインは最適なレベルでのシステム動作を表す必要があるため、固定ベースラインを作成する前に、ベースラインとして選択する期間を慎重に検討してください。将来的に、このベースラインを、パフォーマンスの低下期間中に取得された別のベースラインまたはスナップショットと比較して、時間経過に沿ってパフォーマンスの低下を分析できます。
関連項目:
固定ベースラインの管理の詳細は、「ベースラインの管理」を参照してください
変動ウィンドウ・ベースライン
変動ウィンドウ・ベースラインは、AWR保存期間内に存在するすべてのAWRデータに対応します。これは、AWRの全保存期間におけるAWRデータを使用してメトリックしきい値を計算できるため、適応しきい値を使用する際に役立ちます。
Oracle Databaseでは、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値を使用する予定の場合は、しきい値を正確に計算するため、より長い変動ウィンドウ(30日など)を使用することを検討してください。変動ウィンドウ・ベースラインのサイズを変更するには、変動ウィンドウの日数を、AWR保存期間の日数以下の値に変更します。したがって、変動ウィンドウのサイズを拡張するには、先にAWR保存期間を適切に拡張しておく必要があります。
関連項目:
変動ウィンドウ・ベースラインのサイズ変更の詳細は、「デフォルトの変動ウィンドウ・ベースラインのサイズ変更」を参照してください
ベースライン・テンプレート
ベースライン・テンプレートを使用すると、将来の連続的な期間におけるベースラインを作成できます。ベースライン・テンプレートには、次の2つのタイプがあります。
関連項目:
ベースライン・テンプレートの管理の詳細は、「ベースライン・テンプレートの管理」を参照してください
単一ベースライン・テンプレート
単一ベースライン・テンプレートを使用すると、将来の単一の連続的な期間におけるベースラインを作成できます。これは、将来に取得する期間が前もってわかっている場合に便利です。たとえば、次の週末にスケジュールされているシステム・テストの最中にAWRデータを取得することが可能です。この場合、単一ベースライン・テンプレートを作成することで、テストが実行されたときに自動的にその期間を取得できます。
領域使用量
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の自己管理機能の大部分が動作しなくなります。また、スナップショットを手動で作成することもできません。このため、自動スナップショット収集を無効にしないことをお薦めします。
ノート:
Oracle Databaseは、デフォルトではSYSAUX
表領域を使用してAWRデータを格納します。
関連項目:
スナップショット間隔および保存期間のデフォルト値を変更する方法の詳細は、「スナップショット設定の変更」を参照してください
適応しきい値
適応しきい値を使用すると、管理オーバーヘッドを最小限に抑えながら、パフォーマンスの問題を監視および検出できます。適応しきい値は、変動ウィンドウ・ベースラインで取得されるメトリック値から導出された統計を使用して、システム・メトリックの警告しきい値とクリティカル・アラートしきい値を自動的に設定します。これらのしきい値の統計は週に1回再計算され、時間の経過とともに変化するシステムのパフォーマンスに応じて新しいしきい値になります。また、適応しきい値では、定期的なワークロードのパターンに基づいて1日または週の異なる時間帯の様々なしきい値を計算できます。
たとえば、多くのデータベースでは、日中のオンライン・トランザクション処理(OLTP)と夜間のバッチ処理をサポートしています。トランザクションごとのレスポンス時間のパフォーマンス・メトリックは、日中のOLTPパフォーマンスの低下の検出に役立ちます。ただし、有用なOLTPのしきい値は、長時間実行トランザクションが一般的なバッチ・ワークロードに対しては、通常は低すぎます。そのため、OLTPに適切なしきい値では、バッチ処理時に不適切なパフォーマンス・アラートが頻繁にトリガーされることがあります。適応しきい値は、このようなワークロードのパターンを検出し、日中や夜間用の様々なしきい値を自動的に設定できます。
適応しきい値には、次の2種類があります。
最大パーセントのしきい値
最大パーセントのしきい値は、変動ウィンドウ・ベースライン内のデータに関して観察された最大値の割合の倍数として計算されます。
最大パーセントのしきい値は、システムをピーク・ワークロードに対応するようサイジングし、現在のワークロード・ボリュームが以前の高い値に近づいているか、その値を超えているときにアラートを生成する必要がある場合に特に役立ちます。未知だが明確な制限値を持つメトリックは、このような設定の第一候補になります。たとえば、1秒当たりの生成REDOのメトリックは、通常、最大パーセントのしきい値に対する適切な候補になります。
重大レベルのしきい値
重大レベルのしきい値は、変動ウィンドウ・ベースライン内のデータに基づくしきい値を超える値が観察されることがどの程度異常かを表す統計の百分位数に設定されます。
重大レベルのしきい値は、システムが正常に機能しているときに統計的に安定した動作を示すメトリックでは非常に役立ちますが、パフォーマンスが低下している場合は大きく変化する可能性があります。たとえば、トランザクションごとのレスポンス時間のメトリックは、適切に調整された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を使用します。
関連項目:
-
変動ウィンドウ・ベースラインの詳細は、「変動ウィンドウ・ベースライン」を参照してください
-
ベースライン・メトリックの管理の詳細は、「ベースラインの管理」を参照してください
自動ワークロード・リポジトリの管理
自動ワークロード・リポジトリの有効化
AWRによる統計収集を有効化するには:
-
STATISTICS_LEVEL
パラメータをTYPICAL
またはALL
に設定します。このパラメータのデフォルト設定は
TYPICAL
です。
STATISTICS_LEVEL
をBASIC
に設定すると、AWRを含む多くのOracle Databaseの機能が無効になるため、この設定はお薦めしません。STATISTICS_LEVEL
をBASIC
に設定しても、DBMS_WORKLOAD_REPOSITORY
パッケージを使用すればAWR統計を手動で取得できます。ただし、セグメント統計やメモリー・アドバイザ情報など、多くのシステム統計のインメモリー収集が無効になるため、これらのスナップショットで取得された統計は不完全になる可能性があります。
関連項目:
STATISTICS_LEVEL
初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。
スナップショットの管理
デフォルトでは、1時間ごとにスナップショットが生成され、その統計はワークロード・リポジトリに8日間保存されます。必要な場合には、スナップショットを手動で作成または削除し、スナップショット設定を変更できます。
この項では、スナップショットの管理方法を説明しており、内容は次のとおりです。
関連項目:
スナップショットの詳細は、「スナップショット」を参照してください
スナップショットを管理するためのユーザー・インタフェース
スナップショットを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してスナップショットを管理してください。
Cloud Controlを使用できない場合、スナップショットは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
スナップショットの作成
デフォルトでは、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リファレンス』を参照してください
スナップショットの削除
デフォルトでは、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リファレンス』を参照してください
スナップショット設定の変更
スナップショットの生成のためにフラッシュする間隔、保存期間および上位SQLの数を調整できますが、これはOracle Database診断ツールの精度に影響する可能性があることに注意してください。
コマンドライン・インタフェースを使用したスナップショット設定の変更
スナップショット設定は、DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
プロシージャの次のパラメータを使用して変更できます。
パラメータ | 説明 |
---|---|
|
この設定は、データベースがスナップショットを自動的に生成する頻度に影響します。 |
|
この設定は、データベースがスナップショットをAWRに保存する期間に影響します。 |
|
この設定は、SQL基準(経過時間、CPU時間、解析コール、共有可能メモリーおよびバージョン・カウント)ごとにフラッシュする上位SQLの数に影響します。 この設定は、統計レベルまたはフラッシュ・レベルによる影響を受けず、AWR SQL収集のシステム・デフォルト動作より優先されます。この設定値を |
次の例は、DBMS_WORKLOAD_REPOSITORY.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.MODIFY_SNAPSHOT_SETTINGS
プロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。 -
DBA_HIST_WR_CONTROL
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
ベースラインの管理
Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。必要な場合には、ベースラインを手動で作成、削除または名前変更し、ベースラインしきい値の設定を表示できます。また、変動ウィンドウ・ベースラインのウィンドウ・サイズを手動で変更できます。
この項では、ベースラインの管理方法を説明しており、内容は次のとおりです。
関連項目:
ベースラインの詳細は、「ベースライン」を参照してください
ベースラインを管理するためのユーザー・インタフェース
ベースラインを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してベースラインを管理してください。
Cloud Controlを使用できない場合、ベースラインは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
関連項目:
-
Cloud Controlを使用したベースラインの管理については、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください
-
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
ベースラインの作成
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リファレンス』を参照してください
ベースラインの削除
ディスク領域を節約するには、使用されなくなったベースラインを定期的に削除することを検討してください。ベースラインに関連付けられたスナップショットは、ベースラインが明示的に削除されるか、ベースラインが期限切れになるまで無期限に保持されます。
コマンドライン・インタフェースを使用してベースラインを削除するには、次の例に示すように、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
に設定します。
ベースラインの名前変更
コマンドライン・インタフェースを使用してベースラインの名前を変更するには、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
に変更されます。
ベースライン・メトリックの表示
適応しきい値とともに使用する場合、ベースラインには、データベースでメトリックしきい値を計算する際に使用できる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パッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
デフォルトの変動ウィンドウ・ベースラインのサイズ変更
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パッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
ベースライン・テンプレートの管理
ベースライン・テンプレートを使用すると、将来の指定された期間を取得するベースラインを自動的に作成できます。この項では、ベースライン・テンプレートの管理方法を説明しており、内容は次のとおりです。
関連項目:
ベースライン・テンプレートの詳細は、「ベースライン・テンプレート」を参照してください
ベースライン・テンプレートを管理するためのユーザー・インタフェース
ベースライン・テンプレートを管理するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してベースライン・テンプレートを管理します。
Cloud Controlを使用できない場合、ベースライン・テンプレートは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
関連項目:
Cloud Controlを使用したベースライン・テンプレートの管理については、『Oracle Database 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日後に期限切れとなります。
繰返しベースライン・テンプレートの作成
繰返しベースライン・テンプレートを使用すると、将来の一定期間において特定の時間間隔で繰り返されるベースラインを自動的に作成できます。たとえば、繰返しベースライン・テンプレートを作成し、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日後に期限切れとなります。
ベースライン・テンプレートの削除
すでに使用されていないベースライン・テンプレートは、ディスク領域を節約するために定期的に削除できます。
コマンドラインを使用してベースライン・テンプレートを削除するには、次の例に示すように、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
ビューを使用して、既存のベースライン・テンプレートを確認します
別のシステムへの自動ワークロード・リポジトリ・データの転送
Oracle Databaseでは、システム間でAWRデータを転送できます。これは、別のシステムを使用してAWRデータの分析を実行し、本番システムのパフォーマンス分析によるオーバーヘッドを削減する場合に有効です。
システム間でAWRデータを転送するには、最初にソース・システムのデータベースからAWRデータをエクスポートし、次にそのデータをターゲット・システムのデータベースにインポートします。
この項では、次の項目について説明します。
AWRデータのエクスポート
awrextr.sql
スクリプトは、一定範囲のスナップショットに対応するAWRデータをデータベースからデータ・ポンプ・エクスポート・ファイルにエクスポートします。作成されたら、エクスポートしたAWRデータをインポートできる別のデータベースに、このダンプ・ファイルを転送できます。awrextr.sql
スクリプトを実行するには、SYS
ユーザーとしてデータベースに接続する必要があります。
AWRデータをエクスポートするには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrextr.sql
AWRスキーマのデータベースのリストが表示されます。
-
AWRデータをエクスポートするデータベースを指定します。
Enter value for db_id: 1377863381
この例では、
1377863381
というデータベース識別子を持つデータベースが指定されます。 -
すべてのスナップショットIDを表示する日数を指定します。
Enter value for num_days: 2
この例では、最近2日間に取得されたすべてのスナップショットが表示されます。
-
最初と最後のスナップショットIDを指定して、AWRデータをエクスポートするスナップショットの範囲を定義します。
Enter value for begin_snap: 30 Enter value for end_snap: 40
この例では、スナップショットID 30が最初のスナップショットとして指定され、スナップショットID 40が最後のスナップショットとして指定されます。
ディレクトリ・オブジェクトのリストが表示されます。
-
エクスポート・ダンプ・ファイルを保存するディレクトリを示すディレクトリ・オブジェクトを指定します。
Enter value for directory_name: DATA_PUMP_DIR
この例では、ディレクトリ
ORACLE_HOME/rdbms/log
を指すディレクトリ・オブジェクトDATA_PUMP_DIR
が指定されています。ORACLE_HOME
は/u01/app/oracle/product/database_release_number/dbhome_1
です。 -
エクスポート・ダンプ・ファイルの名前をファイル拡張子なしで指定します。デフォルトでは、ファイル拡張子
.dmp
が使用されます。Enter value for file_name: awrdata_30_40
この例では、
awrdata_30_40.dmp
という名前のエクスポート・ダンプ・ファイルが、ディレクトリ・オブジェクトDATA_PUMP_DIR
で指定されたディレクトリに作成されます。Dump file set for SYS.SYS_EXPORT_TABLE_01 is: /u01/app/oracle/product/database_release_number/dbhome_1/rdbms/log/awrdata_30_40.dmp Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 08:58:20
エクスポートする必要のあるAWRデータの分量によっては、AWRエクスポート操作の完了までにしばらく時間がかかる場合があります。ダンプ・ファイルが作成されたら、データ・ポンプを使用してそのファイルを別のシステムに転送できます。
関連項目:
データ・ポンプの使用については、『Oracle Databaseユーティリティ』を参照してください。
AWRデータのインポート
エクスポート・ダンプ・ファイルをターゲット・システムに転送したら、awrload.sql
スクリプトを使用してエクスポートされたAWRデータをインポートします。awrload.sql
スクリプトにより、スナップショット・データをデータ・ポンプ・ファイルからデータベースに転送するためのステージング・スキーマが作成されます。次に、データはステージング・スキーマから適切なAWR表に転送されます。awrload.sql
スクリプトを実行するには、SYS
ユーザーとしてデータベースに接続する必要があります。
AWRデータをインポートするには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrload.sql
ディレクトリ・オブジェクトのリストが表示されます。
-
エクスポート・ダンプ・ファイルが含まれるディレクトリを示すディレクトリ・オブジェクトを指定します。
Enter value for directory_name: DATA_PUMP_DIR
この例では、エクスポート・ダンプ・ファイルが存在するディレクトリを指すディレクトリ・オブジェクト
DATA_PUMP_DIR
が指定されています。 -
エクスポート・ダンプ・ファイルの名前をファイル拡張子なしで指定します。デフォルトでは、ファイル拡張子
.dmp
が使用されます。Enter value for file_name: awrdata_30_40
この例では、
awrdata_30_40.dmp
という名前のエクスポート・ダンプ・ファイルが選択されています。 -
AWRデータをインポートするステージング・スキーマの名前を指定します。
Enter value for schema_name: AWR_STAGE
この例では、
AWR_STAGE
という名前のステージング・スキーマが作成されます。 -
ステージング・スキーマのデフォルト表領域を指定します。
Enter value for default_tablespace: SYSAUX
この例では、
SYSAUX
表領域が指定されています。 -
ステージング・スキーマの一時表領域を指定します。
Enter value for temporary_tablespace: TEMP
この例では、
TEMP
表領域が指定されています。 -
最初にAWRデータが
AWR_STAGE
スキーマにインポートされ、次に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データのインポート後、ステージング・スキーマは自動的に削除されます。
自動ワークロード・リポジトリ・ビューの使用
通常は、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ビュー | 説明 |
---|---|
|
最新のシステム・アクティビティに関するインメモリー・アクティブ・セッション履歴の内容の履歴が表示されます。 |
|
システム上に収集されたベースラインに関する情報(各ベースラインの時間範囲やベースライン・タイプなど)が表示されます。 |
|
特定のベースラインに関する詳細情報が表示されます。 |
|
ベースラインを生成するためにシステムによって使用されるベースライン・テンプレートに関する情報が表示されます。 |
|
OLAPの時間統計など、システムの時間モデル統計の履歴が表示されます。 |
|
システム・メトリック値に関する履歴情報が表示されます。 |
|
長期(60秒)グループのシステム・メトリックのすべてのメトリック値について、統計サマリーの履歴が表示されます。 |
|
OLAPカーネル統計などのシステム統計の履歴が表示されます。 |
|
イベントの待機の合計に関する履歴情報が表示されます。 |
|
データベース環境に関する情報が表示されます。 |
|
各行に対応するキャッシュ・サイズの物理読取りの数の履歴予測が表示されます。 |
|
スナップショット時の各ディスパッチャ・プロセスの履歴情報が表示されます。 |
|
動的リマスタリング・プロセスに関する統計情報が表示されます。 |
|
ファイル・タイプと機能別に集計された履歴I/O統計が表示されます。 |
|
プラガブル・データベース(PDB)のリソース・マネージャ・メトリックに関する、過去1時間の履歴情報が表示されます。 |
|
コンシューマ・グループのリソース・マネージャ・メトリックに関する、過去1時間の履歴情報が表示されます。 |
|
共有サーバー・アクティビティ、一般的なキュー、およびディスパッチャ・キューなど、共有サーバーの履歴情報が表示されます。 |
|
システム内のスナップショットの情報が表示されます。 |
|
SQL実行計画が表示されます。 |
|
AWR制御用の設定が表示されます。 |
|
AWRの設定とメタデータが表示されます。 |
|
プロセス・タイプのCPUおよび待機時間が表示されます。 |
関連項目:
DBA_HIST
ビューの詳細は、Oracle Databaseリファレンスを参照してください
マルチテナント環境内の自動ワークロード・リポジトリの管理
集中化された自動ワークロード・リポジトリ(AWR)に、マルチテナント環境内のCDBおよびPDBに関連するパフォーマンス・データが格納されます。
CDBおよび個々のPDBでは、AWRデータを格納、表示および管理できます。CDBレベルまたはPDBレベルでAWRのスナップショットを取得できます。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントの改訂中は、従来の用語が残っている可能性があります。ほとんどの場合、「データベース」と「非CDB」は、コンテキストに応じて、CDBまたはPDBを意味します。アップグレードなど、一部のコンテキストでは、「非CDB」は以前のリリースの非CDBを意味します。
この項では、次の項目について説明します。
マルチテナント環境でのAWRデータのカテゴリ化
マルチテナント環境では、AWRデータが様々なカテゴリに分類されます。
カテゴリは次のとおりです。
-
一般AWRデータ
このデータはセキュリティには関係がありません。CDB内のすべてのテナントで安全に共有できます。このデータは、すべてのPDBからアクセスでき、CDBとPDBの両方のレベルのスナップショットで取得されます。一般的なAWRデータの例としては、統計、ラッチおよびパラメータの名前などがあります。
-
CDBのAWRデータ
このカテゴリには、CDB内のすべてのテナントのデータが集計されます。このデータにはデータベース全体のステータスが含まれており、CDB管理者にのみ有益です。このデータはCDBレベルのスナップショットでのみ取得されます。
-
個々のPDBのAWRデータ
このデータはCDB内の個々のPDBを記述しています。データベース全体のインスタンスに対する個々のPDBの貢献度を表すコンテナ固有データが表示されます。そのため、このデータはCDBとPDB両方の管理者に役立ちます。このデータは、CDBとPDBの両方のレベルのスナップショットで取得されます。
マルチテナント環境での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および(Oracle Database 23cでは)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');
-
スナップショット・データは、デフォルトではCDBおよびPDBの
SYSAUX
表領域に格納されます。Oracle Database 19c以降では、スナップショット設定を変更することで、CDBおよびPDBのスナップショット・データを格納する他の表領域を指定できます。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントの改訂中は、従来の用語が残っている可能性があります。ほとんどの場合、「データベース」と「非CDB」は、コンテキストに応じて、CDBまたはPDBを意味します。アップグレードなど、一部のコンテキストでは、「非CDB」は以前のリリースの非CDBを意味します。
関連項目:
-
PDBロックダウン・プロファイルの詳細は、Oracle Databaseセキュリティ・ガイドを参照してください
AWRデータのエクスポートおよびインポート
マルチテナント環境のCDBルートおよびPDBのAWRデータをエクスポートおよびインポートするプロセスは、非CDBのAWRデータをエクスポートおよびインポートするプロセスに似ています。
関連項目:
-
Oracle DatabaseからのAWRデータのエクスポートの詳細は、AWRデータのエクスポートを参照してください
-
Oracle DatabaseへのAWRデータのインポートの詳細は、AWRデータのインポートを参照してください
マルチテナント環境の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データにアクセスするためのビュー
ビュー | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
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を管理するための主なステップは、次のとおりです。
ノート:
ADG環境のAWRの構成を開始する前に、すべてのADGスタンバイ・データベースのデータベース・リンクが、ADGのデプロイ時にすでに構成されていることを確認してください。
リモート管理フレームワーク(RMF)の構成
リモート管理フレームワーク(RMF)は、Oracle Databaseのパフォーマンス統計(AWRデータ)を取得するためのアーキテクチャです。
ノート:
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トポロジを設定するためのステップは、次のとおりです。
-
トポロジに追加するデータベース・ノードを構成します。
-
トポロジを作成します。
-
トポロジにデータベース・ノードを登録します。
-
(オプション)トポロジ内のノード間のデータベース・リンクを登録します。この構成は、宛先が使用できなくなった場合に、宛先候補がデータベース・リンクを使用してトポロジ内の残りのノードに接続するために必要です。
RMFトポロジの設定の例
この例では、T
、S0
および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 */
/* 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ロール・トランジションが発生します。
ロールを変更する前、つまり、フェイルオーバーまたはスイッチオーバー・イベントが発生したために宛先候補を新しい宛先へと変更する前に、次の構成ステップを実行することをお薦めします。
-
ソースと宛先候補の間にデータベース・リンクを作成します。各ソースに次のプロシージャを実行して、すべてのソースにこれが構成されている必要があります。
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);
ノート:
ロールの変更時に予期しない問題が発生することを避けるために、トポロジ内のすべてのノード間にデータベース・リンクを作成しておくことをお薦めします。
-
宛先候補のAWRスナップショットを取得します。
ノート:
ロールの変更後に宛先候補のAWRレポートを生成するには、ロールの変更前に、宛先候補のスナップショットを少なくとも1つ取得します。
-
宛先候補とすべてのソースを再起動します。
後続の構成ステップを完了したら、宛先候補で次のプロシージャを実行して、ロールを変更できます。
SQL> EXEC DBMS_UMF.SWITCH_DESTINATION(topology name, force_switch=>FALSE);
ノート:
ロールの遷移期間にはソースのスナップショットを取得しないことをお薦めします。DBMS_UMF.SWITCH_DESTINATION
プロシージャを実行して、ロール変更プロセスが完了したら、ソースのスナップショットを取得できます。ロールの変更後にソースのAWRレポートを生成する場合は、ロールの変更後に取得されたスナップショットのみを選択する必要があります。
登録されたRMFトポロジの詳細の取得
次に説明するRMFビューには、マルチテナント環境に登録されているすべてのRMFトポロジの構成情報が表示されます。
表6-3 RMFビュー
RMFビュー | 説明 |
---|---|
|
マルチテナント環境に登録されたすべてのトポロジが表示されます。各トポロジには、トポロジ名、宛先ID、トポロジの状態があります。RMFを有効化するには、少なくとも1つのトポロジの状態が |
|
マルチテナント環境内のすべてのトポロジの、登録されたすべてのノードが表示されます。 |
|
マルチテナント環境内のすべてのトポロジの、登録されたすべてのデータベース・リンクが表示されます。 |
|
マルチテナント環境内のすべてのトポロジの、登録されたすべてのサービスが表示されます。 |
関連項目:
これらのRMFビューの詳細は、『Oracle Databaseリファレンス』を参照してください
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トポロジ名のパラメータを追加で取得します。
関連項目:
-
DBMS_WORKLOAD_REPOSITORY.CREATE_REMOTE_SNAPSHOT
APIの構文は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください。
リモート・スナップショットのベースラインの管理
リモート・スナップショットのベースラインを管理する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_DBID
とSOURCE_NAME
の列値が表示されます。
awrload.sqlスクリプトを使用したリモート・スナップショットのインポート
リモート・スナップショットをインポートするプロセスは、awrload.sql
スクリプトを使用したローカル・スナップショットのインポート(「AWRデータのインポート」の項を参照)と似ていますが、次の点が異なります。
-
インポート・ログ・ファイルのデフォルトのディレクトリはダンプ・ファイルと同じですが、インポート・ログ・ファイルには他の任意のディレクトリを指定できます。これは特に、ダンプ・ファイルが読取り専用ディレクトリに配置されている場合に便利です。
-
インポートするダンプ・ファイルの名前には、
.dmp
接尾辞を指定できます。 -
インポート・スクリプトは、ダンプ・ファイルにある
SOURCE_DBID
およびSOURCE_NAME
の列値を使用して、AWRのスナップショットを格納するために使用する正しい「マップ済データベースID」を判断します。
ノート:
スナップショットのインポート操作は、スナップショットのダンプが生成されたOracle Databaseのバージョンの影響を受けません。
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レポートの生成を参照してください。
自動ワークロード・リポジトリ・レポートの生成
AWRレポートは、2つのスナップショット(または2つの時点)の間に取得されたデータを示します。AWRレポートは複数のセクションに分割されています。レポートの内容には、選択した範囲のスナップショットに関するシステムのワークロード・プロファイルが含まれます。HTMLレポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。
ノート:
指定した範囲のスナップショットにワークロード・アクティビティのないデータベースに対してレポートを実行すると、一部のレポート統計について0より小さいか100を超えるパーセンテージが計算される場合があります。この結果は、その統計に意味のある値がないことを意味します。
この項では、AWRレポートの生成方法を説明しており、内容は次のとおりです。
AWRレポートを生成するためのユーザー・インタフェース
AWRレポートを生成するためのプライマリ・インタフェースは、Oracle Enterprise Manager Cloud Control (Cloud Control)です。可能な場合は、Cloud Controlを使用してAWRレポートを生成してください。
Cloud Controlを使用できない場合は、SQLスクリプトを実行してAWRレポートを生成します。これらのスクリプトを実行するには、DBAロールが必要です。
関連項目:
Cloud Controlを使用したAWRレポートの生成の詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください
コマンドライン・インタフェースを使用したAWRレポートの生成
この項では、コマンドライン・インタフェースでSQLスクリプトを実行し、AWRレポートを生成する方法を説明します。これらのスクリプトを実行するには、DBAロールが必要です。必要なAWRレポートを生成するための詳細なステップは、次の表で適切なタスクのリンクをクリックしてください。
表6-4 AWRレポートを生成するためのSQLスクリプト
タスク | SQLスクリプト | 説明 |
---|---|---|
|
ローカル・データベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
|
|
特定のデータベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
|
|
Oracle RAC環境におけるローカル・データベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
|
|
Oracle RAC環境における特定のデータベース・インスタンスの一定範囲のスナップショットIDの統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
|
|
ローカル・データベース・インスタンスの一定範囲のスナップショットIDについて、特定のSQL文の統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
|
|
特定のデータベース・インスタンスの一定範囲のスナップショットIDについて、特定のSQL文の統計を表示するAWRレポートをHTMLまたはテキスト形式で生成します。 |
ローカル・データベースのAWRレポートの生成
コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにAWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
-
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: text
この例では、テキスト形式のレポートが選択されます。
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
-
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_150_160
この例では、デフォルト名が使用され、
awrrpt_1_150_160
というAWRレポートが生成されます。
特定データベースのAWRレポートの生成
awrrpti.sql
SQLスクリプトでは、特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびインスタンスを指定できます。
コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにAWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrrpti.sql
-
レポートの形式として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
-
次のようにデータベース識別子(
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()
の値を使用します。
-
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
-
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_150_160
この例では、デフォルト名が使用され、
3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_1_150_160
というAWRレポートが生成されます。
Oracle RACにおけるローカル・データベースのAWRレポートの生成
awrgrpt.sql
SQLスクリプトでは、Oracle Real Application Clusters (Oracle RAC)環境における現在のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。
ノート:
HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、HTMLレポートを生成することをお薦めします。
コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにOracle RAC AWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgrpt.sql
-
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最終日に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
-
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_rac_150_160.html
この例では、デフォルト名が使用され、
awrrpt_rac_150_160.html
というAWRレポートが生成されます。
Oracle RACにおける特定データベースのAWRレポートの生成
awrgrpti.sql
SQLスクリプトでは、Oracle RAC環境で実行されている特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびデータベース・インスタンスのカンマ区切りのリストを指定できます。
ノート:
HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、HTMLレポートを生成することをお薦めします。
コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにOracle RAC AWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgrpti.sql
-
レポートの形式として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
-
データベース識別子(
dbid
)の値を入力します。Enter value for dbid: 3309173529 Using 3309173529 for database Id
-
レポートに含めるOracle RACインスタンスのインスタンス番号(
instance_numbers_or_all
)の値を入力します。Enter value for instance_numbers_or_all: 1,2
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
-
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_rac_150_160.html
この例では、デフォルト名が使用され、
3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_rac_150_160.html
というAWRレポートが生成されます。
ローカル・データベースにおけるSQL文のAWRレポートの生成
awrsqrpt.sql
SQLスクリプトでは、一定範囲のスナップショットIDにおける特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。SQL文のパフォーマンスを検査またはデバッグする場合にこのレポートを実行します。
コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスにSQL文のAWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
-
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 146 Enter value for end_snap: 147
この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。
-
特定のSQL文のSQL IDを指定して統計を表示します。
Enter value for sql_id: 2b064ybzkwf1y
この例では、
2b064ybzkwf1y
というSQL IDを持つSQL文が選択されます。 -
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_146_147.html
この例では、デフォルト名が使用され、
awrrpt_1_146_147
というAWRレポートが生成されます。
特定データベースにおけるSQL文のAWRレポートの生成
awrsqrpi.sql
SQLスクリプトでは、特定のデータベース・インスタンスを使用して、一定範囲のスナップショットIDにおける特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成対象となるデータベース識別子およびインスタンスを指定できます。このレポートは、特定のデータベースおよびインスタンスにおけるSQL文のパフォーマンスを調査またはデバッグする場合に実行します。
コマンドライン・インタフェースを使用して、特定のデータベース・インスタンスにSQL文のAWRレポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
-
レポートの形式として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
-
次のようにデータベース識別子(
dbid
)およびインスタンス番号(inst_num
)の値を入力します。Enter value for dbid: 3309173529 Using 3309173529 for database Id Enter value for inst_num: 1 Using 1 for instance number
-
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
-
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 146 Enter value for end_snap: 147
この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。
-
特定のSQL文のSQL IDを指定して統計を表示します。
Enter value for sql_id: 2b064ybzkwf1y
この例では、
2b064ybzkwf1y
というSQL IDを持つSQL文が選択されます。 -
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_146_147.html
この例では、デフォルト名が使用され、
3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_1_146_147
というAWRレポートが生成されます。
パフォーマンス・ハブ・アクティブ・レポートの生成
EMのパフォーマンス・ハブ機能では、指定した期間のすべてのパフォーマンス・データの統合ビューを示すアクティブ・レポートが提供されます。レポートは完全にインタラクティブです。この内容はHTMLファイルに保存され、このファイルはWebブラウザを使用してオフラインでアクセスできます。
関連項目:
EMのパフォーマンス・ハブ機能の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
この項では、パフォーマンス・ハブ・アクティブ・レポートの生成方法を説明しており、内容は次のとおりです。
パフォーマンス・ハブ・アクティブ・レポートの概要
パフォーマンス・ハブ・アクティブ・レポートを使用すると、指定した期間に使用可能なすべてのパフォーマンス・データが表示されます。期間に対してリアルタイム・データまたは履歴データのいずれを選択するかによって、パフォーマンス・ハブで使用可能なタブが異なります。リアルタイム・データを選択した場合、最後の時間のリアルタイム・データが表示されるため、より詳細なデータが表示されます。履歴データを選択した場合は、より詳細なデータが表示されますが、データ・ポイントは選択した期間の自動ワークロード・リポジトリ(AWR)の間隔に平均化されます。
この項では、パフォーマンス・ハブ・アクティブ・レポートについて説明しており、内容は次のとおりです。
パフォーマンス・ハブ・アクティブ・レポートのタブについて
パフォーマンス・ハブ・アクティブ・レポートには、様々なパフォーマンス領域に分類されたパフォーマンス・データを表示してナビゲートできるインタラクティブ・タブが含まれます。
パフォーマンス・ハブ・アクティブ・レポートに含まれるタブには次のものがあります。
-
サマリー
「サマリー」タブにはリソース使用量、平均アクティブ・セッションおよびロード・プロファイル情報などのシステム・パフォーマンスの概要が示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
アクティビティ
「アクティビティ」タブにはASH分析が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
ワークロード
「ワークロード」タブには、コール率、ログオン率および上位SQLなどのワークロード・プロファイルに関するメトリック情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
RAC
「RAC」タブには、受け取ったグローバル・キャッシュ・ブロック数および平均ブロック待機時間などのOracle RAC固有のメトリックが表示されます。このタブはOracle RAC環境でのみ使用できます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
監視対象SQL
「監視対象SQL」タブには、監視対象のSQL文に関する情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
ADDM
「ADDM」タブには、ADDM分析タスクとリアルタイムADDM分析レポートの情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
-
最新のADDM結果
「最新のADDM結果」タブには、過去5分間のシステム・パフォーマンスのリアルタイム分析が表示されます。このタブは、パフォーマンス・ハブ・アクティブ・レポートの指定期間が過去の時間内にある場合のみ使用できます。このタブはリアルタイム・データのみに使用できます。
-
データベース時間
「データベース時間」タブには、様々なメトリックのカテゴリ別の待機イベントが表示されます。このタブは履歴データのみに使用できます。
-
リソース
「リソース」タブには、オペレーティング・システムおよびI/Oの使用状況統計が表示されます。このタブは履歴データのみに使用できます。
-
システム統計
「システム統計」タブにはデータベースおよびシステム統計が表示されます。このタブは履歴データのみに使用できます。
パフォーマンス・ハブ・アクティブ・レポートのタイプについて
レポート・タイプを選択することで、パフォーマンス・ハブ・アクティブ・レポートの各タブ内に表示される詳細のレベルを選択できます。
パフォーマンス・ハブ・アクティブ・レポートに使用可能なレポート・タイプには次のものがあります。
-
基本
すべてのタブの基本情報のみがレポートに保存されます。
-
標準
基本レポート・タイプに保存された情報以外に、「監視対象SQL」タブに含まれた上位SQL文のSQL監視情報とADDMレポートがレポートに保存されます。
-
すべて
標準レポート・タイプに保存された情報以外に、「監視対象SQL」タブに含まれた全SQL文のSQL監視情報と、すべてのタブに対するすべての詳細レポートがレポートに保存されます。
パフォーマンス・ハブ・アクティブ・レポートを生成するためのコマンドライン・ユーザー・インタフェース
次のいずれかの方法でコマンドライン・インタフェースを使用して、パフォーマンス・ハブ・アクティブ・レポートを生成できます。
-
「SQLスクリプトを使用したパフォーマンス・ハブ・アクティブ・レポートの生成」の説明に従った、SQLスクリプトの使用。
-
『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』の説明に従った、
DBMS_PERF
パッケージの使用。
SQLスクリプトを使用したパフォーマンス・ハブ・アクティブ・レポートの生成
この項では、コマンドライン・インタフェースでperfhubrpt.sql
SQLスクリプトを実行して、パフォーマンス・ハブ・アクティブ・レポートを生成する方法を説明します。このスクリプトの実行にはDBAロールが必要です。
パフォーマンス・ハブ・アクティブ・レポートを生成するには:
-
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/perfhubrpt.sql
-
目的のレポート・タイプを指定します。
Please enter report type: typical
使用可能なレポート・タイプの詳細は、「パフォーマンス・ハブ・アクティブ・レポートのタイプについて」を参照してください。
-
使用するデータベースのデータベース識別子の値を入力します。
Please enter database ID: 3309173529
ローカル・データベースを使用する場合は、null値(デフォルト値)を入力します。ローカル・データベース以外のデータベースのデータベース識別子を指定する場合、パフォーマンス・ハブ・アクティブ・レポートはインポートされたAWRデータから生成されます。
-
使用するデータベース・インスタンスのインスタンス番号の値を入力します。
Please enter instance number: all instances
すべてのインスタンスを指定する場合は、
all instances
(デフォルト値)と入力します。 -
終了時間および開始時間を
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
-
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: my_perfhub_report.html
この例では、2014年4月3日の午後4時から午後5時までの指定期間について、データベースID値
3309173529
のすべてのデータベース・インスタンスでmy_perfhub_report
というパフォーマンス・ハブ・アクティブ・レポートが生成されます。
パフォーマンス・ワークロード分析
ワークロード分析
ワークロード分析は、特定のワークロードを固定またはローリング可能な別の参照と比較することで、ワークロードの問題を迅速に識別するツールです。分析自体は、2つの期間の比較など、1回かぎりの分析にすることも、様々な柔軟なパラメータを使用してスケジュールされた繰返しタスクにすることもできます。分析の期間は、「データの表示」ドロップダウンから選択され、デフォルトの範囲は「過去24時間」、「過去7日間」、「過去30日間」および「すべて」です。
スケジュール済分析
「ワークロード分析」ページのスケジュール済分析タブには、次の差異数を警告するカウンタを含む5つのボックスが表示されます:
- 変更されたワークロード
- 監視対象ワークロード
- 低下したメトリック
- 改善されたメトリック
- 未変更のメトリック
カウンタの概要は、ワークロードの変更が期間中にどのように改善したか、あるいは低下したかについてのインサイトを提供します。
スケジュール済分析の分析タスクの作成では、繰返しタスクに関する追加情報を指定する必要があります。次に、「ワークロードの取得」フォームで繰返し分析を確立するために必要な設定の一部(オプション)を示します。
- SQLチューニング・セット名の接頭辞
- AWRスナップショットを使用したSQL文のロード
- 開始時間と終了時間のカスタム時間範囲の指定
- 過去に作成されたスナップショットから、指定した時間数または日数単位で、最大7日間のみのクイック選択
- すべて取得
- 上位N件の取得
- フィルタ・オプション
- ワークロードの比較
- 後続の比較: ローリング参照を使用して比較するか、固定参照を使用して比較します
- オプションの初期参照ワークロード
- 比較メトリック(CPU時間、経過時間、バッファ読取り、ディスク読取り、ダイレクト書込み、物理I/O、オプティマイザ・コストなど)。
- しきい値の変更(%)
- コンシューマ・リソース・グループ
- パージ結果を保持する日数
-
スケジュール
-
タイムゾーン: 「ローカル」(アメリカ/デンバー)、「データベース」(GMT)または「UTC」
開始日: 日付フィールドを使用して「即時」または「後で」を指定します
終了日: 「なし」または指定日
繰返し間隔: 最初に単位を選択します。- (1-24)時間
- (1-7)日
- (1-4)週
- (1-12)月
繰返し: 指定日またはカスタム時間
-
分析タスクが作成されると、スケジュール済分析の下に表示されます。表内の分析名の横にある矢印は、そのスケジュール済分析が実行されたときに様々なインスタンスのリストに展開され、結果の比較レポート(またはワークロード分析レポート)にリンクします
1回かぎりの分析
「ワークロード分析」ページの1回かぎりの分析タブには、次の差異数を警告するカウンタを含む5つのボックスが表示されます:
- 差異のある分析
- 分析合計
- 低下したメトリック
- 改善されたメトリック
- 未変更のメトリック
カウンタの概要は、ワークロードの変更が期間中にどのように改善したか、あるいは低下したかについてのインサイトを提供します。
分析タスクの作成は、1回かぎりの分析の場合と同様です。タスクに必要なものは次のとおりです
-
タスクの一意の名前
-
名前で参照ワークロードを選択するか、検索します。
-
名前で比較済ワークロードを選択するか、検索します。
-
タスクには、1つ以上の比較メトリック(CPU時間、経過時間、バッファ読取り、ディスク読取り、ダイレクト書込み、物理I/O、オプティマイザ・コストなど)が必要です。
分析タスクが作成されると、1回かぎりの分析の下に表示されます。表内の分析名の横にある矢印は、そのスケジュール済分析が実行されたときに様々なインスタンスのリストに展開され、結果の比較レポート(またはワークロード分析レポート)にリンクします
ワークロード分析レポート
ワークロード分析レポートは、定期的に実行するか1回実行するかに関係なく、分析タスクの実行後に使用できます。各分析には独自のレポートがあります。
レポートの情報は、分析タスクの作成で設定した基準によって異なります。レポートには、参照または比較(あるいはその両方)に関するデータが含まれ、比較メトリック(CPU時間、経過時間、バッファ読取り、ディスク読取り、ダイレクト書込み、物理I/O、オプティマイザ・コストなど)を使用したサマリーが続きます。
「サマリー」領域には、たとえば、ワークロードへの影響が「全体」、共通SQL、改善されたSQL、低下したSQL、欠落しているSQLおよび新しいSQLごとにリストされます:
「ブレークダウン」領域には、次のような様々なパフォーマンス・トピックのグラフが表示されます:
- 「CPU時間」は、ワークロードの前後を含むグラフです。
- パフォーマンス別SQL文は、改善済、低下済、変更なし、欠落および新規カテゴリと、それらの数を示す棒グラフです。
- 計画変更別SQL文には、新規計画および同じ計画の影響が並べて表示されます。
ワークロードの影響別の上位SQL文領域は、次の各影響の表です:
- 影響
- SQL ID
- SQLテスト
- 計画変更
- ワークロードに対する最終の絶対的な影響(%)
- CPU時間変更(ミリ秒)