DM有类似于Oracle的AWR报告,这里将给大家介绍如何生成数据库快照以及AWR报告。本文演示环境:DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT,启用DM快照需要调用DBMS_WORKLOAD_REPOSITORY包(DM MPP环境下不支持DBMS_WORKLOAD_REPOSITORY包)
1.创建DBMS_WORKLOAD_REPOSITORY系统包。
SQL> call SP_INIT_AWR_SYS(1);
DMSQL executed successfully
used time: 647.666(ms). Execute id is 254.
2.启用状态检测。
SQL> SELECT SF_CHECK_AWR_SYS;
LINEID SF_CHECK_AWR_SYS
---------- ----------------
1 1
used time: 5.590(ms). Execute id is 255.
3.下面语句设置间隔为60分钟,也可以是其他值:
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(60);
DMSQL executed successfully
used time: 18.797(ms). Execute id is 256.
4.手动创建快照:
SQL> call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
DMSQL executed successfully
used time: 61.528(ms). Execute id is 258.
等待几分钟后再次执行
SQL> call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
DMSQL executed successfully
used time: 49.152(ms). Execute id is 259.
这里我们可以多执行几遍试试,创建几个不同的快照。
5.查看创建的快照信息,包括快照id:
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-02-04 18:25:32.000000 NULL 2020-02-04 18:28:35.586240 1
2 2 NULL 1 2020-02-04 18:25:32.000000 NULL 2020-02-04 18:31:21.207610 1
如果此时我们想知道,对应各个时点数据库的运行状况,我们可以利用DBMS_WORKLOAD_REPOSITORY包中的AWR_REPORT_HTML方法来生成HTML格式的AWR报表。
6.生成 snapshot 的 id 在 1-2 范围内的 AWR 分析报告的带 html 格式的内容。
SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
7.把snapshot的id在1-2范围内的AWR分析报告生成到/home/dmdba目录下的awr1_2.html文件内。
SQL> call sys.awr_report_html(1,2,'/home/dmdba','awr1_2.html');
DMSQL executed successfully
used time: 317.395(ms). Execute id is 260.
生成的报表格式如下
从AWR报告来说,熟悉Oracle的朋友基本上可以无缝衔接到DM数据库