Oracle 12c SYSAUX表空间不足处理-清理audsys.cli_swp$a9b5f52c$1$1表
今天在检查一台测试环境的表空间时,发现SYSAUX的使用率已经达到99.91%
TABLESPACE_NAME FILES Freesize(MB) Usedsize(MB) Filesize(MB) Filemaxsize(MB) CurrentUsed(%) MaxUsed(%)
------------------------------ ---------- ------------ ------------ ------------ --------------- -------------- ----------
SYSAUX 2 28.3125 32939.671875 32967.984375 32967.984375 99.91412122840 99.9141212
清理AWR统计数据
- 首先查看是什么使用了空间
SELECT occupant_name "Item",
space_usage_kbytes / 1048576 "Space Used (GB)",
schema_name "Schema",
move_procedure "Move Procedure"
FROM v$sysaux_occupants
ORDER BY 2 desc;
Item Space Used (GB) Schema Move Procedure
---------------------------------------------------------------- --------------- ---------------------------------------------------------------- ----------------------------------------------------------------
SM/AWR 4.1289672851562 SYS
XDB 0.1832885742187 XDB XDB.DBMS_XDB.MOVEXDB_TABLESPACE
SM/OPTSTAT 0.1232299804687 SYS
SDO 0.0913696289062 MDSYS MDSYS.MOVE_SDO
- 既然显示为AWR占用最多,查看下统计数的保存天数
SQL> select dbms_stats.get_stats_history_retention from dual;
GET_STATS_HISTORY_RETENTION
---------------------------
31
SQL> exec dbms_stats.alter_stats_history_retention(7);
PL/SQL procedure successfully completed
- 因为数据库修改过一次dbid,实际存在两个部分的AWR信息
SQL> select dbid, min(snap_id),max(snap_id) from dba_hist_snapshot group by dbid;
DBID MIN(SNAP_ID) MAX(SNAP_ID)
---------- ------------ ------------
3187895652 10357 10495
2750849929 1 54
- 清空上一个dbid下的所有snapshot
SQL> desc dbms_workload_repository.drop_snapshot_range
Parameter Type Mode Default?
------------ ------ ---- --------
LOW_SNAP_ID NUMBER IN
HIGH_SNAP_ID NUMBER IN
DBID NUMBER IN Y
SQL> exec dbms_workload_repository.drop_snapshot_range(10357,10495,3187895652)
PL/SQL procedure successfully completed
SQL> select dbid, min(snap_id),max(snap_id) from dba_hist_snapshot group by dbid;
DBID MIN(SNAP_ID) MAX(SNAP_ID)
---------- ------------ ------------
2750849929 1 54
- 再删除历史统计数据
SQL> exec dbms_stats.purge_stats(sysdate-5);
PL/SQL procedure successfully completed
SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
GET_STATS_HISTORY_AVAILABILITY
--------------------------------------------------------------------------------
20-8月 -16 04.52.17.000000000 下午 +08:00
SQL> exec dbms_stats.purge_stats(sysdate-3);
PL/SQL procedure successfully completed
SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
GET_STATS_HISTORY_AVAILABILITY
--------------------------------------------------------------------------------
22-8月 -16 05.54.49.000000000 下午 +08:00
- 清除信息后,未见表空间占用减少,这时要考虑高水位的问题,对几张stat相关的表做一下表收缩。采样数据库都以WRM\(_\*和WRH\)_*的格式命名。
SQL> alter table WRH$_SQLSTAT shrink space;
表已更改。
SQL> alter table WRH$_SYSSTAT shrink space;
表已更改。
SQL> alter table WRH$_SEG_STAT shrink space;
表已更改。
SQL> alter table WRH$_LATCH shrink space;
表已更改。
当然并不是所有的表都支持shrink,参考此文。
这样操作之后,占用率降到96.7%。看来实际的大头并不是AWR信息。
处理LOB
- 使用dba_segments试图查询下这个表空间下哪个段占用最大的空间。
SQL> select segment_name, segment_type, sum(bytes)/1024/1024 from dba_segments where tablespace_name='SYSAUX' group by segment_name,segment_type order by sum(bytes) desc;
SEGMENT_NAME SEGMENT_TYPE SUM(BYTES)/1024/1024
-------------------------------------------------------------------------------- ------------------ --------------------
SYS_LOB0000091751C00014$$ LOB PARTITION 27593.625
WRH$_SYSSTAT_PK INDEX PARTITION 460.0625
WRH$_EVENT_HISTOGRAM_PK INDEX PARTITION 394.0625
WRH$_LATCH_PK INDEX PARTITION 380.0625
WRH$_EVENT_HISTOGRAM TABLE PARTITION 242.0625
WRH$_PARAMETER_PK INDEX PARTITION 210.0625
WRH$_ACTIVE_SESSION_HISTORY TABLE PARTITION 202.0625
WRH$_PARAMETER TABLE PARTITION 186.0625
- 查看LOB字段属于哪个表
SQL> select owner,table_name,column_name from all_lobs where segment_name='SYS_LOB0000091751C00014$$';
OWNER TABLE_NAME COLUMN_NAME
---------- -------------------- ---------------
AUDSYS CLI_SWP$a9b5f52c$1$1 LOG_PIECE
- 单独看这张表,竟然提示表不存在
SQL> desc audsys.cli_swp$a9b5f52c$1$1
ERROR:
ORA-04043: 对象 audsys.cli_swp$a9b5f52c$1$1 不存在
网络搜索原来是12C的新特性Unified Audit存放的审计数据
参考http://www.orafaq.com/node/2894,即时是sys用户也不能对这张表做DML操作。而里面的数据应该是通过unified_audit_trail视图也读取的
我在测试环境上使用select count(*) from unified_audit_trail;,过了14分钟也不能获得数据,最后以ORA-01652临时表空间用完退出。既然不能直接删除表的数据,Oracle提供了存储过程的方式清除这张审计表的数据
SQL> begin
2 dbms_audit_mgmt.clean_audit_trail(
3 audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
4 use_last_arch_timestamp => FALSE);
5 end;
6 /
PL/SQL 过程已成功完成。
删除后,SYSAUX的空间使用率一下手降到了12.5%。
进一步操作
按照Oracle文档,我们可以如此手工清除unified audit的数据,也可以定时进行删除,也可以关闭unified audit功能。
具体可以参考此文档
Oracle 12c SYSAUX表空间不足处理-清理audsys.cli_swp$a9b5f52c$1$1表的更多相关文章
- 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
查看Oracle数据库表空间大小(空闲.已使用),是否要增加表空间的数据文件 1.查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1 ...
- oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全
表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...
- Oracle 创建表空间及用户授权、dmp数据导入、表空间、用户删除
1.创建表空间 // 创建表空间 物理位置为'C:\app\admin\oradata\NETHRA\NETHRA.DBF',初始大小100M,当空间不足时自动扩展步长为10M create tabl ...
- ORACLE 清理SYSAUX表空间
在数据库检查中发现SYSAUX表空间占用过大,SYSAUX是ORACLE10G开始提供的功能,用于数据库为SYSTEM表空间减负. 用以下语句查出相应的表空间值 select a.tablespace ...
- SYSAUX表空间清理
最近zabbix告警某业务sysaux表空间使用率超过95%,使用sql查看sysaux表空间设置了32G,32G的表空间竟然使用了95%.一般来讲除开业务数据存放的表空间,DBA要着重关注SYSTE ...
- Oracle中暂时表空间的清理
作者:iamlaosong Oracle暂时表空间主要用来做查询和存放一些缓冲区数据. 暂时表空间消耗的主要原因是须要对查询的中间结果进行排序.暂时表空间的主要作用: 索引create或rebuild ...
- ArcSDE for Oracle表空间管理——暂时(TEMP)表空间
Oracle暂时表空间主要用来做查询和存放一些缓冲区数据.暂时表空间消耗的主要原因是须要对查询的中间结果进行排序. 重新启动数据库能够释放暂时表空间,假设不能重新启动实例,而一直保持问题sql语句的运 ...
- Oracle 12C 新特性之 恢复表
RMAN的表级和表分区级恢复应用场景:1.You need to recover a very small number of tables to a particular point in time ...
- 安装12C小问题及pdb表空间配置
安装12C小问题及pdb表空间配置 一.安装 1.RPM包 #安装12C需要安装的rpm包,官网搜索,做个记录 bc binutils-2.23.52.0.1-12.el7(x86_64) compa ...
随机推荐
- 后勤模块数据源的增量队列(Delta-Queue)三种更新模式(Update Mode)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C# 调用 Outlook发送邮件实例
添加引用:Microsoft.Office.Interop.Outlook using System; using System.Collections.Generic; using System.L ...
- socket详解(一)《转》
在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器 ...
- 使用Github管理项目代码的版本
作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在Git中并不存在主库这样的概 ...
- requestAnimationFrame 动画
requestAnimationFrame : 调用这个方法,就是告诉浏览器要执行动画了,从而浏览器自动计算动画时间间隔,从而在恰当的时候刷新UI, 动画更加平滑. 他的用法和setTimeout() ...
- urlencode 和 rawurlencode 的区别
urlencode和rawurlencode的区别urlencode和rawurlencode的区别 $str1 = urlencode(':/?= &#'); $str2 = rawurle ...
- 0020 Linux 文件操作命令
1. 创建文件 touch 文件名 2. 删除文件 rm 文件名 3. 复制文件 cp 源文件 目录 4.剪切文件 mv 源文件 目标文件 5.重命名文件 mv 源文件名 新文件名 6.改变文件权限 ...
- 【转】selenium之 定位以及切换frame
转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明 ...
- How do I install Adobe Flash on Debian Wheezy?
aptitude install flashplugin-nonfreeif fail Check your settings in /etc/apt/sources.list. If this is ...
- 读javascript高级程序设计16-几条函数小技巧
内容概要 作用域安全的构造函数 惰性载入函数 函数绑定 函数节流 一.作用域安全的构造函数 我们知道,当使用new操作符调用构造函数时,构造函数内部的this会指向新创建对象的实例. function ...