WRI$_ADV_OBJECTS表过大,导致sysaux表空间不足

问题:

环境是oracle19c,windows2012 R2,在进行一次oracle字段备份的时候,发现备份报错,但是单独登陆使用dblink是可以查询源端数据库的内容,然后使用命令行操作备份,下图是数据库的报错,如下:

 提示sysaux表空间不足。

 处理方式1:

--查看表空间剩余空间
select
a.TABLESPACE_NAME tbs_name, round(a.BYTES/1024/1024) Total_MB, round((a.BYTES-nvl(b.BYTES, 0)) /1024/1024) Used_MB, round((1-((a.BYTES-nvl(b.BYTES,0))/a.BYTES))*100,2) Pct_Free, nvl(round(b.BYTES/1024/1024), 0) Free_MB , auto from (select TABLESPACE_NAME, sum(BYTES) BYTES, max(AUTOEXTENSIBLE) AUTO from sys.dba_data_files group by TABLESPACE_NAME) a, (select TABLESPACE_NAME, sum(BYTES) BYTES from sys.dba_free_space group by TABLESPACE_NAME) b where a.TABLESPACE_NAME = b.TABLESPACE_NAME (+) order by ((a.BYTES-b.BYTES)/a.BYTES) desc;

  

awrinfo查看sysaux使用的情况 

 

 

 

 这里为ADVISOR组件功能模块导致SYS.WRI$_ADV_OBJECTS表过大。

查看前10名最大的表

 

 这里也比较明显主要是由于WRI$_ADV_OBJECTS表占用空间较多导致,WRI$_ADV_OBJECTS表主要是12.2以及以上版本新特性Optimizer Statistics Advisor 功能使用到的表,用来存储相关数据。

查看Optimizer Statistics Advisor 任务:

select OWNER,DESCRIPTION,TASK_NAME,ADVISOR_NAME,EXECUTION_START,EXECUTION_END from dba_advisor_tasks;

 

 

 

 

select RULE_ID, NAME, RULE_TYPE, DESCRIPTION from V$STATS_ADVISOR_RULES order by 1;

 

 

 

 清理WRI$_ADV_OBJECTS相关数据

--表越大,索引越大的执行时间越长,耐心等待
DECLARE
v_tname VARCHAR2(32767); BEGIN v_tname := 'AUTO_STATS_ADVISOR_TASK'; DBMS_STATS.DROP_ADVISOR_TASK(v_tname); END; / EXEC DBMS_STATS.INIT_PACKAGE(); ALTER TABLE WRI$_ADV_OBJECTS MOVE; ALTER INDEX WRI$_ADV_OBJECTS_IDX_01 REBUILD; ALTER INDEX WRI$_ADV_OBJECTS_PK REBUILD;

 

禁用Optimizer Statistics Advisor Task
 
DECLARE
filter1 CLOB;
BEGIN
filter1 := DBMS_STATS.CONFIGURE_ADVISOR_RULE_FILTER('AUTO_STATS_ADVISOR_TASK','EXECUTE',NULL,'DISABLE');
END;
/

 

查看并修改禁用Optimizer Statistics Advisor Task

--查看保留时间

select task_name,parameter_name, parameter_value
FROM DBA_ADVISOR_PARAMETERS
WHERE task_name='AUTO_STATS_ADVISOR_TASK' and parameter_name='EXECUTION_DAYS_TO_EXPIRE';

 

 

--修改保留时间 10天

BEGIN

DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(task_name => 'AUTO_STATS_ADVISOR_TASK',
parameter => 'EXECUTION_DAYS_TO_EXPIRE',
value => 10);

END;
/

 

 

 处理方式2:

添加sysaux表空间数据文件。

 

posted @ 2021-11-11 14:50  翰墨文海  阅读(2858)  评论(0编辑  收藏  举报