测试时,发现无法产生新快照,查看系统时间为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掉。

最新文章

  1. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)
  2. BZOJ1691: [Usaco2007 Dec]挑剔的美食家
  3. 战胜忧虑<2>——忙碌可以消除忧虑
  4. SPOJ 422 Transposing is Even More Fun(polay计数)
  5. 【POJ】3294 Life Forms
  6. CSS规范 - 命名规则
  7. [C#] 如何截取完整的网页图片
  8. 三种ajax上传文件方法
  9. C#之FileInfo的简单操作
  10. 稀疏矩阵 part 5
  11. java基础 ----- 程序的调试
  12. 图->有向无环图->拓扑排序
  13. js跨域交互之jsonp - 看完就能让你了解jsonp原理 (原)
  14. ceph rgw multisite基本用法
  15. php里获取第一个中文首字母并排序
  16. USACO 1.3 Wormholes - 搜索
  17. 牛客练习赛3 B - 贝伦卡斯泰露
  18. jquery实现回车键触发事件
  19. 【BZOJ2588】Spoj 10628. Count on a tree 主席树+LCA
  20. Visual Studio 跨平台開發實戰(1) - Hello Xamarin! (转帖)

热门文章

  1. qt项目: error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1900”不匹配值“1800”
  2. 【原创】无线破解Aircrack-ng套件详解(一)--airmon-ng与airodump-ng
  3. [CF19E]Fairy
  4. Axis2创建WebService实例
  5. 使用js写的确认提交表单确认框
  6. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
  7. Word Search, 在矩阵中寻找字符串,回溯算法
  8. JNI简单HelloWorld
  9. yii2: oracle汉字占用字节长度
  10. ES6相关文章