博客
关于我
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中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>
    Mysql中怎样设置指定ip远程访问连接
    查看>>
    mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
    查看>>
    Mysql中文乱码问题完美解决方案
    查看>>
    mysql中的 +号 和 CONCAT(str1,str2,...)
    查看>>
    Mysql中的 IFNULL 函数的详解
    查看>>
    mysql中的collate关键字是什么意思?
    查看>>
    MySql中的concat()相关函数
    查看>>
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    查看>>
    MySQL中的count函数
    查看>>
    MySQL中的DB、DBMS、SQL
    查看>>
    MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
    查看>>
    MySQL中的GROUP_CONCAT()函数详解与实战应用
    查看>>
    MySQL中的IO问题分析与优化
    查看>>