OracleAWR删除历史快照说明
测试时,发现无法产生新快照,查看系统时间为10月26,但是已经产生快照为12月1号了。
此时的解决办法,就是删除现有的快照。
转http://itlab.idcquan.com/Oracle/backup/947118_2.html
一。 AWR 概述
之前整理过一篇AWR 的说明的文档:
Oracle AWR(Automatic Workload Repository) 说明
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 from dba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------------
879543530 +00008 00:00:00.0
这个是我11g的库,显示为8天,如果是Oracle 10g,则会保留7天。
AWR 快照也可以从其他的数据库中导入,我们这里看一下:
SQL> select dbid, retention from dba_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 from dba_hist_wr_control;
DBID RETENTION
---------- --------------------
879543530 +00008 00:00:00.0
SQL> select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 879543530;
MIN(SNAP_ID)MAX(SNAP_ID)
------------------------
161 176
SQL> exec dbms_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掉。
OracleAWR删除历史快照说明的更多相关文章
- git 仓库中删除历史大文件
git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以下分几个步骤介绍如何减小.git文 ...
- Hive批量删除历史分区
批量删除历史分区和数据可以采用如下操作: -- 删除20180101之前的所有分区 alter table example_table_name drop if exists partition (d ...
- 删除历史日志的一个API
删除历史日志的一个API bool DeleteOldFiles(const char* strFolder, const char* strPrefix, bool is_recursion, UI ...
- Windows forfiles(删除历史文件)
200 ? "200px" : this.width)!important;} --> 介绍 forfiles是windows自带的一个批量删除命令,对于时间的判断是通过文件 ...
- Vertica删除历史分区数据
假设test用户下创建的t_jingyu表 vsql -Utest -wtestpwd create table t_jingyu( col1 int, col2 varchar, col3 time ...
- Jenkins 批量删除历史构建
在一次巡查 Jenkins 时,发现很多个项目的历史构建比较多,这些历史构建对于现在来说又没有什么用处,那么想把它删除,但是一个一个删除很累,毕竟总共加起来有上千个,历史构建,而且还不只是一个项目.那 ...
- linux删除历史操作命令
有时候在系统中做了任何操作,但不想被别人知道,毕竟系统别人都可以登入查看,那怎么把自己操作系统的历史命令删除而不让别人知晓呢? 在linux系统里一旦操作了任何命令,都会被记录下来,可以通过histo ...
- Git彻底删除历史提交记录的方法
有时候我们可能会遇到git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本.这个时候我们想将提交到代码库的记录删除,我们要怎么做呢? 首先,我们需要找到我们需要回滚到的提交点的hash,可以使 ...
- VM删除快照失败,磁盘空间不足,只是删除了快照名字(全网唯一解决办法)
原创: 删除之前的快照,发现只是把名字删除了, 看着这么多文件也不知道怎么删,一顿百度google也是没找到答案 于是就自己琢磨 因为删除快照的时候,是先把快照删除,然后删除无效的文件 所以先让这个盘 ...
随机推荐
- 阻塞方法与InterruptedException
什么是阻塞方法?为什么会抛出InterruptedException? 一般方法的完成只取决于它所要做的事情,以及是否有足够多可用的计算资源(CPU 周期和内存). 而阻塞方法的完成还取决于一些外部的 ...
- java实验一报告
北京电子科技学院(BESTI) 实 验 报 告 课程:Java 班级: 1352 姓名:黄晓妍 学号:20135227 成绩: 指导教师:娄嘉 ...
- 用“倍增法”求最近公共祖先(LCA)
1.最近公共祖先:对于有根树T的两个结点u.v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u.的祖先且x的深度尽可能大. 2.朴素算法:记录下每个节点的父亲,使节点u,v一步一步地向上找 ...
- LAMP服务器的搭建
LAMP是一组构建Web应用平台的开源软件解决方案,它是一个开源套件组合.其中L:linux,A :Apache HTTP服务器,M : MySQL或MariaDB,P : perl或Python.这 ...
- Pandas统计函数
统计方法有助于理解和分析数据的行为.现在我们将学习一些统计函数,可以将这些函数应用到Pandas的对象上. pct_change()函数 系列,DatFrames和Panel都有pct_change( ...
- scala学习手记27 - 下划线与参数
在Scala里,下划线(_)可以表示函数值的参数.如果某个参数在函数里仅使用一次,就可以用下划线表示.每次在函数里用下划线,都表示随后的参数. val arr = Array(1, 2, 3, 4, ...
- 源码安装LNMP与搭建Zabbix
系统环境:CentOS release 6.5 (Final) 搭建Zabbix 3.0对PHP环境要求>= 5.4 一.下载NMP的软件包: N:wget http://nginx.org/d ...
- Nginx+Tomcat+Redis实现集群搭建
背景: 最近几天一直在琢磨Nginx反向代理以及使用Redis保存session,因为本人对java开发比较熟悉,所以在闲暇之余将公司的一个系统在虚拟机上搭建一个集群.特此总结过程. 一.需要使用的一 ...
- python学习笔记(datetime、字符串转换)
datetime对象与字符串可以互相转化 代码如下: from datetime import datetime def datetime_string(time): return time.strf ...
- hdu 5975 Aninteresting game
Aninteresting game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...