测试时,发现无法产生新快照,查看系统时间为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删除历史快照说明的更多相关文章

  1. git 仓库中删除历史大文件

    git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以下分几个步骤介绍如何减小.git文 ...

  2. Hive批量删除历史分区

    批量删除历史分区和数据可以采用如下操作: -- 删除20180101之前的所有分区 alter table example_table_name drop if exists partition (d ...

  3. 删除历史日志的一个API

    删除历史日志的一个API bool DeleteOldFiles(const char* strFolder, const char* strPrefix, bool is_recursion, UI ...

  4. Windows forfiles(删除历史文件)

    200 ? "200px" : this.width)!important;} --> 介绍 forfiles是windows自带的一个批量删除命令,对于时间的判断是通过文件 ...

  5. Vertica删除历史分区数据

    假设test用户下创建的t_jingyu表 vsql -Utest -wtestpwd create table t_jingyu( col1 int, col2 varchar, col3 time ...

  6. Jenkins 批量删除历史构建

    在一次巡查 Jenkins 时,发现很多个项目的历史构建比较多,这些历史构建对于现在来说又没有什么用处,那么想把它删除,但是一个一个删除很累,毕竟总共加起来有上千个,历史构建,而且还不只是一个项目.那 ...

  7. linux删除历史操作命令

    有时候在系统中做了任何操作,但不想被别人知道,毕竟系统别人都可以登入查看,那怎么把自己操作系统的历史命令删除而不让别人知晓呢? 在linux系统里一旦操作了任何命令,都会被记录下来,可以通过histo ...

  8. Git彻底删除历史提交记录的方法

    有时候我们可能会遇到git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本.这个时候我们想将提交到代码库的记录删除,我们要怎么做呢? 首先,我们需要找到我们需要回滚到的提交点的hash,可以使 ...

  9. VM删除快照失败,磁盘空间不足,只是删除了快照名字(全网唯一解决办法)

    原创: 删除之前的快照,发现只是把名字删除了, 看着这么多文件也不知道怎么删,一顿百度google也是没找到答案 于是就自己琢磨 因为删除快照的时候,是先把快照删除,然后删除无效的文件 所以先让这个盘 ...

随机推荐

  1. 高并发情况下分布式全局ID

    1.高并发情况下,生成分布式全局id策略2.利用全球唯一UUID生成订单号优缺点3.基于数据库自增或者序列生成订单号4.数据库集群如何考虑数据库自增唯一性5.基于Redis生成生成全局id策略6.Tw ...

  2. 通过代码来调用log4net写日志

    1.使用如下配置 http://www.cnblogs.com/chucklu/p/5404813.html 2.调用 string ConfigFile; private void LoadLogC ...

  3. [转载]织梦DEDE多选项筛选_联动筛选功能的实现_二次开发

    织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...

  4. Maven配置与创建

    1.下载Maven工具 从maven官网下载:https://maven.apache.org/download.cgi apache-maven-x.x.x-bin.zip ,解压到指定目录,例如D ...

  5. make install报错

    今天,在运行公司内核的机器上,编译标准内核,结果提示: 问题原因: 原来安装新内核的时候,会与原内核比较,如果缺少了某些模块,就会提示”ERROR: modinfo: could not find m ...

  6. ElasticSearch性能优化

    一.搜索效率优化 批量提交 当有大量数据提交的时候,建议采用批量提交. 比如在做 ELK 过程中 ,Logstash indexer 提交数据到 Elasticsearch 中 ,batch size ...

  7. Remove Duplicates from Sorted List ,除去链表中相邻的重复元素

    Remove Duplicates from Sorted List : Given a sorted linked list, delete all duplicates such that eac ...

  8. scala学习手记34 - trait方法的延迟绑定

    trait的方法的延迟绑定就是先混入的trait的方法会后调用.这一点从上一节的实例中也可以看出来. 下面再来看一个类似的例子: abstract class Writer { def write(m ...

  9. hive 导出数据到本地

    有时候需要将hive库中的部分数据导入至本地,这样子做可视化和小规模的数据挖掘实验都是比较方便的.数据导入至本地的HQL语法如下: INSERT OVERWRITE [LOCAL] DIRECTORY ...

  10. php将科学计算法得出的结果转换成原始数据

    由于php最大只支持显示 15位因的数据运算,大于15位的2数加减乘除的数据的结果,会直接用科学计数法显示, 但在现实生活中,科学计数法不利于普通人识别,所以,本函数将:科学计数法的出的结果转换成原始 ...