使用
set pagesize 1000
set linesize 132
col TS_NAME form a24
col PIECES form 9999
col PCT_FREE form 999.9
col PCT_USED form 999.9
select *
from (select Q2.OTHER_TNAME TS_NAME,
PIECES,
TS_SIZE TS_SIZE,
NVL(LARGEST_CHUNK, 0) LARGESTPC,
NVL(TOTAL_FREE, 0) TOTALFREE,
NVL(ROUND((TOTAL_FREE / TS_SIZE) * 100, 2), 0) PCT_FREE,
TS_SIZE - TOTAL_FREE WHATSUSED,
NVL(100 - ROUND((TOTAL_FREE / TS_SIZE) * 100, 2), 100) PCT_USED,
decode(nvl(100-round((total_free/ts_size)*100,0),100),
85,'+',86,'+',87,'+',88,'+',89,'++',90,'++',91,'++',
92,'++',93,'++',94,'+++',95,'+++',96,'+++',97,'++++',
98,'+++++',99,'+++++',100,'+++++','') PROBLEM
from (select DFS.TABLESPACE_NAME,
count(*) PIECES,
ROUND(max(DFS.BYTES) / 1024 / 1024, 2) LARGEST_CHUNK,
ROUND(sum(DFS.BYTES) / 1024 / 1024, 2) TOTAL_FREE
from DBA_FREE_SPACE DFS
group by TABLESPACE_NAME) Q1,
(select TABLESPACE_NAME OTHER_TNAME,
ROUND(sum(DDF2.BYTES) / 1024 / 1024, 2) TS_SIZE
from DBA_DATA_FILES DDF2
group by TABLESPACE_NAME) Q2
where Q2.OTHER_TNAME = Q1.TABLESPACE_NAME(+) /*and Q2.OTHER_TNAME='USERS'*/
order by NVL(100 - ROUND((TOTAL_FREE / TS_SIZE) * 100, 0), 100) desc) T
where ROWNUM < 20;
查看自己的各个表空间的被使用和空闲的空间大小:
TS_NAME PIEC TS_SIZE LARGESTPC TOTALFREE PCT_FREE WHATSUSED PCT_USED PROBLEM
----------- ---- ---------- ---------- ---------- ---------- ---------- ---------- -------
SYSAUX 35 460 1.94 16.5 3.59 443.5 96.41 +++
EXAMPLE 2 100 31.31 31.75 31.75 68.25 68.25
USERS 1 5 2 2 40 3 60
SYSTEM 36 460 1.94 16.5 3.59 443.5 96.41 +++
( 写本文档的时候,我的system 已经被我修改了,所以只好把system 与sysaux 的内容搞成一样了) 。
SYSAUX 表空间在Oracle Database 10g 中引入, 作为SYSTEM 表空间的辅助表空间. 以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX 表空间中创建. 通过分离这些组件和功能,SYSTEM 表空间的负荷得以减轻. 反复创建一些相关对象及组件引起SYSTEM 表空间的碎片问题得以避免。如果SYSAUX 表空间不可用, 数据库核心功能将保持有效; 使用SYSAUX 表空间的特点将会失败或功能受限.
对于这样的情况解决方法如下:
(1) 确定system 与sysaux 表空间是否自动扩展
使用命令: select tablespace_name, AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files;
TABLESPACE_NAME AUTOEXTENSIBLE INCREMENT_BY
------------------------------ -------------- ------------
USERS YES 160
SYSAUX YES 1280
UNDOTBS1 YES 640
SYSTEM YES 1280
EXAMPLE YES 80
SYSTEM YES 1
AUTOEXTENTSIBLE 对应的值为YES 表示可以自动扩展,为NO 表示不自动扩展,INCREMENT_BY 表示每次自动扩展的空间大小。
(2) 如果不是自动扩展
如果不自动扩展,可以通过如下方式增加表空间的大小:
I> 增加system 表空间的数据文件:
alter tablespace system add datafile “'D:/oracleXE/oradata/XE/system_01.dbf' resize 1024M;
II> 修改system 表空间,使其自动扩展:
alter database datafile 'D:/oracleXE/oradata/XE/system_01.dbf' autoextend on;
alter database datafile 'D:/oracleXE/oradata/XE/system_01.dbf' resize 2048M;