绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
WRI$_ADV_OBJECTS占用过多SYSAUX空间的处理
2021-09-17 15:47:22

近巡检发现有两个库的sysaux表空间使用率比其他要高,查询发现如下对象占了6G 多

select segment_name,segment_type,bytes/1024/1024 from dba_segments where tablespace_name='SYSAUX' order by 3;
...
SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024
------------------------------ ------------------------------------ ---------------
....
WRI$_ADV_OBJECTS TABLE 6123

表WRI$_ADV_OBJECTS存储统计信息顾问任务的数据
下面通过DBA_ADVISOR_PARAMETERS查询自动任务AUTO_STATS_ADVISOR_TASK信息
col TASK_NAME format a25
col parameter_name format a35
col parameter_value format a20
set lines 120
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';
TASK_NAME PARAMETER_NAME PARAMETER_VALUE
------------------------- --------------------------------------------- -----------------------------------
AUTO_STATS_ADVISOR_TASK EXECUTION_DAYS_TO_EXPIRE 30
我们看到这里自动统计信息顾问的数据保留30天。

这里我们有几种方法解决sysaux空间问题
1. 空间扩容,直接想法。
2 减少数据的保留时间比如10天。
3 手工清理
具体才有哪个方式根据自己需求把,如果有大把的存储就扩容解决,简单。如果没有就手工清理 下,或者减少保留时间

下面是具体操作

1 扩容 :
alter tablespace sysaux add datafile '/oradata1/prod/sysaux02.dbf' size 30g;
2 减少保留时间
SQL> EXEC DBMS_ADVISOR.SET_TASK_PARAMETER(task_name=> 'AUTO_STATS_ADVISOR_TASK', parameter=> 'EXECUTION_DAYS_TO_EXPIRE', value => 10);

查询更改结果
SQL> 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';

TASK_NAME PARAMETER_NAME PARAMETER_VALUE
------------------------- ----------------------------------- --------------------
AUTO_STATS_ADVISOR_TASK EXECUTION_DAYS_TO_EXPIRE 10

3 代替窗口内的自动purge手工purge表

SQL> col task_name format a25
SQL> col EXECUTION_NAME format a15
SQL> select TASK_ID,TASK_NAME,EXECUTION_NAME ,execution_start from dba_advisor_executions where TASK_NAME='AUTO_STATS_ADVISOR_TASK';
TASK_ID TASK_NAME EXECUTION_NAME EXECUTION_START
---------- ------------------------- --------------- -------------------
6 AUTO_STATS_ADVISOR_TASK EXEC_11 2021-09-02 12:10:11
6 AUTO_STATS_ADVISOR_TASK EXEC_161 2021-09-14 22:31:00

SQL> conn / as sysdba
SQL> exec prvt_advisor.delete_expired_tasks;

PL/SQL procedure successfully completed.

SQL> col task_name format a25
SQL> col EXECUTION_NAME format a15
SQL> select TASK_ID,TASK_NAME,EXECUTION_NAME ,execution_start from dba_advisor_executions where TASK_NAME='AUTO_STATS_ADVISOR_TASK';
TASK_ID TASK_NAME EXECUTION_NAME EXECUTION_START
---------- ------------------------- --------------- -------------------
6 AUTO_STATS_ADVISOR_TASK EXEC_161 2021-09-14 22:31:00




分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~