http://blog.csdn.net/tianlesoftware/article/details/17286523

一. AWR 概述

之前整理过一篇AWR 的说明的文档:

Oracle AWR(Automatic Workload Repository) 说明

原创链接【dave博客】:http://blog.csdn.net/tianlesoftware/article/details/4682300

从Oracle 10g 开始,Oracle 推出一个工具:AWR(Automatic Workload Repository),并建议用AWR 代替9i 的Statspack。

AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。

AWR的快照由一个MMON的后台进程及其从进程自动地每小时采集一次。为了节省空间,在Oracle 10g中快照会保留7天,11g的快照保留8天,超过的会自动删除,快照频率和保留时间都可以由用户修改。

AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为 SYSAUX 的特定表空间中的SYS模式下,并且以 WRM$_* 和 WRH$_* 的格式命名:

(1)WRM$_*类表存储元数据信息(如检查的数据库和采集的快照)

(2)WRH$_*类保存实际采集的统计数据。

H 代表“历史数据 (historical)”而 M 代表“元数据 (metadata)”。

在这些表上构建了几种带前缀 DBA_HIST_ 的视图,这些视图可以用来编写您自己的性能诊断工具。视图的名称直接与表相关;例如,视图 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上构建的。

二. AWR 快照的删除

2.1 为什么要删除AWR 快照?

默认情况下,对于数据库自身产生的AWR 报告,会保留7天或8天。

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------------

879543530 +00008 00:00:00.0

这个是我11g的库,显示为8天,如果是Oracle 10g,则会保留7天。

AWR 快照也可以从其他的数据库中导入,我们这里看一下:

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------

877621333 +40150 00:00:00.0

879543530 +00008 00:00:00.0

如果是从其他库导入的快照,在10g以后会保存110年(40150/365),这部分数据不会永久删除。

--AWR导出脚本:

SQL> @?/rdbms/admin/awrextr.sql

--AWR导入脚本:

SQL> @?/rdbms/admin/awrload.sql

另一个很重要的原因,就是有时候自动快照不能自动收集,而手工创建快照又可以成功,对于这种问题的解决方法就是把之前的快照清空掉。

2.2 删除AWR 快照数据

2.2.1 使用dbms_workload_repository 包来删除

2.2.1.1 删除本机的AWR 快照

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

---------- --------------------

879543530 +00008 00:00:00.0

SQL> selectmin(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 879543530;

MIN(SNAP_ID)MAX(SNAP_ID)

------------------------

161          176

SQL> execdbms_workload_repository.drop_snapshot_range(161, 176, 879543530)

PL/SQL proceduresuccessfully completed.

SQL> select *from dba_hist_snapshot where dbid = 879543530;

no rows selected

2.2.1.2 删除其他实例的快照

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

---------- ---------------------------------------------------------------------

877621333 +40150 00:00:00.0

879543530 +00008 00:00:00.0

SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

160          192

SQL> execdbms_workload_repository.drop_snapshot_range(160, 170, 877621333)

PL/SQL procedure successfully completed.

SQL> select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid =877621333;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

171          192

SQL>

删除成功。

2.2.2 使用dbms_swrf_internal包来删除

2.2.2.1 删除其他数据库导入的AWR

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------

877621333 +40150 00:00:00.0

879543530 +00008 00:00:00.0

SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

160          192

SQL> exec dbms_swrf_internal.unregister_database(877621333)

PL/SQL procedure successfully completed.

SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 877621333;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

SQL> select dbid, retention fromdba_hist_wr_control;

DBID RETENTION

-------------------------------------------------------------------------------

879543530 +00008 00:00:00.0

SQL>

dbms_swrf_internal.unregister_database 会把所有的快照直接干掉,与我们上节中的删除是不同的效果。

2.2.2.2 删除本机的AWR

我们之前把快照清空了,所以没有结果:

SQL> select * from dba_hist_snapshotwhere dbid = 879543530;

no rows selected

SQL> executedbms_workload_repository.create_snapshot();

PL/SQL procedure successfully completed.

SQL> executedbms_workload_repository.create_snapshot();

PL/SQL procedure successfully completed.

SQL> executedbms_workload_repository.create_snapshot();

PL/SQL procedure successfully completed.

SQL> executedbms_workload_repository.create_snapshot();

PL/SQL procedure successfully completed.

--现在又有快照了:

SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 879543530;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

177          180

--删除快照:

SQL> exec dbms_swrf_internal.unregister_database(879543530)

BEGINdbms_swrf_internal.unregister_database(879543530); END;

*

ERROR at line 1:

ORA-13521: Unregister operation on localDatabase id (879543530) not allowed

ORA-06512: at"SYS.DBMS_SWRF_INTERNAL", line 99

ORA-06512: at line 1

这里直接提示,dbms_swrf_internal.unregister_database不能对本地的数据库使用。所以如果本地的数据库,就只能使用dbms_workload_repository包了。

2.2.3 小结

dbms_workload_repository:

可以删除本地和其他数据库的快照,可以选择不同的快照来进行删除。

dbms_swrf_internal:

只能对其他数据库的快照来进行操作,会把整个快照unregister掉。

oracle awr 数据删除,Oracle AWR 删除历史快照 说明【转自dave偶像大神】相关推荐

  1. oracle数据库数据合并,Oracle合并数据

    本篇文章帮大家学习Oracle合并数据,包含了Oracle合并数据使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 在本教程中将学习如何使用Oracle MERGE语句来执 ...

  2. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  3. oracle表数据实例,Oracle创建数据表实例

    Oracle创建数据表实例. 1.创建数据表 --判断数据表是否存在,存在则删除 DECLARE IS_EXIST NUMBER; BEGIN SELECT COUNT(*) INTO IS_EXIS ...

  4. oracle导出数据视频教程,Oracle导入导出数据的几种方式

    oracle导入导出数据 1.导出dmp格式文件 --备份某几张表 !!!! exp smsc/smsc file=/data/oracle_bak/dmp/bakup0209_2.dmp table ...

  5. oracle提交数据按键,Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link)...

    Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link) 有没有办法只通过数据库链接而不是当前会话的数据提交在表上插入/更新的 ...

  6. oracle恢复删除数据1440,Oracle数据误删了怎么恢复

    1.最好一定要执行删除之前先备份数据,这是最安全的办法. 2.如果真的不小心误删了数据,还有最后一个办法,不过不一定能成功,下面是从网上找的方法,我是执行delete误删的,发现可以,其他方式没试过, ...

  7. oracle把数据分开,Oracle初学者入门指南-系统与用户数据分离

    Oracle初学者入门指南-系统与用户数据分离 今天一个朋友的数据库出现问题,请我帮忙查看,其实问题本身很简单: Fri Jun 19 10:30:00 2006 ORA-1653: unable t ...

  8. oracle 查询数据横向,Oracle 查询存储过程做横向报表的方法

    CREATE OR REPLACE PACKAGE BODY CHEN_TEST_PACKGE IS /************************************************ ...

  9. oracle修改数据高性能,oracle数据库的性能调整

    oracle是一个高性能数据库软件.用户可以通过参数的调整,达到性能的优化.性能优化主要分为两部分:一是数据库管理员通过对系统参数的调整达到优化的目的,二是开发人员通过对应用程序的优化达到调整的目的. ...

最新文章

  1. mysql useradd_useradd失败
  2. 逆矩阵 与行列式的关系
  3. 如何在JavaScript中将字符串转换为布尔值?
  4. linux shell 循环语句 for while until
  5. SAP Business Application Studio和Authentication Trust Management
  6. C# WPF MVVM模式下在主窗体显示子窗体并获取结果
  7. MongoDB中文社区年终盛典
  8. python辅助脚本教程_[Python] 用python做一个游戏辅助脚本,完整思路
  9. html如何设置hr 标签的线条粗细,设置hr标签的粗细
  10. 使用jdbc:nested exception is java.sql.SQLException: No value specified for parameter或bad SQL grammar
  11. 2013第四届蓝桥杯C/C++ B组省赛
  12. 微信公众号用户与网站用户的绑定方案
  13. 2022,博士们,又开始晒工资了
  14. vue的sync修饰符
  15. 钉钉网页版怎样适用于企业的个性化发展
  16. c语言画bmp五星红旗图片,asp画的五星红旗(bmp格式)
  17. Kali的安装、替换源及汉化
  18. ※※※※※ 488. 祖玛游戏
  19. 至强服务器系统,至强cpu服务器
  20. MISC-zip压缩包的总结

热门文章

  1. 命令行里对SAP Spartacus执行命令ng test core
  2. SAP Spartacus 读取payment detail数据的API
  3. Create new SAP DDL view and click finish in wizard
  4. SAP CRM settype COMM_PROD_VAR
  5. /ui2/nwbc_nav_tr /ui2/cl_nwbc_runtime35~check_navigation_tree_cache
  6. Why close date in S2 view is not displayed correctly after clicking it
  7. 通过调试获得SAP Fiori gateway系统的系统ID
  8. Appointment detail page loading never ends in Zeiss
  9. 使用action framework 实现order change时自动发送邮件
  10. SAP ABAP实用技巧介绍系列之 ABAP XSLT 定义变量