89-Oracle SYSAUX过大-业务卡顿修复

一、现场状态

业务侧的实例​histest 的 SYSAUX 表空间占用率已达100%(100GB未在扩展),导致数据库性能严重下降。根本原因为 ​AWR历史数据未按保留策略自动清理,导致相关表(WRH$%)的分区未正确拆分和清除,最终撑满表空间。导致数据库操作阻塞,尤其影响统计信息收集和AWR快照生成。应用响应超时,DBMS_STATS收集任务因无法写入统计信息失败,长期未处理可能导致执行计划劣化。

 再次提醒现场:必须定期检查其空间使用(DBA_TABLESPACES)及AWR保留策略(DBA_HIST_WR_CONTROL)。一旦占满,优先清理过期AWR数据(DBMS_WORKLOAD_REPOSITORY)或扩容,避免统计信息收集异常引发连锁反应。

二、处理步骤​

​1. 确认表空间使用情况​
-- 综合表空间分析脚本(支持所有表空间类型)包含临时表空间统计
SET PAGESIZE 999 LINESIZE 180
COL "表空间" FOR A20
COL "类型" FOR A10
COL "总大小(GB)" FOR 999,999.99
COL "已用(GB)" FOR 999,999.99
COL "空闲(GB)" FOR 999,999.99
COL "使用率%" FOR 999.99

SELECT 
    d.tablespace_name "表空间",
    d.contents "类型",
    ROUND(a.bytes/1024/1024/1024, 2) "总大小(GB)",
    ROUND((a.bytes - NVL(f.bytes, 0))/1024/1024/1024, 2) "已用(GB)",
    ROUND(NVL(f.bytes, 0)/1024/1024/1024, 2) "空闲(GB)",
    ROUND((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 2) "使用率%"
FROM sys.dba_tablespaces d
JOIN (
    SELECT tablespace_name, SUM(bytes) bytes
    FROM dba_data_files
    GROUP BY tablespace_name
) a ON d.tablespace_name = a.tablespace_name
LEFT JOIN (
    SELECT tablespace_name, SUM(bytes) bytes
    FROM dba_free_space
    GROUP BY tablespace_name
) f ON d.tablespace_name = f.tablespace_name
WHERE d.tablespace_name = 'SYSAUX'
UNION ALL
SELECT 
    d.tablespace_name "表空间",
    'TEMPORARY' "类型",
    ROUND(a.bytes/1024/1024/1024, 2) "总大小(GB)",
    ROUND(t.bytes_used/1024/1024/1024, 2) "已用(GB)",
    ROUND(a.bytes/1024/1024/1024 - t.bytes_used/1024/1024/1024, 2) "空闲(GB)",
    ROUND(t.bytes_used / a.bytes * 100, 2) "使用率%"
FROM sys.dba_tablespaces d
JOIN (
    SELECT tablespace_name, SUM(bytes) bytes
    FROM dba_temp_files
    GROUP BY tablespace_name
) a ON d.tablespace_name = a.tablespace_name
JOIN (
    SELECT tablespace_name, SUM(bytes_used) bytes_used
    FROM v$temp_extent_pool
    GROUP BY tablespace_name
) t ON d.tablespace_name = t.tablespace_name
WHERE d.tablespace_name = 'TEMP';
 2. 定位占用空间对象​ 
-- 检查SYSAUX空间占用Top对象(AWR相关表)
SELECT *
FROM (
  SELECT segment_name, segment_type, ROUND(SUM(bytes)/1024/1024, 2) size_gb
  FROM dba_segments
  WHERE tablespace_name = '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值