Oracle AWR概述:如何删除SNAPSHOT

前面介绍了如何迁移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视图可以发现,这个视图的定义是只显示STATUS为2的记录:

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

时间: 2025-01-30 13:16:42

Oracle AWR概述:如何删除SNAPSHOT的相关文章

Oracle AWR概述:导出数据

AWR的SNAP生成后,不一定要在原数据库上生成报告,可以利用AWR提供的导出.导入功能,将AWR数据迁移到测试数据库上进一步分析. AWR的导出并不复杂,利用有权限的用户调用$ORACLE_HOME/rdbms/admin/awrextr.sql脚本就可以了: SQL> @?/rdbms/admin/awrextr.sql ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~

Oracle AWR概述:导入数据

AWR的SNAP生成后,不一定要在原数据库上生成报告,可以利用AWR提供的导出.导入功能,将AWR数据迁移到测试数据库上进一步分析. 将上一篇文章导出的dmp文件拷贝到目标数据库的指定DIRECTORY目录下,就可以调用$ORACLE_HOME/rdbms/admin/awrload.sql脚本执行导入了: SQL> @?/rdbms/admin/awrload.sql ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Oracle AWR报告详细分析 (文档 ID 1523048.1)

Oracle AWR报告详细分析  (文档 ID 1523048.1) AWR 是 Oracle  10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库 AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分. WORKLOAD REPOSITORY report for  DB Name DB Id Instance Inst num Release RAC Host ICCI 13140

Oracle AWR特性描述

在对Oracle数据库做性能优化和调整的时候,整个数据库在运行期间的现状或者说真实状态只有在被完整记录下来,才是可查,可知,可比较,可推测或者说为未来优化调整提供支撑建议的基础.那在Oracle数据库中这个机制是由AWR来实现的.AWR是Oracle数据库用于收集,管理和维护数据库整个运行期间和性能相关统计数据的存储仓库,是Oracle数据库性能调整和优化的基础. 1. 什么是AWR AWR是Automatic Workload Repository的简称,中文叫着自动工作量资料档案库.既然是仓

Oracle AWR管理与维护

  AWR是Automatic Workload Repository的简称,中文叫着自动工作量资料档案库.对于AWR的管理,主要是针对快照和基线的管理而言.比如设定快照的间隔,删除快照,设定快照的保留时间.那对于基线而言则是基线的创建,删除,自动创建等.本文主要描述这2部分的内容. 一.快照管理   默认情况下,Oracle数据库每小时生成一次快照,并在工作负载库中保留8天的统计信息.必要时,你可以使用dbms_workload_repository程序手动创建,删除或者修改快照等.可以使用O

Oracle分析函数概述

Oracle分析函数概述 Oracle中的分析函数和聚合函数相似,但是对于每一组记录,无论 多少行,聚合函数只返回一行值,而分析函数对其中每一行记录都返回值.这一组记录,称 为分析函数的一个(WINDOW),窗口决定了要处理数据的范围,该范围在物理上可以由指定 的行数来确定,或者在逻辑上由相对偏移量来确定.分析函数总是在除了ORDER BY之外的其 他子句运算后才执行的,所以它不能出现在where.group by等子句中,只能出现在select列 表和order by子句中. 准备测试数据 在

plsql-求教:ORACLE物化视图无法删除

问题描述 求教:ORACLE物化视图无法删除 有一个物化视图,从3月份开始就不刷新了,想重新删除后再建,但是却怎么也删不掉 用DROP 语句一直在执行中,直接在PLSQL中删掉则PLSQL会奔溃... 以下是建视图语句: create materialized view P_EMP_INFO_VIEW refresh fast on demand with rowid start with sysdate next sysdate+1/288 as select USER_ID,USERNAME

【Oracle】 RAC 环境删除oracle 之一

oracle 11GR2提供了一个自动删除工具deinstall 在$ORACLE_HOME 的deinstall 目录下,使用此工具可以实现卸载oracle 软件,Clusterware 软件和数据库.卸载oracle 之前可以使用dbca 删除数据库,也可以不用删除,deinstall 工具会完成对数据库的删除工作,下面是在RAC环境下进行删除数据库的操作. 环境:两节点RAC:rac1,rac2 ,删除之前数据库未关闭~! oracle@rac1:/opt/rac/oracle/11.2.

【深度长文】循序渐进解读Oracle AWR性能分析报告

作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构.设计.开发经验.著有<SQL优化最佳实践>一书.   Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库.它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时)为其所有重要的统计信息和负载信息执行一次快照,并将快照存放入AWR中.这些信息