oracle system表空間已滿,如何解決?

2021-08-21 06:20:51 字數 2680 閱讀 1406

1.登入資料庫

sqlplus /nolog

conn / as sysdba

2.查詢表空間使用狀況

select upper(f.tablespace_name) "表空間名", 

d.tot_grootte_mb "表空間大小(m)",

d.tot_grootte_mb - f.total_bytes "已使用空間(m)",

to_char(round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,2),'990.99') "使用比",

f.total_bytes "空閒空間(m)",

f.max_bytes "最大塊(m)"

from (select tablespace_name,

round(sum(bytes) / (1024 * 1024), 2) total_bytes,

round(max(bytes) / (1024 * 1024), 2) max_bytes

from sys.dba_free_space

group

by tablespace_name) f,

(select dd.tablespace_name,

round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb

from sys.dba_data_files dd

group

by dd.tablespace_name) d

where d.tablespace_name = f.tablespace_name

orderby4

desc;

3.檢視一下表空間是否開啟自動擴充套件功能

4.遇到這種問題,網上有很多種方法,我才疏學淺,只用成功了一種,就是把自動擴充套件功能開啟:

把錶空間的資料檔案設為自動增長alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' autoextend on next 10m maxsize unlimited;

不過這種方法不建議使用,因為會導致這個表空間檔案太大了,查詢以後,還有其他方法,先列在這裡,如果以後有使用的話,也可以參考。

但如上顯示的錯誤資訊已經直接說明:

一是:資料庫的審計功能已經開啟(sys.aud$表,只有開了審計功能才會向其中插入資料),二是:system表空間不足了

其解決的方法有兩個:

1)擴system表空間,或者清理sys.aud$表;

方法一:手動重設並增加表空間tbsk的資料檔案大小

sql> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' resize 20g;
方法二:把錶空間的資料檔案設為自動增長(不建議使用此方法)

sql> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' autoextend on next 10m maxsize unlimited;

乙個表空間資料庫檔案最大可以擴充套件到32g。

方法三:增加新的資料檔案(建議使用此方法)

sql> alter tablespace system add datafile '/opt/oracle/oradata/ora11g/system2.dbf' size 10g autoextend off;
下面語句清理審計表,釋放系統表空間:

sqlplus / as sysdba

truncate table sys.aud$;

2)關閉審計功能:(關閉審計需要重新啟動oracle)

sql> show parameter audit

name type value

執行下面sql:

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

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

執行完後,重啟資料庫。

啟動後檢視:

sql> show parameter audit_trail

name type value

audit_trail string none

system表空間現在又能插入資料了。

謝謝前人寫的部落格

參考部落格1

參考部落格2

Oracle SYSTEM表空間說明

每個oracle資料庫都包含乙個名為 system 的表空間 tablespace 她在數 據庫建立時由oracle自動建立。只要資料庫處於開啟 open 狀態,system 表空間就一定是聯機 online 的。管理員可以建立本地管理的 locally managed system 表空間 tab...

oracle SYSTEM表空間不足問題

雜症二 system表空間不足報錯 一 雜症 plsql登入,報錯 ora 00604 遞迴 sql 層 出現錯誤 ora 01653 表.無法通過 在表空間中 擴充套件 ora 02002 寫入審記線索時出錯 二 病理 1 表空間不足 2 資料庫的審計功能已經開啟引起 sys.aud 表 三 定位...

Oracle SYSTEM表空間突然持續爆滿

一般情況下,我們建完資料庫後,都會給資料庫指定乙個新的預設表空間,不然會占用資料庫系統表空間資源,導致資料庫效能下降。我們可以同過sql語句找出改表空間占用空間前10的物件 這是我們發現是sys使用者下的aud 表占用了大部分空間資源,因為資料庫11g起預設是開了審計功能,所以會不斷統計收集使用者登...