博客
关于我
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-2019-4-21-复习
    查看>>
    mysql-5.6.17-win32免安装版配置
    查看>>
    mysql-5.7.18安装
    查看>>
    MySQL-Buffer的应用
    查看>>
    mysql-cluster 安装篇(1)---简介
    查看>>
    mysql-connector-java.jar乱码,最新版mysql-connector-java-8.0.15.jar,如何愉快的进行JDBC操作...
    查看>>
    mysql-connector-java各种版本下载地址
    查看>>
    mysql-EXPLAIN
    查看>>
    MySQL-Explain的详解
    查看>>
    mysql-group_concat
    查看>>
    MySQL-redo日志
    查看>>
    MySQL-【1】配置
    查看>>
    MySQL-【4】基本操作
    查看>>
    Mysql-丢失更新
    查看>>
    Mysql-事务阻塞
    查看>>
    Mysql-存储引擎
    查看>>
    mysql-开启慢查询&所有操作记录日志
    查看>>
    MySQL-数据目录
    查看>>
    MySQL-数据页的结构
    查看>>