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.