system表空間空間不足解決辦法

2022-03-29 05:55:36 字數 2449 閱讀 6203

場景描述:

系統表空間空間不足,導致應用無法正常連線!!!

環境描述:

oracle 11g

檢視當前表空間的整體使用情況,以及有沒有開啟自動擴充套件,以及擴充套件的最大限制!!!

---tablespace status 表空間使用情況

set pages 12222 lines 132;

set serveroutput on size 1000000;

col tablespace_name format a30;

col autoextensible format a7;

select a.tablespace_name,

round(a.s,2) "current_total(mb)",

round((a.s - f.s),2) "used(mb)",

f.s "free(mb)",

round(f.s / a.s * 100, 2) "free%",

g.autoextensible,

round(a.ms,2) "max_total(mb)"

from (select d.tablespace_name,

sum(bytes / 1024 / 1024) s,

sum(decode(maxbytes, 0, bytes, maxbytes) / 1024 / 1024) ms

from dba_data_files d

group by d.tablespace_name) a,

(select f.tablespace_name, sum(f.bytes / 1024 / 1024) s

from dba_free_space f

group by f.tablespace_name) f,

(select distinct tablespace_name, autoextensible

from dba_data_files

where autoextensible = 'yes'

union

select distinct tablespace_name, autoextensible

from dba_data_files

where autoextensible = 'no'

and tablespace_name not in

(select distinct tablespace_name

from dba_data_files

where autoextensible = 'yes')) g

where a.tablespace_name = f.tablespace_name

and g.tablespace_name = f.tablespace_name order by "free%";

系統表空間正常情況下只存放了資料字典之類的東西,所以占用的空間一般在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$;

解決方法大概可分為以下幾種:

一、為system表空間另外新增乙個資料檔案。

alter tablespace system add datafile 'd:\oraclexe\oradata\xe\system_01.dbf' resize 1024m;

二、更改system表空間的資料檔案system.dbf分配空間。

alter database datafile 'd:\oraclexe\oradata\xe\system_01.dbf' autoextend on;  

alter database datafile 'd:\oraclexe\oradata\xe\system_01.dbf' resize 1024m;

三、truncate掉aud$表並關閉審計功能(我是使用的這種,效果立竿見影,不過如果不關閉此功能, 需要定期清理此表):

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

sql>shutdown immediate;

sql>startup;

四、將aud$預設表空間由system移出。 

關於System表空間

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

解決boot空間不足

sudo apt get install lib read4 gzip stdout no space left on device e mkinitramfs failure cpio 141 gzip 1 update initramfs failed for boot initrd.img 3...

解決centos boot空間不足

由於安裝系統時沒有仔細看,boot目錄預設設定只有100m,這樣編譯幾個版本的核心 boot空間就不夠用了。mount一下,看到 boot目錄被掛在到 dev sda1上,空間只有100m,解決辦法 1.umount boot 2.mkdir boot old 3.mount dev sda1 bo...