スナップショットの管理

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

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

関連項目:

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

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

スナップショットを管理するためのプライマリ・インタフェースは、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パッケージおよびタイプ・リファレンス』を参照してください

スナップショットの作成

デフォルトでは、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プロシージャの次のパラメータを使用して変更できます。

パラメータ 説明

INTERVAL

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

RETENTION

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

TOPNSQL

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

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

DBID

この設定では、このプロシージャによって設定が変更されるデータベース識別子を指定します。NULLの場合は、現在のデータベースのDBIDが変更されます。

TABLESPACE_NAME

この設定は、データベースによるスナップショット格納先に影響します。

AUTO_PURGE

この設定は、自動パージを実行するかどうかに影響します。

次の例は、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, tablespace_name from DBA_HIST_WR_CONTROL; 

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

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

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

関連項目: