ITPub博客

首页 > Linux操作系统 > Linux操作系统 > AWR概述——删除SNAPSHOT

AWR概述——删除SNAPSHOT

原创 Linux操作系统 作者:yangtingkun 时间:2011-02-05 21:46:27 0 删除 编辑

前面介绍了如何迁移AWR数据,这里介绍如何删除不再需要的SNAPSHOT数据。

 

 

对于当前数据库生成的SNAPSHOT,是不需要手工处理的,和SNAPSHOT生成一样,Oracle在自动任务中会根据SNAPSHOT的保留期自动删除过期的快照信息。

SQL> select dbid, retention from dba_hist_wr_control;

      DBID RETENTION
---------- ---------------------------------------------------------------------------
3812548755 +00007 00:00:00.0
  96312462 +40150 00:00:00.0
3944144691 +40150 00:00:00.0

SQL> select dbid from v$database;

      DBID
----------
3812548755

通过dba_hist_wr_control视图可以查询数据库中不同DBID对应的保留期。对于当前数据库,保留期是7天,而对于利用AWR迁移导入的SNAPSHOT而言,保留期设置超过了100年,也就是说Oracle不会自动清除这些SNAPSHOT

如果修改对应DBID的保留期:

SQL> exec dbms_workload_repository.modify_snapshot_settings(1440, dbid => 96312462)

PL/SQL procedure successfully completed.

SQL> select dbid, retention from dba_hist_wr_control;

      DBID RETENTION
---------- ---------------------------------------------------------------------------
3812548755 +00007 00:00:00.0
  96312462 +00001 00:00:00.0
3944144691 +40150 00:00:00.0

但是测试发现,采用方法并不会导致Oracle自动清除导入的AWR快照数据。

那么只有使用dbms_workload_repository包来手工完成这个操作:

SQL> select min(snap_id), max(snap_id)
  2  from dba_hist_snapshot
  3  where dbid = 3944144691;

MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
       45189        47802

SQL> exec dbms_workload_repository.drop_snapshot_range(45189, 47802, 3944144691)

PL/SQL procedure successfully completed.

SQL> select * from dba_hist_snapshot where dbid = 3944144691;

no rows selected

这个操作很快可以完成,其实如果检查数据字典可以发现,Oracle仅仅修改了对应SNAPSHOT的状态,而并没有删除快照:

SQL> select dbid, status, count(*)
  2  from wrm$_snapshot
  3  group by dbid, status;

      DBID     STATUS   COUNT(*)
---------- ---------- ----------
3812548755          0         89
  96312462          0         50
3944144691          2       2614

而检查DBA_HIST_SNAPSHOT视图可以发现,这个视图的定义是只显示STATUS2的记录:

SQL> select text 
  2  from dba_views
  3  where view_name = 'DBA_HIST_SNAPSHOT';

TEXT
--------------------------------------------------------------------------------
select snap_id, dbid, instance_number, startup_time,
       begin_interval_time, end_interval_time,
       flush_elapsed, snap_level, error_count
from WRM$_SNAPSHOT
where status = 0

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-686819/,如需转载,请注明出处,否则将追究法律责任。

上一篇: AWR概述——导入
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1954
  • 访问量
    10638641