博客
关于我
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/

    你可能感兴趣的文章
    navicat 系列软件一点击菜单栏就闪退
    查看>>
    navicat 自动关闭_干掉Navicat!MySQL官方客户端到底行不行?
    查看>>
    Navicat 设置时间默认值(当前最新时间)
    查看>>
    navicat 连接远程mysql
    查看>>
    navicat:2013-Lost connection to MySQL server at ‘reading initial communication packet解决方法
    查看>>
    Navicate for mysql 数据库设计-数据库分析
    查看>>
    Navicat下载和破解以及使用
    查看>>
    Navicat中怎样将SQLServer的表复制到MySql中
    查看>>
    navicat创建连接 2002-can‘t connect to server on localhost(10061)且mysql服务已启动问题
    查看>>
    Navicat可视化界面导入SQL文件生成数据库表
    查看>>
    Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
    查看>>
    Navicat因导入的sql文件中时间数据类型有参数而报错的原因(例:datetime(3))
    查看>>
    Navicat如何连接MySQL
    查看>>
    navicat导入.sql文件出错2006- MySQLserver has gone away
    查看>>
    Navicat导入海量Excel数据到数据库(简易介绍)
    查看>>
    Navicat工具Oracle数据库复制 or 备用、恢复功能(评论都在谈论需要教)
    查看>>
    navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
    查看>>
    navicat怎么导出和导入数据表
    查看>>
    Navicat怎样同步两个数据库中的表
    查看>>
    Navicat报错connection is being used
    查看>>