ORA-1688 错误SYSAUX

系统alert.log中有很多错误提示:
ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_SESSION_HISTORY_3840252989_15027 by 128 in tablespace SYSAUX 
2021-08-11T16:18:45.388052+08:00
ORA-1652: unable to extend temp segment by 128 in tablespace SYSAUX 
2021-08-11T16:19:45.498345+08:00
ORA-1652: unable to extend temp segment by 128 in tablespace SYSAUX 


百度一搜,告诉可能时开启审计的原因,于是按照这个思路处理。
SQL> SET SERVEROUTPUT ON
BEGIN
IF sys.DBMS_AUDIT_MGMT.is_cleanup_initialized(sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN
     DBMS_OUTPUT.put_line('YES');
   ELSE
     DBMS_OUTPUT.put_line('NO');
   END IF;
  END;
/SQL>
NO

PL/SQL procedure successfully completed.

SQL> BEGIN
      sys.DBMS_AUDIT_MGMT.set_last_archive_timestamp(
      audit_trail_type  => sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
      last_archive_time => SYSTIMESTAMP-7 /* Day */);
END;
/  2    3    4    5    6  
BEGIN
*
ERROR at line 1:
ORA-46258: Cleanup not initialized for the audit trail
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 181
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 996
ORA-06512: at line 2

SQL> EXEC DBMS_AUDIT_MGMT.INIT_CLEANUP(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 12)   

PL/SQL procedure successfully completed.

SQL> EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, TRUE);

PL/SQL procedure successfully completed.

SQL>  SELECT COUNT(*) FROM AUD$;

  COUNT(*)
----------
     0

SQL> EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, FALSE)

PL/SQL procedure successfully completed.
其实审计都没有开启,看来原因不在这个上面。

那就查看这个表空间到底都被哪些表占用了。

查看大于100M的数据表
SQL>SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, BYTES / 1024 / 1024  FROM DBA_SEGMENTS  WHERE TABLESPACE_NAME = 'SYSAUX' and  BYTES / 1024 / 1024>100;
发现 wri$_adv_objects 这个表占用了20G
SQL> select count(*) from wri$_adv_objects where task_id=(select distinct id from wri$_adv_tasks where name='AUTO_STATS_ADVISOR_TASK');

  COUNT(*)
----------
 138554669

看来这个表里面记录真不少,这个是因为优化器统计顾问的执行。
找到一个处理方法:

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');

Table created.

SQL> select count(*) from wri$_adv_objects_new;

  COUNT(*)
----------
     99504

SQL>  truncate table wri$_adv_objects;

Table truncated.

SQL> insert /*+ APPEND */ into wri$_adv_objects select * from wri$_adv_objects_new;

99504 rows created.

SQL> commit;

Commit complete.

SQL> drop table wri$_adv_objects_new;

Table dropped.

SQL> alter index wri$_adv_objects_idx_01 rebuild;

Index altered.

SQL> alter index wri$_adv_objects_pk rebuild;

Index altered.

SQL> quit

Alert.log里面中终于不报错误了。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值