awr数据不自动清理导致sysaux表空间持续增长

--11.2.0.4中有bug 14084247 会导致awr信息不自动清理,导致sysaux表空间持续增长

现象:

--sysaux表空间使用过高,其中大部分item属于 SM/AWR

SELECT OCCUPANT_NAME "Item",
       SPACE_USAGE_KBYTES / 1048576 "Space Used (GB)",
       SCHEMA_NAME "Schema",
       MOVE_PROCEDURE "Move Procedure"
  FROM V$SYSAUX_OCCUPANTS
 WHERE SPACE_USAGE_KBYTES > 1048576
 ORDER BY "Space Used (GB)" DESC;  
 
 Item    Space Used (GB)    Schema    Move Procedure
SM/AWR    4.84521484375    SYS    


--查询历史snap信息,snap_id是从1开始,没有清理过:
SELECT count(*),snap_id FROM sys.WRH$_ACTIVE_SESSION_HISTORY GROUP BY snap_id   ORDER BY snap_id

COUNT(*)    SNAP_ID
2    1
10    2
12    3
2    4
2   &

Oracle 10g 中,SYSAUX 表空间被设计为系统辅助表空间,用于存储除 SYSTEM 表空间之外的许多数据库组件数据,如 AWR 快照、Oracle Enterprise Manager (OEM) 数据等。尽管 SYSAUX 表空间数据文件已设置为自动扩展(autoextend),但在某些情况下,其自动扩展功能可能未按预期生效。 ### 原因分析 1. **磁盘空间足** 数据文件虽然启用了自动扩展,但若所在磁盘分区没有足够的可用空间,则无法继续增长。这种情况会直接导致自动扩展失败[^1]。 2. **MAXSIZE 参数限制** 如果在定义数据文件时指定了 `MAXSIZE` 参数,并且该值小于当前所需大小,则即使启用自动扩展也无法满足需求。例如: ```sql ALTER DATABASE DATAFILE '/u01/oradata/mydb/sysaux01.dbf' AUTOEXTEND ON MAXSIZE 5G; ``` 此语句设置了最大扩展上限为 5GB,一旦达到此限制,将无法再扩展[^2]。 3. **表空间碎片或对象膨胀** SYSAUX 表空间中可能存在大量临时性或历史性的数据对象(如 AWR 快照),这些对象未能及时清理,造成空间浪费并影响自动扩展行为。 4. **告警日志或跟踪文件提示错误** 在自动扩展失败时,Oracle 实例通常会在告警日志(alert log)中记录相关的错误信息,例如 ORA-01653 或 ORA-03297,这些信息可用于诊断问题。 ### 解决方案 1. **检查并释放磁盘空间** 确保数据文件所在的文件系统或卷组具有足够的空闲空间以支持自动扩展。可以使用以下命令检查磁盘空间: ```bash df -h /u01/oradata/mydb/ ``` 2. **调整 MAXSIZE 设置** 如果发现数据文件已经达到 `MAXSIZE` 上限,可以通过以下 SQL 语句修改该参数以允许更大的扩展: ```sql ALTER DATABASE DATAFILE '/u01/oradata/mydb/sysaux01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; ``` 3. **监控和清理 SYSAUX 表空间内容** 可通过查询 `V$SYSAUX_OCCUPANTS` 视图来查看 SYSAUX 表空间内各组件所占用的空间情况: ```sql SELECT occupant_name, schema_name, occupant_desc, space_usage_kbytes FROM v$sysaux_occupants ORDER BY space_usage_kbytes DESC; ``` 对于占用空间较大的组件(如 AWR 数据),可考虑定期清理旧快照: ```sql BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'AWR_PURGE_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 1, high_snap_id => 100); END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY;BYHOUR=2', enabled => TRUE ); END; / ``` 4. **手动增加数据文件大小** 若自动扩展仍存在问题,可考虑手动增加数据文件大小以缓解空间压力: ```sql ALTER DATABASE DATAFILE '/u01/oradata/mydb/sysaux01.dbf' RESIZE 10G; ``` 5. **检查告警日志** 查看 Oracle 告警日志,确认是否存在与自动扩展失败相关的错误信息。告警日志路径通常位于 `$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log`。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值