DM8 AWR报表生成
AWR介绍
AWR全称Automatic Workload Repository,自动负载信息库,是达梦数据库性能收集和分析工具,提供了一个时间段内整个系统的报表数据。数据库系统通过为其所有重要统计信息和负载信息执行一次快照,并将这些快照存储在AWR中。通过AWR报告,可以分析指定的时间段内数据库系统的性能。
DM 数据库在创建该包时,默认创建一个名为 SYSAUX 的表空间,对应的数据文件为SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么 SYSAUX 表空间也对应地被删除。
AWR报表生成步骤
1.创建DBMS_WORKLOAD_REPOSITORY系统包。
检查DBMS_WORKLOAD_REPOSITORY系统包是否已经创建,如果没有的话,则需要创建。
SQL> SELECT SF_CHECK_AWR_SYS;
LINEID SF_CHECK_AWR_SYS
---------- ----------------
1 0
used time: 28.962(ms). Execute id is 96.
通过查询,结果显示尚未创建,执行SP_INIT_AWR_SYS(1)过程。
SQL> call SP_INIT_AWR_SYS(1);
DMSQL executed successfully
used time: 00:00:05.972. Execute id is 97.
SQL> SELECT SF_CHECK_AWR_SYS;
LINEID SF_CHECK_AWR_SYS
---------- ----------------
1 1
used time: 708.100(ms). Execute id is 98.
再次查询,DBMS_WORKLOAD_REPOSITORY系统包已经成功创建。
2. 使用DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL过程设置快照生成时间间隔。
时间间隔单位为分钟,有效值范围为[10, 525600]。
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
DMSQL executed successfully
used time: 00:00:01.218. Execute id is 100.
3.手动生成快照
call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
4.查看快照信息
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
2020-11-08 19:21:53.000000
NULL
2020-11-08 22:15:09.000000
1
used time: 155.449(ms). Execute id is 104.
由于设置快照的时间间隔是10分钟,等待10分钟后,再次查看快照生成情况,已经自动生成一个快照了,当然也可以手动生成。
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
2020-11-08 19:21:53.000000
NULL
2020-11-08 22:15:09.000000
1
LINEID SNAP_ID DBID INSTANCE_NUMBER
---------- ----------- ----------- ---------------
STARTUP_TIME
----------------------------------------------------------------------------------------------------
BEGIN_INTERVAL_TIME
----------------------------------------------------------------------------------------------------
END_INTERVAL_TIME
----------------------------------------------------------------------------------------------------
SNAP_LEVEL
-----------
2 2 NULL 1
2020-11-08 19:21:53.000000
NULL
2020-11-08 22:20:19.000000
1
used time: 229.992(ms). Execute id is 106.
5.生成AWR报表
用户可以根据需要生成HTML或TXT格式的报表方便浏览。
用下面的语句生成的报表,只能在disql命令行中查看:
SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
而要生成文件,需要调用sys.awr_report_html过程。
SQL> CALL SYS.AWR_REPORT_HTML(1,2,'/dm8/','AWR1.HTML');
DMSQL executed successfully
used time: 795.007(ms). Execute id is 109.
生成的报表部分内容如下:
AWR报表提供的信息非常详细,对于数据库管理员了解数据库运行状态,查找故障点,性能分析非常有用。
6.使用MODIFY_SNAPSHOT_SETTINGS过程设置快照保留时间。
修改 snapshot 的间隔时间为 10 分钟、保留时间为 1 天。
SQL> CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,10);
DMSQL executed successfully
used time: 978.637(ms). Execute id is 111.
7.关闭awr功能
只需要设置快照间隔时间为0就行了
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(0);
DMSQL executed successfully
used time: 686.186(ms). Execute id is 112.
8. 清理全部 snapshot。
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
DMSQL executed successfully
used time: 00:00:01.144. Execute id is 114.
SQL> SELECT * FROM SYS.WRM$_SNAPSHOT;
no rows
used time: 59.548(ms). Execute id is 115.