写在前面
大家在使用数据库的过程中,如果想对数据库在各个时点的参数进行监控,就需要用到数据库快照。数据库安装完成后,数据库快照功能默认是关闭的。数据库快照是一个只读的静态的数据库。DM快照功能是基于数据库实现的,每个快照是基于数据库的只读镜像。通过检索快照,可以获取源数据库在快照创建时间点的相关数据信息。本文就将给大家介绍如何生成数据库快照以及AWR报告
启用DM快照需要调用DBMS_WORKLOAD_REPOSITORY包
【注:DM MPP环境下不支持DBMS_WORKLOAD_REPOSITORY包】
用户在使用 DBMS_WORKLOAD_REPOSITORY 包之前,需要提前调用系统过程并设置间隔时间:
SP_INIT_AWR_SYS(1);
下面语句设置间隔为 10 分钟,也可以是其他值:
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
设置成功后,可以使用 CREATE_SNAPSHOT 手动创建快照,也可以等待设置的间隔时间后系统自动创建快照,快照 id 从 1 开始递增:
手动创建快照:
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
查看创建的快照信息,包括快照 id:
SELECT * FROM SYS.WRM$_SNAPSHOT;
查看 snapshot 的 id 在 1~2 范围内的 AWR 分析报告的带 html 格式的内容。然后复制到文本文件中,保存成 html 格式即可查看。
SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
把 snapshot 的 id 在 1~2 范围内的 AWR 分析报告生成到 c 盘 awr1.html 文件。
SYS.AWR_REPORT_HTML(1,2,'C:\','AWR1.HTML');
通过 DMBS_WORKLOAD_REPOSITORY 包还可以对快照本身做增删改操作。
例 1 删除 id 在 22~32 之间的 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(22,32);
例 2 修改 snapshot 的间隔时间为 30 分钟、保留时间为 1 天。
CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
查询设置后快照参数。
SELECT * FROM SYS.WRM$_WR_CONTROL;
例 3 创建一次 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
例 4 清理全部 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
例 5 设置 snapshot 的间隔为 10 分钟。
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
评论已关闭