近一段时间监控生产数据库的表空间使用情况,发现SYSAUX表空间非常大(17g之多),而且每天都有几十M的增长,看到此现象后,认为这很不正常,分析SYSAUX表空间那些segments占用空间比较大:

SELECT SUM(T.BYTES)/1024/1024 segments_SIZE,T.segment_name

FROM Dba_Segments t

WHERE t.tablespace_name='SYSAUX'

AND ROWNUM<21

GROUP BY T.segment_name ORDER BY 1 DESC;

segments_size

segment_name

10631.0625

WRH$_ACTIVE_SESSION_HISTORY

2683.0625

WRH$_ACTIVE_SESSION_HISTORY_PK

1026.0625

WRH$_LATCH_MISSES_SUMMARY_PK

730.0625

WRH$_LATCH_MISSES_SUMMARY

618.0625

WRH$_SQLSTAT

564.0625

WRH$_LATCH

496.9375

WRH$_LATCH_PK

490

I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST

471.8125

WRH$_SYSSTAT_PK

395

SYS_LOB0000009001C00038$$

378

WRI$_OPTSTAT_HISTGRM_HISTORY

371.5

WRH$_SEG_STAT

370.25

WRH$_PARAMETER_PK

305.125

WRH$_SYSSTAT

292.125

WRH$_PARAMETER

280

WRH$_SQL_PLAN

274

WRH$_SYSMETRIC_SUMMARY

268

SYS_LOB0000008995C00004$$

257.75

WRH$_SYSTEM_EVENT_PK

247

I_WRI$_OPTSTAT_H_ST

233.75

WRH$_SYSTEM_EVENT

205.4375

WRH$_SERVICE_STAT_PK

发现WRH$_ACTIVE_SESSION_HISTORY表以及其索引占据了绝大部分的空间,这个表是oracle 10g 用来存储AWR的相关信息,对应的视图是:dba_hist_active_sess_history                                                                                        注:oracle提供的dba_hist开头的视图中,都是通过wrh$ 开头的表,wrm$开头的表以及部分dba_hist开头的表关联出来的。

查看快照信息:

SELECT COUNT(*) FROM WRM$_SNAPSHOT;或者SELECT COUNT(*) FROM dba_hist_snapshot;

发现保存有25043个快照!

看看最旧的快照是什么时候的:

SELECT * FROM WRM$_SNAPSHOT t ORDER BY t.snap_id ASC;

发现相关的快照竟是两年前的!

查看此库关于awr的相关参数设置:

SELECT * FROM wrm$_wr_control;或者select a.snap_interval,a.retention,a.topnsql from dba_hist_wr_control a;

SNAP_INTERVAL

RETENTION

TOPNSQL

+00000 01:00:00.0

+00007 00:00:00.0

DEFAULT

保留历史快照的时间是7天,和oracle默认的是一致的,为什么数据库没有删除过期的快照信息?而且还发现所有历史的快照信息并不是连续的,难道这是oracle的bug,还是有人为的删除过历史的快照信息导致了oracle的bug?这个数据库原来是另外一个团队维护的,中间做过一次物理的迁移和升级,在他们手上还做了什么操作呢?一大堆的疑问。

看着sysaux表空间快要满了,只能先想办法先将此表的数据清理写,以降低sysaux表空间的大小。

通过参考metalink文章:WRH$_ACTIVE_SESSION_HISTORY Does Not Get Purged [ID 387914.1]select table_name,partition_name

from dba_tab_partitions

where table_name = 'WRH$_ACTIVE_SESSION_HISTORY';alter session set "_swrf_test_action" = 72;set serveroutput on

declare

CURSOR cur_part IS

SELECT partition_name from dba_tab_partitions

WHERE table_name = 'WRH$_ACTIVE_SESSION_HISTORY';

query1 varchar2(200);

query2 varchar2(200);

TYPE partrec IS RECORD (snapid number, dbid number);

TYPE partlist IS TABLE OF partrec;

Outlist partlist;

begin

dbms_output.put_line('PARTITION NAME SNAP_ID DBID');

dbms_output.put_line('--------------------------- ------- ----------');

for part in cur_part loop

query1 := 'select min(snap_id), dbid from sys.WRH$_ACTIVE_SESSION_HISTORY partition ('||part.partition_name||') group by dbid';

execute immediate query1 bulk collect into OutList;

if OutList.count > 0 then

for i in OutList.first..OutList.last loop

dbms_output.put_line(part.partition_name||' Min '||OutList(i).snapid||' '||OutList(i).dbid);

end loop;

end if;

query2 := 'select max(snap_id), dbid from sys.WRH$_ACTIVE_SESSION_HISTORY partition ('||part.partition_name||') group by dbid';

execute immediate query2 bulk collect into OutList;

if OutList.count > 0 then

for i in OutList.first..OutList.last loop

dbms_output.put_line(part.partition_name||' Max '||OutList(i).snapid||' '||OutList(i).dbid);

dbms_output.put_line('---');

end loop;

end if;

end loop;

end;

/DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(

low_snap_id IN NUMBER,

high_snap_id IN NUMBER

dbid IN NUMBER DEFAULT NULL);将WRH$_ACTIVE_SESSION_HISTORY的segment占用的大小缩小。

oracle 257,ORACLE 10g SYSAUX表空间快速增长之WRH$_ACTIVE_SESSION_HISTORY篇相关推荐

  1. oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇

    通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024  FROM gV$SYS ...

  2. oracle sysaux扩大,oracle 10g SYSAUX表空间快速增长之WRH$_SQL_PLAN篇

    通过分析oracle sysaux表空间下的各模块信息: SELECT t.OCCUPANT_NAME,SUM(t.SPACE_USAGE_KBYTES)/1024/1024 FROM gV$SYSA ...

  3. oracle之 SYSAUX表空间维护

    1.查询表空间使用率 SQL> set linesize 400 SQL> set pagesize 400 SQL> SELECT D.TABLESPACE_NAME 表空间名称, ...

  4. oracle sysaux表空间不足,sysaux 表空间不足问题处理

    sysaux 表空间不足问题处理 一现场,备份库alter 日志出现错误 ORA-1688: unable to extend table SYS.WRH$_SQLSTAT partition WRH ...

  5. oracle system和sysaux表空间清理和回收

    oracle system和sysaux表空间清理和回收   前几天和一个网友讨论了下SYSAUX表空间使用率过高的问题,今天有时间整理一下,正好我们的测试数据库也存在这个问题.本案例数据库版本为11 ...

  6. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  7. oracle system表空间扩容,Oracle 11g system表空间快速增长解决

    Oracle 11g SYSTEM表空间快速增长问题解决 一..查看SYSTEM表空间前9大的段 SQL> set lines 120 SQL> col owner for a30 SQL ...

  8. oracle 11g的audit导致system表空间快速增长的问题

    oracle 11g的audit导致system表空间快速增长的问题         分类:             oracle              2012-03-23 16:20     ...

  9. Oracle 扩展sysaux,oracle 清理SYSAUX表空间

    简介 oracle 清理SYSAUX表空间 处理思路 1.查询表空间使用情况1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17SELECT UPPER(F.TABLES ...

最新文章

  1. Docker初学1:初识Docker
  2. java requiredstringvalidator_如何访问自定义组件中的Validator.required
  3. 学习记录(一)之h5_canvas
  4. 经典C语言程序100例之二五
  5. android 评论输入框(PopupWindow)
  6. Python Data Science的多版本多环境管理工具Anaconda
  7. 构建简单的微服务架构
  8. [Reverse] - 百度杯”CTF比赛 2017 二月场-CrackMe-1
  9. 利用dao传值给mysql_koa+mysql+vue+socket.io全栈开发之数据访问篇
  10. 数据结构实验之数组一:矩阵转置
  11. 计算机主机名在哪里看win7,大师教您win7系统查看win7系统电脑主机名的图文步骤...
  12. Google Reader 使用技巧及OPML订阅源分享
  13. java 进度条 百分比_java怎么让进度条带百分数
  14. 第十二届noc网络机器人赛项成绩_2017年第15届中小学NOC活动全国决赛机器人超市购物赛项获奖结果...
  15. sql基础_SQL基础
  16. 夜深了 是时候爬个小黄图了
  17. (十八)师大放假了 - 7
  18. 看英语引出来的人生思考
  19. 数值计算方法——第一节方程的根的求解
  20. 黑客讲述:我如何用技术手段逼小偷把iPhone还回来

热门文章

  1. 我们是在搞学术,还是被学术搞?
  2. 基于PHP的图片共享网站设计,基于PHP实现的WEB图片共享系统(SQL数据库),毕业论文设计...
  3. impala的substr从第几位截到最后一位_【题解循环嵌套】书的最后一页(粉丝求助)...
  4. pom.xml中的dependencyManagement
  5. Nat. Mach. Intell.|从局部解释到全局理解的树模型
  6. 欧几里德结构数据与 非欧几里德结构数据
  7. LaTeX 表格旋转的设置
  8. java中形参可变的方法
  9. Case Study: 利用PHP获取关系型数据库中多张数据表的数据
  10. Linux 中多终端同步 history 记录