DM达梦启用及收集AWR报告

1.创建DBMS_WORKLOAD_REPOSITORY系统包

  • 查看DBMS_WORKLOAD_REPOSITORY系统包启用状态
Plain 复制代码
SQL>   SELECT SF_CHECK_AWR_SYS;

LINEID     SF_CHECK_AWR_SYS
---------- ----------------
1          0

SF_CHECK_AWR_SYS 返回值

0:未启用;1:已启用

  • 删除DBMS_WORKLOAD_REPOSITORY系统包
Plain 复制代码
SQL> SP_INIT_AWR_SYS(0);
DMSQL executed successfully

SQL> SELECT SF_CHECK_AWR_SYS;

LINEID     SF_CHECK_AWR_SYS
---------- ----------------
1          0
  • 创建DBMS_WORKLOAD_REPOSITORY系统包
Plain 复制代码
SQL> SP_INIT_AWR_SYS(1);
DMSQL executed successfully
SQL> SELECT SF_CHECK_AWR_SYS;

LINEID     SF_CHECK_AWR_SYS
---------- ----------------
1          1

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

Plain 复制代码
SQL> select tablespace_name from dba_tablespaces;

LINEID     TABLESPACE_NAME
---------- ---------------
1          SYSTEM
2          ROLL
3          TEMP
4          MAIN
5          SYSAUX
6          MAIN

6 rows got

SQL> select * from SYS.WRM$_WR_CONTROL;

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

STATUS_FLA

AWR 状态(1:开启;0:关闭)

AWR 功能默认是关闭的,如果需要开启,则调用 DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL 过程设置快照的间隔时间。DBMS_WORKLOAD_REPOSITORY 包还负责 snapshot(快照)的管理。

2.开启AWR功能

  • 调用 DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL 过程设置快照的间隔时间

​ STATUS_FLA值为变为1。即为开启AWR功能。

Plain 复制代码
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
DMSQL executed successfully

SQL> select * from SYS.WRM$_WR_CONTROL;

LINEID     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

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 分钟。参数单位均为分钟。

Plain 复制代码
SQL>  CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
DMSQL executed successfully

SQL>  SELECT * FROM SYS.WRM$_WR_CONTROL;

LINEID     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快照

  • 手动创建快照:
Plain 复制代码
SQL> DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
DMSQL executed successfully

SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;

LINEID     SNAP_ID     DBID        INSTANCE_NUMBER STARTUP_TIME               BEGIN_INTERVAL_TIME END_INTERVAL_TIME          SNAP_LEVEL 
---------- ----------- ----------- --------------- -------------------------- ------------------- -------------------------- -----------
1          1           NULL        1               2025-01-14 11:32:07.000000 NULL                2025-01-15 18:16:25.000000 1
2          2           NULL        1               2025-01-14 11:32:07.000000 NULL                2025-01-15 18:19:13.000000 1

5.收集AWR报告

两种收集AWR方式

  • DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML

查看 snapshot 的 id 在 1~2 范围内的 AWR 分析报告的带 html 格式的内容。

然后复制到文本文件中,保存成 html 格式即可查看。

Plain 复制代码
SQL> set pages 5000
SQL> SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
  • SYS.AWR_REPORT_HTML(推荐,方便)

把 snapshot 的 id 在 1~2 范围内的 AWR 分析报告生成到/home/dmdba/DM_AWR_1_2.HTML 文件。

Plain 复制代码
SQL> SYS.AWR_REPORT_HTML(1,2,'/home/dmdba','dm_awr_1_2.html');
DMSQL executed successfully

6.清理AWR快照

  1. 过期快照定期删除

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

2.指定快照范围删除

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

Plain 复制代码
SQL> CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(1,2);
DMSQL executed successfully

上述删除快照的方式均会将待删除快照存入中间表 SYS.WRM_SNAPSHOT_D,并立即对SYS.WRM_SNAPSHOT 表中待删除快照的数据进行 DELETE。

每间隔 11min 会对中间表 SYS.WRM_SNAPSHOT_D中存储的快照ID对应的快照信息表中的分区子表进行DROP,且经过系统purge时间后对应空间会真正释放。DROP操作结束后将已删除的快照从中间SYS.WRM_SNAPSHOT_D 中进行 DELETE。

3.对全部快照进行删除

调用接口 AWR_CLEAR_HISTORY,对全部快照信息表先进行 TRUNCATE 操作释放空间,再对表进行 DROP 操作。删除后再执行对全部信息表的重建操作,同时对中间表 SYS.WRM_SNAPSHOT_D与SYS.WRM_SNAPSHOT 表进行数据清理。

SQL 复制代码
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
DMSQL executed successfully
SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;
no rows
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
DMSQL executed successfully
SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;
no rows
相关推荐
爱可生开源社区4 分钟前
ChatDBA 快速诊断 OceanBase 集群新租户数据同步异常
数据库
爱可生开源社区16 分钟前
如何准确获取 MySQL 主从延迟时间?
数据库
赵渝强老师17 分钟前
【赵渝强老师】达梦数据库的数据库对象
数据库·oracle
QX_hao18 分钟前
事务的四大特性(ACID)详解
linux·运维·数据库
星光不负赶路人!19 分钟前
【工作记录】Navicat连接数据库
数据库
Wo3Shi4七28 分钟前
MySQL JOIN 和 GROUP BY
数据库·后端
晚安日记wanna36 分钟前
有哪些方式优化慢 SQL?
数据库
笑远1 小时前
GaussDB 内存结构详解
数据库·gaussdb
椰椰椰耶1 小时前
【redis】主从复制:全量复制、部分复制、实时复制详解
数据库·redis·php
WIN赢1 小时前
【数据库相关MySql、Redis、MongoDB】
数据库·redis·mysql·mongodb