system表空間空間解決(ORA-00604 ORA-01653 ORA-02002)


  上午接到開發部門說數據庫報錯如下:

       

   很明顯,ORA-01653 unable to extend table”的錯誤指向SYSTEM表空間不能分配新的空間,並且指向AUD$審計占用了大部分表空間。

   發生ORA--01653基本有兩種原因:

  一、表空間空間不足

  二、未開啟自動增長導致

  三、根據如上報錯,可以基本判斷是因為審計(AUD$)過大導致SYSTEM表空間不足。SYSTEM表空間主要存儲一下數據庫動態視圖、基表、數據字典等。

 排查及解決方法如下:

  一、查看表空間使用率,發現SYSTEM表空間使用率已達到99.7%。

  

  二、是否開啟AUDIT審計功能(Oracle 11g 默認開啟審計功能)

    SQL> show parameter audit (AUDIT_TRAIL有值時為開啟狀態)

   

   三、查看AUD$基表大小及數據量(發現AUD$表占用了SYSTEM表空間9.3G的空間)

  =========從dba_segments中找出占用SYSTEM表空間排名前10的大對象

  select * from (select SEGMENT_NAME,sum(bytes)/1024/1024 sx from dba_segments
  where tablespace_name='SYSTEM' group by segment_name)
  where sx>100 order by sx desc;

  

  四、清空AUD$表

  SQL> truncate table SYS.AUD$;

  

  五、再次檢查表空間使用率,發現SYSTEM表空間使用率降低為7.7%

  

 

  =========建議其他解決方法:

  1、Oracle 11g 默認開啟AUDIT功能,如SYSTEM表空間自增會不斷增大空間使用,所以建議根據業務實際需求開啟/關閉AUDIT功能,方法如下。

  SQL>alter system set audit_trail=none scope=spfile;

  直接使用spfile文件中的審計功能參考audit_trail為none,即關閉審計功能。

  執行完后,重啟數據庫。

  啟動后查看:

  SQL> show parameter audit_trail

  2、增加數據文件

  SQL>alter tablespace SYSTEM add datafile '/****' size 100m autoextend on next 32m maxsize 1024m;




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM