SYSAUX表空间满的解决方法

转载自:https://www.cnblogs.com/yiyuf/p/4284448.html

step1.  确认到底是哪个段占用了sysaux空间:

select segment_name,sum(bytes)/1024/1024 from dba_segments where tablespace_name=‘SYSAUX‘ group by segment_name order by 2 desc

SEGMENT_NAME               SUM(BYTES)/1024/1024
WRH$_ACTIVE_SESSION_HISTORY     7360.375
WRH$_ACTIVE_SESSION_HISTORY_PK   1400.257

从上面看就是ASH(v$active_session_history)历史记录没有清理造成

step2. 检查有多少条无效记录:

SQL> SELECT COUNT(1) Orphaned_ASH_Rows
 FROM wrh$_active_session_history a
 WHERE NOT EXISTS
 (SELECT 1
 FROM wrm$_snapshot
 WHERE snap_id = a.snap_id
 AND dbid = a.dbid
 AND instance_number = a.instance_number
 );

ORPHANED_ASH_ROWS
-----------------
23392228

step3.清楚多余记录,由于rows过多,清理速度有点慢。

SQL>DELETE FROM wrh$_active_session_history a
WHERE NOT EXISTS (SELECT 1
FROM wrm$_snapshot
WHERE snap_id = a.snap_id
AND dbid = a.dbid
AND instance_number = a.instance_number);

23392228 rows deleted.

SQL>commit;

期间需要注意归档日志的产生量,避免造成磁盘空间不足等麻烦。同时可以适当的多添加几组redolog来加速delete操作。

step4. shrink tablespace

alter table WRH$_ACTIVE_SESSION_HISTORY shrink space;

step5. re-check

column OCCUPANT_NAME format a15
SELECT occupant_name,
occupant_desc,
space_usage_kbytes
FROM v$sysaux_occupants
WHERE occupant_name LIKE ‘%AWR%‘;

SELECT PARTITION_NAME FROM DBA_IND_PARTITIONS WHERE INDEX_NAME=‘WRH$_ACTIVE_SESSION_HISTORY_PK‘;

PARTITION_NAME
------------------------------
WRH$_EVENT_HISTO_MXDB_MXSN
WRH$_ACTIVE_2645903699_6157

step6 rebuild index

SQL> alter index sys.WRH$_ACTIVE_SESSION_HISTORY_PK rebuild partition WRH$_ACTIVE_2645903699_12505;

Index altered.

SQL> alter index sys.WRH$_ACTIVE_SESSION_HISTORY_PK rebuild partition WRH$_ACTIVE_2645903699_6157;

Index altered.

时间: 2024-07-29 21:47:47

SYSAUX表空间满的解决方法的相关文章

SYSAUX表空间满,

step1.  确认到底是哪个段占用了sysaux空间: select segment_name,sum(bytes)/1024/1024 from dba_segments where tablespace_name='SYSAUX' group by segment_name order by 2 desc SEGMENT_NAME SUM(BYTES)/1024/1024WRH$_ACTIVE_SESSION_HISTORY  7360.375WRH$_ACTIVE_SESSION_HIS

表空间满处理方法

1.查看表空间使用情况 SQL> SELECT /*+NO_MERGE(A) NO_MERGE(B)*/B.TABLESPACE_NAME 表空间名称, ROUND((B.BYTES/1024)/1024,2) 总空间大小MB, 2 NVL2(A.BYTES,ROUND((B.BYTES-NVL(A.BYTES,0))/1024/1024,2),B.BYTES) 已使用大小MB, 3 NVL2(A.BYTES,ROUND(NVL(A.BYTES,0)/1024/1024,2),0) 未使用大小M

不同类型的数据跨表空间迁移的解决办法

http://blog.csdn.net/passion_wang/article/details/6541369 Oracle10g数据跨表空间迁移 因某些开发人员由于对oracle数据库理解的不够深入,往往在建表的时候指定了当前用户非默认的表空间,这样就导致了在exp及imp等操作时候问题很多,因此需要将这些表及相关的数据迁移回当前用户的默认表空间里.Oracle10g数据数据库提供了一个Move命令可以把这样的数据对象进行跨表空间的迁移,也可以对含有BLOB.CLOB这样的二进制大字段的表

ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件

转自原文 ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件 当前系统的数据量越来越大的,昨天还运行正常的数据库,突然无法使用了.经过定位发现是"ORA-01653 " 即表空间满了,在这里简单记录下处理办法,长期来看Oracle是顶不住了,需要尽快切到Hadoop的Hbase里存储数据 参考如下SQL ----查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT

linux下安装Oracle时交换空间不足的解决方法

摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本文的第二种方法, 至于第一种方法应该是安装系统时设置交换区. 1.使用分区: 在安装OS时划分出专门的交换分区,空间大小要事先规划好,启动系统时自动进行mount. 这种方法只能在安装OS时设定,一旦设定好不容易改变,除非重装系统. 2.使用swapfile:(或者是整个空闲分区) 新建临时swap

关于STM8空间不足的解决方法

STM8虽然功能齐全,但是空间不足也是经常出来的情况.要么.text overflow,要么.bss overflow,让人头疼.这里把一些优化方案列出来,让空间得到充分利用: 1.在Project settings下,C Compiler,Optimizations选择Customize 重点是把Split Functions选上. 意思就是只编译用到的函数,不然编译器会很傻地把你用到的C文件里所有函数都编译进去,空间当然不够啦! 2.再到Linker下,Category选择Input 然后看

双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法

原文网址: http://www.lupaworld.com/thread-868507-1-1.html 问题描述: 双系统(win7+ubuntu)ubuntu系统提醒磁盘空间不足,又不想重装系统. 解决思路:第一步,在win7下划出一块可用空间:第二步,利用gparted软件将此可用空间划给ubuntu系统:第三步,最后利用grub修复技术修复损坏的grub. 具体步骤: 第一步:在win7下划出一块可用空间 登录win7系统--> (右击)计算机-->  属性  --> 存储 -

清理SYSAUX表空间的WRH$_LATCH_CHILDREN表

周六 被突然起来的短信 轰醒. 一看有63条短信. 都是来之与监控中的.有关表空间大小超过某个警戒值. 发现 SYSAUX表空间超过了15GB 通过下面代码查看SYSAUX表空间的功能占用情况 SELECT occupant_name "Item", space_usage_kbytes / 1048576 "Space Used (GB)", schema_name "Schema", move_procedure "Move Pro

SYSAUX表空间使用率高问题处理

SYSAUX表空间做为SYSTEM表空间的辅助表空间,主要存放EM相关的内容以及表统计信息,AWR快照,审计信息等,而如果SYSAUX表空间在默认条件下你如果不做任何配置,随着时间的推移,会膨胀的越来越大. 经过几次的不断扩展增加SYSAUX表空间,目前已经20G了,所以现是考虑减肥的时候了. 1. 查看表空间使用 SQL> Select Tablespace_Name, Sum_m, Max_m, Count_Blocks Free_Blk_Cnt, Sum_Free_m, To_Char(1