1. 程式人生 > >oracle表空間不足報錯的解決

oracle表空間不足報錯的解決

連線時報錯:
unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM


這是因為開啟了審計日誌,造成佔用了大量表空間引起的


1、查看錶空間使用情況:


SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
  FROM dba_free_space 
  GROUP BY tablespace_name; 


SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 

發現SYSTEM空間已使用99.8%

查看錶空間的引數:

select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'SYSTEM'

autoextensible 為是否自動擴充套件


2、先關閉審計日誌

檢視審計日誌設定引數:

show parameter audit;

audit_trail項不為 NONE,說明開啟了審計功能,儲存位置有DB或OS等

現在的目標是將其設定為NONE

alter system set audit_trail = none scope=spfile;

然後重啟例項即可


3、刪除審計表資料

把佔用的空間找回來:

設計表名為  SYS.AUD$ ,可以delete也可以truncate

建議用truncate,直接解決問題

之後再檢查一下表空間使用情況