博客
关于我
WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
阅读量:743 次
发布时间:2019-03-22

本文共 996 字,大约阅读时间需要 3 分钟。

sysaux表空间使用增加问题解决方案

最近,我在监控数据库时发现了一个潜在的问题:sysaux表空间的使用量持续增加,导致表空间不足。这让我感到困惑,因为数据库运行状况看起来正常,没有异常的DML操作。

问题排查过程

  • 查看数据库版本

    首先,我运行了select * from v$version;,发现数据库版本为Oracle Database 12.2.0.1.0。这是一个支持新特性的版本,可能与新功能相关。

  • 分析sysaux占用

    我查看了v$sysaux_occupants,发现SM/ADVISOR排在第一位,占用量很大。接着,我检查了dba_segments,发现WRI$_ADV_OBJECTS占用了最大空间。

  • 关联到统计信息顾问

    我联想到Oracle 12.2引入的Optimizer Statistics Advisor功能,该功能定期生成统计信息,帮助优化数据库性能。这些统计信息可能在sysaux表空间中占用了大量空间。

  • 验证任务占用

    检查dba_advisor_objects,发现大量数据来自auto_stats_advisor_taskSYS_AUTO_SQL_TUNING_TASK两个任务。

  • 解决方案

  • 删除auto_stats_advisor_task

    为了减少sysaux占用,我决定删除auto_stats_advisor_task。使用dbms_stats.drop_advisor_task函数,并确保使用sysdba权限。

  • 迁移和重建数据

    由于相关数据仍在WRI$_ADV_OBJECTS,我采取了以下步骤:

    • 备份数据:使用CTAS复制数据到新表,排除AUTO_STATS_ADVISOR_TASK相关数据。
    • 清空旧表:执行truncate table
    • 重建索引:重建相关索引,确保数据结构的正常运行。
  • 禁用统计信息生成

    如果暂时不需要统计信息,可以禁用AUTO_STATS_ADVISOR_TASK,防止新的数据生成。

  • 参考文档

    通过以上步骤,我成功减少了sysaux表空间的占用,确保了数据库的稳定运行。

    转载地址:http://ttuwk.baihongyu.com/

    你可能感兴趣的文章
    Mysql面试题精选
    查看>>
    MySQL面试题集锦
    查看>>
    mysql面试题,存储引擎InnoDB和MyISAM
    查看>>
    mysql面试题:为什么MySQL单表不能超过2000W条数据?
    查看>>
    mysql面试题:创建索引时会不会锁表?
    查看>>
    mysql面试题:高度为3的B+树可以存放多少数据?
    查看>>
    mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
    查看>>
    mysql驱动、durid、mybatis之间的关系
    查看>>
    mysql驱动支持中文_mysql 驱动包-Go语言中文社区
    查看>>
    MySQL高可用之——keepalived+互为主从
    查看>>
    MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
    查看>>
    MySQL高可用解决方案详解
    查看>>
    MYSQL高可用集群MHA架构
    查看>>
    MySQL高级-MySQL并发参数调整
    查看>>
    MySQL高级-MySQL应用优化
    查看>>
    MySQL高级-MySQL查询缓存优化
    查看>>
    MySQL高级-MySQL锁
    查看>>
    MySQL高级-SQL优化
    查看>>
    MySQL高级-SQL优化步骤
    查看>>
    MySQL高级-内存管理及优化
    查看>>