system表空間用滿解決

system表空間用滿解決

轉載 Oracle 做者:Mr_Man 時間:2016-05-14 20:27:43 6199 0
    早上看到alert日誌報說system表空間快滿了(oracle版本是11gR2):

  若是system表空間不是自動擴展,空間用滿甚至會出現 數據庫沒法登錄。使用任何用戶登陸均報出異常。
 
   系統表空間正常狀況下只存放了數據字典之類的東西,因此佔用的空間通常在500M如下。若是你的系統表空間佔用比較多的空間,可能有如下幾方面的緣由:
1)沒有爲用戶明確指定默認表空間,致使system系統表空間做爲用戶默認表空間
2)開啓了審計,請檢查此表的大小AUD$
你能夠運行如下查詢來檢查一下系統表空間哪些表比較大:
    SQL> 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;

  查看該表紀錄數
   select count(*) sum from AUD$; 

解決方法大概可分爲如下幾種:
1、爲system表空間另外新增一個數據文件。
      alter tablespace system add datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
2、更改system表空間的數據文件SYSTEM.dbf分配空間。
  1. alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' autoextend on;  
  2. alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
3、truncate掉AUD$表並關閉審計功能(我是使用的這種,效果立竿見影,不過若是不關閉此功能, 須要按期清理此表):
             SQL> alter system set audit_trail=none scope=spfile;
             SQL>showdown immediate;
             SQL>startup;
4、將AUD$默認表空間由system移出。
相關文章
相關標籤/搜索