博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
阅读量:6583 次
发布时间:2019-06-24

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

现象

监控发现sysaux表空间使用不断增加,导致表空间不足

 

查看过程

查看版本:

SQL> select * from v$version;BANNER                                                                               CON_ID-------------------------------------------------------------------------------- ----------Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              0PL/SQL Release 12.2.0.1.0 - Production                                                    0CORE    12.2.0.1.0      Production                                                        0TNS for Linux: Version 12.2.0.1.0 - Production                                            0NLSRTL Version 12.2.0.1.0 - Production                                                    0SQL>

查看v$sysaux_occupants,发现SM/ADVISOR排在第一

SQL> set lines 120SQL> col occupant_name format a30SQL> select occupant_name,space_usage_kbytes from v$sysaux_occupants order by space_usage_kbytes desc;

查看dba_segments,发现WRI$_ADV_OBJECTS占用最大

SQL> col segment_name format a30SQL> col owner format a10SQL> col tablespace_name format a10SQL> col segment_type format a15SQL> select segment_name,owner,tablespace_name,bytes/1024/1024 "SIZE(MB)",segment_type from dba_segments where tablespace_name='SYSAUX' order by bytes desc;

也可以通过awrinfo查看。

 

原因

因为在12.2中,引入了新的特性:optimizer statistics advisor。优化器统计信息顾问每天都会在维护窗口运行,auto_stats_advisor_task多次运行,因而会消耗大量sysaux表空间。

SQL> col task_name format a35SQL> select task_name, count(*) cnt from dba_advisor_objects group by task_name order by cnt desc;TASK_NAME                                  CNT----------------------------------- ----------SYS_AUTO_SQL_TUNING_TASK                 20703AUTO_STATS_ADVISOR_TASK                   9881

  

解决方案

方案1.删除statistics advisor task(auto_stats_advisor_task),删除该任务后就可以释放统计信息顾问产生的数据

直接删除该任务:

declare  v_tname varchar2(32767);begin  v_tname := 'AUTO_STATS_ADVISOR_TASK';  dbms_stats.drop_advisor_task(v_tname);end;/

一旦任务被删除,与任务相关的结果数据都会从表WRI$_ADV_OBJECTS删除。

在删除任务的过程中,可能会遇到下面的错误:

ORA-20001: Statistics Advisor: Invalid Task Name For the current user

如果遇到上面的错误,可以先重建AUTO_STATS_ADVISOR_TASK来解决问题:

SQL> connect / as sysdbaSQL> EXEC DBMS_STATS.INIT_PACKAGE();

删除任务后,重新组织表和索引

SQL> alter table wri$_adv_objects move;SQL> alter index wri$_adv_objects_idx_01 rebuild;SQL> alter index wri$_adv_objects_pk rebuild;

 

方案2.如果表WRI$_ADV_OBJECTS比较大,删除任务AUTO_STATS_ADVISOR_TASK会需要很多的undo表空间

可以通过以下方式purge数据,不会过度的产生redo/undo数据

### Check the no.of rows in WRI$_ADV_OBJECTS for Auto Stats Advisor Task ###SQL> select count(*) from wri$_adv_objects where task_id=(select distinct id from wri$_adv_tasks where name='AUTO_STATS_ADVISOR_TASK');  COUNT(*)----------  46324479### Do CTAS from WRI$_ADV_OBJECTS to keep the rows apart from AUTO_STATS_ADVISOR_TASK ###SQL> create table wri$_adv_objects_new as select * from wri$_adv_objects where task_id !=(select distinct id from wri$_adv_tasks where name='AUTO_STATS_ADVISOR_TASK'); SQL> select count(*) from wri$_adv_objects_new;  COUNT(*)----------       359### Truncate the table ###SQL> truncate table wri$_adv_objects;### Insert the rows from backed up table WRI$_ADV_OBJECTS_NEW to restore the records of ther advisor objects ###SQL> insert /*+ APPEND */ into wri$_adv_objects select * from wri$_adv_objects_new;SQL> commit;SQL> drop table wri$_adv_objects_new;### Reorganize the indexes ###SQL> alter index wri$_adv_objects_idx_01 rebuild;SQL> alter index wri$_adv_objects_pk rebuild;

  

其它

重建AUTO_STATS_ADVISOR_TASK

Optimizer Statistics Advisor Task (AUTO_STATS_ADVISOR_TASK)可以在任何时刻进行重建 

SQL> EXEC DBMS_STATS.INIT_PACKAGE();

 

也可以禁用该任务,而不是删除

declare  filter1 clob;begin  filter1 := dbms_stats.configure_advisor_rule_filter('AUTO_STATS_ADVISOR_TASK',                                                      'EXECUTE',                                                      NULL,                                                      'DISABLE');END;/

  

参考文档:SYSAUX Tablespace Grows Rapidly After Upgrading Database to 12.2.0.1 Due To Statistics Advisor (Doc ID 2305512.1)

 

 

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

你可能感兴趣的文章
JJTree Tutorial for Advanced Java Parsing
查看>>
[Android Samples视频系列之ApiDemos]App-Activity-Forwarding
查看>>
20135306第十四周学习总结
查看>>
AutoMapper 5.0-升级指南
查看>>
DCOM中的APPID的用处,以及RemoteServerName的传递问题
查看>>
MYSQL的服务不见了
查看>>
去哪儿网支付系统架构演进全历程阅读心得
查看>>
需求分析及对IT行业创新的理解
查看>>
Spring MVC 处理静态资源不能访问问题
查看>>
Toad常用快捷键
查看>>
hdu 1022 Train Problem I(栈)
查看>>
ZooKeeper学习第一期---Zookeeper简单介绍
查看>>
找众数
查看>>
usaco Scrambled Letters
查看>>
git不能先commit后再pull
查看>>
酒店之王 最大流
查看>>
【模板】矩阵加速(数列) 矩阵快速幂
查看>>
[转载]网络流ISAP算法的简单介绍
查看>>
Extjs5项目进行中:布局(一)
查看>>
Linux下python默认版本切换成替代版本
查看>>