ホームページ  >  記事  >  データベース  >  Oracle AWRの管理・保守について詳しく解説

Oracle AWRの管理・保守について詳しく解説

小云云
小云云オリジナル
2017-12-11 15:10:461656ブラウズ

AWRとはAutomatic Workload Repositoryの略で、中国語では自動ワークロードデータアーカイブと呼ばれます。 AWRの管理は主にスナップショットとベースラインの管理です。たとえば、スナップショット間隔の設定、スナップショットの削除、スナップショットの保持時間の設定などです。ベースラインの場合は、ベースラインの作成、削除、自動作成などです。この記事では主にこの 2 つのパートの内容について説明します。この記事では、主に Oracle AWR (Automatic Workload Data Archive) の管理とメンテナンスに関する情報をサンプル コードを通じて詳しく紹介します。学習や仕事に必要なすべての人の参考になります。以下のエディタで学習してみましょう。

1. スナップショット管理

デフォルトでは、Oracle データベースは 1 時間ごとにスナップショットを生成し、ワークロード ライブラリに 8 日間の統計情報を保持します。必要に応じて、dbms_workload_repository プログラムを使用して、スナップショットなどを手動で作成、削除、変更できます。スナップショットは、OEM および dbms_workload_repository パッケージを使用して管理できます。

1. スナップショットを手動で作成する

スナップショットを手動で作成するには、作成が完了すると、データ ディクショナリ DBA_HIST_SNAPSHOT 内のすべてのスナップショット関連情報を表示できます。

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
END;
/

SELECT snap_id,
   dbid,
   begin_interval_time,
   end_interval_time
FROM  dba_hist_snapshot
ORDER BY end_interval_time DESC;

 SNAP_ID  DBID BEGIN_INTERVAL_TIME   END_INTERVAL_TIME
---------- ---------- ---------------------------- --------------------------
  164 41924548 14-APR-17 09.38.19.467 AM 14-APR-17 10.51.21.886 AM
  163 41924548 14-APR-17 09.00.10.470 AM 14-APR-17 09.38.19.467 AM
  162 41924548 14-APR-17 08.00.07.242 AM 14-APR-17 09.00.10.470 AM
  161 41924548 14-APR-17 07.00.04.120 AM 14-APR-17 08.00.07.242 AM

2. スナップショットの削除

以下の処理では、snap_id が 162 から 164 までのスナップショットを削除します。 41924548 が指定されていない場合、現在のデフォルトのデータベースが使用されます

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 162,
       high_snap_id => 164, dbid => 41924548);
END;
/

3. スナップショット保持間隔を変更します

--查看当前的保留策略,如下,为缺省值,采集间隔为1小时,保留8天
SQL> select * from dba_hist_wr_control;

  DBID SNAP_INTERVAL  RETENTION   TOPNSQL
---------- -------------------- ------------------ ----------
 41924548 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT

--下面将其修改为保留5天,采集间隔为30分钟,topnsql为50条
BEGIN
 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 10*24*60,
     interval => 30, topnsql => 50, dbid => 41924548);
END;
/

--查看修改后的结果
SQL> select * from dba_hist_wr_control;

  DBID SNAP_INTERVAL  RETENTION   TOPNSQL
---------- -------------------- ------------------ ----------
 41924548 +00000 00:30:00.0 +00010 00:00:00.0 50

2. ベースライン管理

AWR ベースラインは手動または自動で作成および削除できます。作成と削除。自動ベースライン作成の場合、自動ベースライン作成を実現するには、最初にベースライン サンプルを作成する必要があります。主な説明は以下の通りです。

1. ベースラインの作成

ベースラインの作成はスナップショットに依存するため、作成前に必要な時間範囲の snap_id を取得する必要があります。これは、同時にデータ ディクショナリ DBA_HIST_SNAPSHOT をクエリすることで取得できます。ベースラインの作成が完了すると、データ ディクショナリ DBA_HIST_BASELINE 情報からベースライン関連情報をクエリできるようになります。

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 160,
     end_snap_id => 161, baseline_name => 'peak_baseline',
     dbid => 41924548, expiration => 10);
END;
/

SQL> SELECT baseline_id,
 2   baseline_name,
 3   baseline_type,
 4   expiration,
 5   creation_time
 6 FROM dba_hist_baseline;

BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_
----------- ----------------------- ------------- ---------- ---------
   1 peak_baseline   STATIC    10 14-APR-17
   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17

--基于特定时间创建基线,如下示例
BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (
  start_time  => TO_DATE ('2017-04-14 6:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  end_time  => TO_DATE ('2017-04-14 8:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  baseline_name => 'peak_baseline2',
  expiration  => 10);
END;
/

上記の例では、peak_baseline という名前のベースラインが 160 ~ 161 の範囲、保持期間 10 日間で作成されます。 10 日を超えると、ベースラインが削除され、対応するスナップショットも削除されます。有効期限が指定されている場合、ベースラインと対応するスナップショットは永続的に保持されます。

2. ベースラインの削除

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak_baseline',
     cascade => FALSE, dbid => 41924548);
END;
/

上記の例では、peak_baseline という名前のベースラインが削除され、cascade が false に指定されています。これは、ベースラインを削除しても、対応するスナップショットは削除されないことを意味します。

3. ベースラインの名前変更

BEGIN
 DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (
     old_baseline_name => 'peak_baseline',
     new_baseline_name => 'peak_mondays',
     dbid => 41924548);
END;
/

--验证结果
SQL> SELECT baseline_id,
 2   baseline_name,
 3   baseline_type,
 4   expiration,
 5   creation_time
 6 FROM dba_hist_baseline;

BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_
----------- ----------------------- ------------- ---------- ---------
   1 peak_mondays   STATIC    10 14-APR-17
   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17

上記の例では、ベースラインの名前をpeak_baselineからpeak_mondaysに変更します。

4. デフォルトの移動ウィンドウのベースライン保持値を変更します

--查看缺省的window_size
SELECT baseline_name, baseline_type, moving_window_size
FROM dba_hist_baseline
WHERE baseline_name = 'SYSTEM_MOVING_WINDOW';

BASELINE_NAME   BASELINE_TYPE MOVING_WINDOW_SIZE
------------------------ ------------- ------------------
SYSTEM_MOVING_WINDOW  MOVING_WINDOW     8

BEGIN
 DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (
     window_size => 7,
     dbid => 41924548);
END;
/

--window_size为天,只能够小于等于当前快照保留时间,否则报错,如下:

ERROR at line 1:
ORA-13541: system moving window baseline size (864000)
greater than retention (691200)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 686
ORA-06512: at line 2

5. ベースラインサンプルを管理する

単一のベースラインテンプレートを作成します

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  start_time  => TO_DATE ('2017-04-14 17:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  end_time  => TO_DATE ('2017-04-14 19:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  baseline_name => 'baseline_140414',
  template_name => 'template_140414',
  expiration  => 10,
  dbid   => 41924548);
END;
/

--如果创建基线样本时间小于当前时间,则收到如下错误
ERROR at line 1:
ORA-13537: invalid input for create baseline template (end_time, end_time is less than SYSDATE)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 768
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 818
ORA-06512: at line 2

上記の例では、単一のベースラインテンプレートを作成しました。ベースライン サンプルを指定し、対応する時間範囲、ベースラインの名前、保持期間などを指定します。その後、この時間範囲内の対応するスナップショットが保持され、このベースラインは、パフォーマンスの問題が発見された場合のその後の比較に使用できます。

繰り返しベースライン サンプルを作成する

繰り返しベースライン サンプルとは、この設定されたサンプルを参照して、将来の特定の時間範囲を参照してベースラインを自動的に作成します。たとえば、2017 年の毎週月曜日の 9:00 から 11:00 にベースラインが自動的に生成されるように、繰り返しのベースライン サンプルを作成できます。

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  day_of_week   => 'monday',
  hour_in_day   => 9,
  duration    => 2,
  expiration    => 30,
  start_time    => '2017-04-14 09:00:00',
  end_time    => '2017-12-31 11:00:00',
  baseline_name_prefix => 'baseline_2017_mondays_',
  template_name   => 'template_2017_mondays',
  dbid     => 41924548);
END;
/

-- Author  : Leshami
-- Blog  : http://blog.csdn.net/leshami
-- QQ(Weixin) : 645746311

--查看已经创建的基线样本
SQL> select t.template_name,
 2  t.template_type,
 3  t.start_time,
 4  t.end_time,
 5  t.day_of_week,
 6  t.hour_in_day,
 7  t.duration
 8 from dba_hist_baseline_template t;

TEMPLATE_NAME   TEMPLATE_ START_TIME   END_TIME   DAY_OF_WE HOUR_IN_DAY DURATION
--------------------- --------- ------------------- ------------------- --------- ----------- --------
template_140414  SINGLE 2017-04-14 17:00:00 2017-04-14 19:00:00
template_2017_mondays REPEATING 2017-04-14 09:00:00 2017-12-31 11:00:00 MONDAY    17  3

上記の例では、2017 年 4 月 14 日から毎週月曜日 (day_of_week) に繰り返しを作成しました。これにより、開始時刻が 9 時 (hour_in_day)、継続時間が 2 のベースラインが自動的に生成されます。時間 (期間)、有効期間は 30 日 (有効期限) です。ベースライン全体の開始時間と終了時間の範囲は、2017-04-14 09:00:00 から 2017-12-31 11:00:00 です。ベースラインもサンプルの名前とベースラインのプレフィックス名を指定します。

ベースラインサンプルの削除

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
     template_name => 'template_140414',
     dbid => 41924548);
END;
/

上記の例では、以前に作成したベースラインサンプルをサンプル名を指定して削除しています。

3. AWR 領域の占有

AWR スナップショットデータはすべて SYSAUX テーブル領域に埋められます。したがって、スナップショットを長期間保持したい場合は、より多くの SYSAUX 領域を占有する必要があることを意味します。同時に、awrinfo.sql を通じて SYSAUX を占有する各オブジェクトの詳細情報を表示できます。

SQL> @?/rdbms/admin/awrinfo.sql

This script will report general AWR information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Specify the Report File Name
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrinfo.txt. To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name:

Using the report name awrinfo.txt
No errors.     -- Author : Leshami
No errors.     -- Blog : http://blog.csdn.net/leshami
~~~~~~~~~~~~~~~   -- QQ  : 645746311 
AWR INFO Report
~~~~~~~~~~~~~~~

Report generated at
19:48:53 on Apr 14, 2017 ( Friday ) in Timezone +08:00


Warning: Non Default AWR Setting!
--------------------------------------------------------------------------------
Snapshot interval is 60 minutes and Retention is 8 days


  DB_ID DB Name HOST_PLATFORM   INST STARTUP_TIME  LAST_ASH_SID PAR
------------ ------- ----------------------- ---- ----------------- ------------ ---
* 41924548 ORA11G ydq - Linux x86 64-bit  1 15:18:26 (04/07)  617410 NO

########################################################
(I) AWR Snapshots Information
########################################################

*****************************************************
(1a) SYSAUX usage - Schema breakdown (dba_segments)
*****************************************************
|
| Total SYSAUX size      617.4 MB ( 2% of 32,768.0 MB MAX with AUTOEXTEND ON )
|
| Schema SYS   occupies   206.6 MB ( 33.5% )
| Schema XDB   occupies   157.7 MB ( 25.5% )
| Schema APEX_030200 occupies    85.4 MB ( 13.8% )
| Schema MDSYS  occupies    73.9 MB ( 12.0% )

## 4. AWRレポートの生成

--単一インスタンスでAWRレポートを生成

SQL> @?/rdbms/admin/awrrpt.sql

--RAC環境でAWRレポートを生成

SQL> @$ORACLE_HOME/rdbms/admin/awrgrpt.sql

-- AWR レポートを生成するデータベース インスタンスを指定します

SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql

-- SQL ステートメント AWR レポートを生成します

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

-- SQL ステートメント AWR レポートを生成するインスタンスを指定します

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

-- 比較 AWR レポートを生成します

SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql

-- RAC 環境で比較 AWR レポートを生成します

@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

5. AWR 関連の重要なビューとデータ ディクショナリ

v$active_session_hi物語:アクティブなデータベース セッションのアクティビティを 1 秒に 1 回サンプリングして表示します。

v$metric および v$metric_history:

システム パフォーマンスを追跡するためのメトリック データを提供します。ビューは、v$metricgroup ビュー

DBA_HIST_ACTIVE_SESS_HISTORY

で定義されるいくつかのグループに編成されます。

メモリ内のアクティブセッション履歴情報を表示

DBA_HIST_BASELINE
取得したベースラインの情報を表示

DBA_HIST_BASELINE_DETAILS

特定のベースラインの詳細情報を表示

DBA_HIST_BASELINE_TEMPLATE

ベースラインテンプレート関連情報

DBA_HIST_DATABASE_INSTANCE

データベース環境

DBA_HIST_DB_CACHE_ADVICE

履歴データに基づいて、異なるキャッシュ サイズでの物理読み取りを予測します

DBA_HIST_DISPATCHER

各スナップショットのスケジューリング プロセスに関する情報

DBA_HIST_DYN_REMASTER_STATS

リマスタリング処理

DBA_HIST_IOSTAT_DETAIL
を押す タイプまたは機能はありませんfound for 統計 履歴 I/O 情報

DBA_HIST_SHARED_SERVER_SUMMARY

共有サーバー統計

DBA_HIST_SNAPSHOT

スナップショット情報

DBA_HIST_SQL_PLAN

実行計画

DBA_ HIST_ WR_CONTROL

AWR 制御情報

関連推奨事項:

mysql および oracleデータベースの停止 開始されたバッチ ファイルを使用して

PDO が PDO を使用して Oracle データベースにアクセスする方法の詳細な説明

Oracle 文字列に数字と特殊記号が含まれる並べ替え問題の解決策

以上がOracle AWRの管理・保守について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。