数据库快照是一个只读的静态的数据库。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 系统包的启用状态。
SELECT SF_CHECK_AWR_SYS;
如果没有开启,则在使用 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);