經過如下幾步基本能夠查看錶空間狀況以及處理表空間不足問題。數據庫
select group_number,name,total_mb,free_mb from v$asm_diskgroup;
注:對於12c多租戶數據庫,須要先切換至你須要查詢的pdb下spa
方案一:
set linesize 200 set pages 2000 col TABLESPACENAME for a30 select substr(a.TABLESPACE_NAME,1,30) TablespaceName, sum(a.bytes/1024/1024) as "Totle_size(M)", sum(nvl(b.free_space1/1024/1024,0)) as "Free_space(M)", sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)) as "Used_space(M)", round((sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0))) *100/sum(a.bytes/1024/1024),2) as "Used_percent%" from dba_data_files a,(select sum(nvl(bytes,0)) free_space1,file_id from dba_free_space group by file_id) b where a.file_id = b.file_id(+) group by a.TABLESPACE_NAME order by "Used_percent%";
方案二:(包含了臨時表空間) select * from ( Select a.tablespace_name, to_char(a.bytes/1024/1024,'99,999.999') total_bytes, to_char(b.bytes/1024/1024,'99,999.999') free_bytes, to_char(a.bytes/1024/1024 - b.bytes/1024/1024,'99,999.999') use_bytes, to_char((1 - b.bytes/a.bytes)*100,'99.99') || '%' use from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name union all select c.tablespace_name, to_char(c.bytes/1024/1024,'99,999.999') total_bytes, to_char( (c.bytes-d.bytes_used)/1024/1024,'99,999.999') free_bytes, to_char(d.bytes_used/1024/1024,'99,999.999') use_bytes, to_char(d.bytes_used*100/c.bytes,'99.99') || '%' use from (select tablespace_name,sum(bytes) bytes from dba_temp_files group by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used from v$temp_extent_pool group by tablespace_name) d where c.tablespace_name = d.tablespace_name );
set linesize 300 SEt pagesize 500 col file_name format a80 col TABLESPACE_NAME for a30 select tablespace_name,file_id,status,bytes/1024/1024 FileSizeM,file_name from dba_data_files order by tablespace_name;
set linesize 120 select TABLESPACE_NAME, BLOCK_SIZE, EXTENT_MANAGEMENT, SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;
set linesize 300 set pagesize 500 col FILE_NAME for a60 col TABLESPACE_NAME for a30 select file_id,file_name,tablespace_name,autoextensible from dba_data_files order by file_id;
set lines 200 set pages 2000 col username for a20 col default_tablespace for a30 col temporary_tablespace for a30 select username, default_tablespace, temporary_tablespace from dba_users;
經過添加數據文件擴展表空間code
alter tablespace users add datafile '+DATA/GNNT/DATAFILE/users08.dbf' SIZE 5G autoextend on NEXT 50M maxsize 31G; 建議11c rac數據庫添加數據庫文件沒必要自定義數據文件名,由數據庫文件系統自動生成 alter tablespace users add datafile size xxxG;
修改數據文件大小orm
alter database datafile '+DATA/GNNT/DATAFILE/users08.dbf' RESIZE 10G;
修改數據文件的自動增加值blog
alter database datafile '+DATA/GNNT/DATAFILE/users08.dbf'autoextend on NEXT 5G;
關閉數據文件的自動增加io
alter database datafile '+DATA/GNNT/DATAFILE/users08.dbf' autoextend off;