重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛

标题: 达梦8数据库如何获取AWR报告 [打印本页]

作者: 郑全    时间: 5 天前
标题: 达梦8数据库如何获取AWR报告
本帖最后由 郑全 于 2025-5-9 15:17 编辑

相信搞过ORACLE数据库的,一定对AWR不陌生,作为最像ORACLE的数据库,是否有AWR呢?
答案是肯定的。

下面以一个实例例子来演示

1.创建DBMS_WORKLOAD_REPOSITORY系统包
SQL> SELECT sf_check_awr_sys;

行号       SF_CHECK_AWR_SYS
---------- ----------------
1          0

已用时间: 1.575(毫秒). 执行号:601.

SF_CHECK_AWR_SYS 返回值

0:未启用;1:已启用


   发现默认是没有开启


   SQL>  SP_INIT_AWR_SYS(1);
DMSQL 过程已成功完成
已用时间: 00:00:02.351. 执行号:605.

SQL> SELECT SF_CHECK_AWR_SYS;

行号       SF_CHECK_AWR_SYS
---------- ----------------
1          1

已用时间: 0.379(毫秒). 执行号:606.

   用户在使用 DBMS_WORKLOAD_REPOSITORY 包之前,需要提前调用系统过程 SP_INIT_AWR_SYS(1)创建包。DM 数据库在创建该包时,默认创建一个名为 SYSAUX 的表空间,对应的数据文件为 SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么 SYSAUX 表空间也对应地被删除。
   SQL> select tablespace_name from dba_tablespaces;

行号       TABLESPACE_NAME
---------- ---------------
1          SYSTEM
2          ROLL
3          TEMP
4          MAIN
5          BOOKSHOP
6          DMHR
7          COMPANY
8          COMPANY1
9          SYSAUX
10         MAIN

10 rows got

已用时间: 9.522(毫秒). 执行号:607.

2.开启AWR功能

STATUS_FLA值为变为1。即为开启AWR功能。
  
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
DMSQL 过程已成功完成
已用时间: 174.919(毫秒). 执行号:608.
SQL> select * from SYS.WRM$_WR_CONTROL;

行号       DBID        SNAP_INTERVAL                             RETENTION                                TOPNSQL
---------- ----------- ----------------------------------------- ---------------------------------------- -----------
           STATUS_FLAG
           -----------
1          NULL        INTERVAL '0 0:10:0.0' DAY(5) TO SECOND(1) INTERVAL '8 0:0:0.0' DAY(5) TO SECOND(1) 30
           1


已用时间: 1.018(毫秒). 执行号:609.


AWR_INTERVAL

时间间隔。单位分钟,取值范围为 10~525600,缺省值为 60。参数为 0 时,关闭快照(关闭时参数值为 57816000 分钟(110 年),是一个无效的值)。

RETENTION

快照保留时间由快照信息管理表 WRM$_WR_CONTROL 中 RETENTION 列决定,RETENTION 列默认为 8 天,可以使用 MODIFY_SNAPSHOT_SETTINGS 接口进行修改。每次创建新的快照创建新的分区子表前对当前所有快照进行扫描,找到已过期的快照。


3.调整AWR快照保留时间(可选)

默认snapshot 的保留时间为 8 天、间隔时间为 60分钟。

修改 snapshot 的保留时间为 1 天(1440分钟)、间隔时间为 30 分钟。参数单位均为分钟。

SQL> CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);

DMSQL 过程已成功完成

已用时间: 13.287(毫秒). 执行号:610.

SQL> select * from SYS.WRM$_WR_CONTROL;


行号       DBID        SNAP_INTERVAL                             RETENTION                                TOPNSQL

---------- ----------- ----------------------------------------- ---------------------------------------- -----------

           STATUS_FLAG

           -----------

1          NULL        INTERVAL '0 0:30:0.0' DAY(5) TO SECOND(1) INTERVAL '1 0:0:0.0' DAY(5) TO SECOND(1) 30

           1


4.创建AWR快照[color=rgba(0, 0, 0, 0.75)]手动创建快照
SQL> DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
DMSQL 过程已成功完成
已用时间: 836.175(毫秒). 执行号:613.
SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;

行号       SNAP_ID     DBID        INSTANCE_NUMBER STARTUP_TIME               BEGIN_INTERVAL_TIME
---------- ----------- ----------- --------------- -------------------------- --------------------------
           END_INTERVAL_TIME          FLUSH_ELAPSED SNAP_LEVEL  STATUS      ERROR_COUNT BL_MOVED    SNAP_FLAG
           -------------------------- ------------- ----------- ----------- ----------- ----------- -----------
           SNAP_TIMEZONE                          BEGIN_INTERVAL_TIME_TZ            END_INTERVAL_TIME_TZ
           -------------------------------------- --------------------------------- ---------------------------------
1          1           NULL        1               2025-05-09 07:14:31.000000 2025-05-09 14:43:56.857000
           2025-05-09 14:43:57.688000 NULL          1           NULL        NULL        NULL        NULL
           INTERVAL '0 8:0:0' DAY(1) TO SECOND(0) 2025-05-09 14:43:56.857000 +08:00 2025-05-09 14:43:57.688000 +08:00


已用时间: 0.843(毫秒). 执行号:611.

SQL> DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

DMSQL 过程已成功完成

已用时间: 722.822(毫秒). 执行号:615.

SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;


行号       SNAP_ID     DBID        INSTANCE_NUMBER STARTUP_TIME               BEGIN_INTERVAL_TIME

---------- ----------- ----------- --------------- -------------------------- --------------------------

           END_INTERVAL_TIME          FLUSH_ELAPSED SNAP_LEVEL  STATUS      ERROR_COUNT BL_MOVED    SNAP_FLAG

           -------------------------- ------------- ----------- ----------- ----------- ----------- -----------

           SNAP_TIMEZONE                          BEGIN_INTERVAL_TIME_TZ            END_INTERVAL_TIME_TZ

           -------------------------------------- --------------------------------- ---------------------------------

1          1           NULL        1               2025-05-09 07:14:31.000000 2025-05-09 14:43:56.857000

           2025-05-09 14:43:57.688000 NULL          1           NULL        NULL        NULL        NULL

           INTERVAL '0 8:0:0' DAY(1) TO SECOND(0) 2025-05-09 14:43:56.857000 +08:00 2025-05-09 14:43:57.688000 +08:00



行号       SNAP_ID     DBID        INSTANCE_NUMBER STARTUP_TIME               BEGIN_INTERVAL_TIME

---------- ----------- ----------- --------------- -------------------------- --------------------------

           END_INTERVAL_TIME          FLUSH_ELAPSED SNAP_LEVEL  STATUS      ERROR_COUNT BL_MOVED    SNAP_FLAG

           -------------------------- ------------- ----------- ----------- ----------- ----------- -----------

           SNAP_TIMEZONE                          BEGIN_INTERVAL_TIME_TZ            END_INTERVAL_TIME_TZ

           -------------------------------------- --------------------------------- ---------------------------------

2          2           NULL        1               2025-05-09 07:14:31.000000 2025-05-09 14:44:28.514000

           2025-05-09 14:44:29.237000 NULL          1           NULL        NULL        NULL        NULL

           INTERVAL '0 8:0:0' DAY(1) TO SECOND(0) 2025-05-09 14:44:28.514000 +08:00 2025-05-09 14:44:29.237000 +08:00




已用时间: 0.499(毫秒). 执行号:616.

5.收集AWR报告
把 snapshot 的 id 在 1~2 范围内的 AWR 分析报告生成到d:\DM_AWR_1_2.HTML 文件。

SQL> SYS.AWR_REPORT_HTML(1,2,'d:\','dm_awr_1_2.html');
DMSQL 过程已成功完成
已用时间: 384.842(毫秒). 执行号:617.



6.清理AWR快照过期快照定期删除
快照保留时间由快照信息管理表 WRM$_WR_CONTROL 中 RETENTION 列决定,RETENTION 列默认为 8 天,可以使用 MODIFY_SNAPSHOT_SETTINGS 接口进行修改。每次创建新的快照创建新的分区子表前对当前所有快照进行扫描,找到已过期的快照。

2.指定快照范围删除

删除快照范围之前创建的 snapshot

SQL> CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(1,2);DMSQL executed successfully3.对全部快照进行删除SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();DMSQL executed successfullySQL> SELECT * FROM SYS.WRM$_SNAPSHOT;no rows






4.查看AWR报告
60442681daa8c79e30.png
登录/注册后可看大图