AWR对于熟悉Oracle数据库的dba们来说,太熟悉了,达梦数据库也是能够生成AWR报告为dba提供详细的数据库性能分析数据。达梦数据库的AWR功能默认是关闭的,如果要使用AWR功能,需要相关配置来开启该功能,现在我们就一起来详细配置并生成达梦数据库的AWR报告。
1、检查数据库DBMS_WORKLOAD_REPOSITORY系统包的启用状态(0:未启用;1:已启用)以及awr快照信息和表空间信息
SQL> select sf_check_awr_sys;
行号 SF_CHECK_AWR_SYS
---------- ----------------
1 0
已用时间: 13.203(毫秒). 执行号:4.
SQL>
SQL> select * from sys.wrm$_snapshot;
select * from sys.wrm$_snapshot;
第1 行附近出现错误[-2106]:无效的表或视图名[WRM$_SNAPSHOT].
已用时间: 0.320(毫秒). 执行号:0.
SQL>
SQL> select tablespace_name from dba_tablespaces;
行号 TABLESPACE_NAME
---------- ---------------
1 SYSTEM
2 ROLL
3 TEMP
4 MAIN
5 BOOKSHOP
6 DMHR
7 DM_TBS
8 DM_DBA
9 HMAIN
9 rows got
已用时间: 11.702(毫秒). 执行号:8.
SQL>
2、创建数据库DBMS_WORKLOAD_REPOSITORY系统包,如果已创建,则可省略。
SQL> SP_INIT_AWR_SYS(1);
DMSQL 过程已成功完成
已用时间: 709.576(毫秒). 执行号:9.
SQL> select sf_check_awr_sys;
行号 SF_CHECK_AWR_SYS
---------- ----------------
1 1
已用时间: 2.890(毫秒). 执行号:10.
SQL> select tablespace_name from dba_tablespaces;
行号 TABLESPACE_NAME
---------- ---------------
1 SYSTEM
2 ROLL
3 TEMP
4 MAIN
5 BOOKSHOP
6 DMHR
7 DM_TBS
8 DM_DBA
9 SYSAUX
10 HMAIN
10 rows got
已用时间: 0.889(毫秒). 执行号:11.
SQL> select * from sys.wrm$_snapshot;
未选定行
已用时间: 0.891(毫秒). 执行号:12.
SQL>
注意:SP_INIT_AWR_SYS(1)为创建DBMS_WORKLOAD_REPOSITORY,SP_INIT_AWR_SYS(0)则为关闭。细心的读者应该已经发现,表空间查询结果多了sysaux表空间,达梦数据库在创建DBMS_WORKLOAD_REPOSITORY包时,默认会创建一个名为SYSAUX的表空间,对应的数据文件为SYSAWR.DBF,用来存放该包生成的快照数据。同样,该包被删除时,SYSAUX表空间及数据文件也响应的会删除。达梦MPP环境不支持该包。
3、开启AWR功能
SQL> DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
DMSQL 过程已成功完成
已用时间: 5.632(毫秒). 执行号:13.
SQL>
注意:达梦数据库开启AWR功能,调用DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL过程设置快照间隔时间即可,快照间隔时间的有效范围为【10,525600】,默认为60,单位为分钟。关闭快照间隔值设定0即可。
4、创建awr报告(可以手动创建,也可以等待,数据库会按照间隔时间自动创建)
SQL> DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
DMSQL 过程已成功完成
已用时间: 303.903(毫秒). 执行号:15.
SQL>
SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;
行号 SNAP_ID DBID INSTANCE_NUMBER
---------- ----------- ----------- ---------------
STARTUP_TIME
-------------------------------------------------------------
-------------------------------
BEGIN_INTERVAL_TIME
-------------------------------------------------------------
-------------------------------
END_INTERVAL_TIME
-------------------------------------------------------------
-------------------------------
SNAP_LEVEL
-----------
1 1 NULL 1
2021-08-20 09:48:23.000000
NULL
2021-08-20 17:07:31.000000
1
已用时间: 0.691(毫秒). 执行号:16.
SQL>
可以看到,快照已经生成了。
5、生成awr报告,快照范围1-2,格式html
SQL> spool C:/dmdbms/dm_awr_1_2.html
SQL> SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
SQL> spool off;
注意:达梦数据库的awr报告并不像Oracle数据库一样,直接生成html文件,而是已结果的方式展示(执行结果此处省略),需要手动复制结果到文本内,修改为html文件属性,然后在用浏览器打开,我这里直接用spool的方式,将内容直接写入C:/dmdbms/dm_awr_1_2.html文件中。
6、用浏览器打开生成的awr报告
达梦数据库的awr报告跟Oracle差不多,内容还是相当丰富的,此处截取awr报告头部信息仅做展示,感兴趣的小伙伴可以动手试试生成一个完整的达梦数据库awr报告。