文章目录
一、AWR的介绍
数据库快照是一个只读的静态的数据库。DM 快照功能是基于数据库实现的,每个快照是 基于数据库的只读镜像。通过检索快照,可以获取源数据库在快照创建时间点的相关数据信息。
为了方便管理自动工作集负载信息库 AWR(Automatic Workload Repository)的信息,系统为其所有重要统计信息和负载信息执行一次快照,并将这些快照存储在AWR 中。AWR功能默认是关闭的,如果需要开启,则调用DBMS_ WORKLOAD_REPOSITORY.AWR_SET_INTERVAL过程设置快照的间隔时间 DBMS_WORKLOAD_REPOSITORY 包还负责snapshot(快照)的管理。
DM数据库在创建该包时,默认创建一个名为SYSAUX的表空间,对应的数据文件为SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么SYSAUX表空间也对应地被删除。
DM MPP环境下不支持DBMS_WORKLOAD_REPOSITORY 包。
二、开启AWR的方法
1、创建DBMS_WORKLOAD_REPOSITORY 系统包
SP_INIT_AWR_SYS(1);
2、获得 DBMS_WORKLOAD_REPOSITORY 系统包的启用状态。
SELECT SF_CHECK_AWR_SYS;
返回值为1时,代表已启用
返回值为0时,代表未启用
3、设置时间间隔
下面语句设置间隔为60分钟,也可以是其他值,设置成功后,则可以等待设置的间隔时间后系统自动创建快照,快照id从 1开始递增;
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(60);
也可以修改snapshot的间隔时间,修改为30分钟、保留时间为1天
CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
查询设置后快照参数
SELECT * FROM SYS.WRM$_WR_CONTROL;
4、手动生成快照
除了自动生成快照的方法,还可以通过使用CREATE_SNAPSHOT进行手动生成快照
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
5、查看创建的快照信息
SELECT * FROM SYS.WRM$_SNAPSHOT;
6、生成AWR报告
把snapshot的id在1~2范围内的AWR分析报告生成到c盘awr1.html文件;
SYS.AWR_REPORT_HTML(1,2,‘C:’,‘AWR1.HTML’);
点击AWR1.html则可以观察到数据库的相关信息,可以进行下一步的性能分析;
三、关闭AWR的方法
1、删除snapshot
查询目前存在的snapshot
SELECT * FROM SYS.WRM$_SNAPSHOT;
删除id在1~3之间的 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(1,3);
2、清理全部snapshot
CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
查询目前存在的snapshot,已全部删除
SELECT * FROM SYS.WRM$_SNAPSHOT;
3、关闭AWR
SP_INIT_AWR_SYS(1);
关闭后可以发现SYSAUX表空间被自动删除