首页 > 代码库 > 表空间满处理方法
表空间满处理方法
1、查看表空间使用情况
SQL> SELECT /*+NO_MERGE(A) NO_MERGE(B)*/B.TABLESPACE_NAME 表空间名称, ROUND((B.BYTES/1024)/1024,2) 总空间大小MB, 2 NVL2(A.BYTES,ROUND((B.BYTES-NVL(A.BYTES,0))/1024/1024,2),B.BYTES) 已使用大小MB, 3 NVL2(A.BYTES,ROUND(NVL(A.BYTES,0)/1024/1024,2),0) 未使用大小MB, 4 NVL2(A.BYTES,TO_CHAR(ROUND(((B.BYTES-NVL(A.BYTES,0))/B.BYTES)*100,2),‘990.0‘),‘100‘)||‘%‘ 已使用率 5 FROM (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME)A, 6 (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) B 7 WHERE B.TABLESPACE_NAME=A.TABLESPACE_NAME(+); 表空间名称 总空间大小MB 已使用大小MB 未使用大小MB 已使用率------------------------------ ------------ ------------ ------------ --------UNDOTBS1 165 13.19 151.81 8.0%SYSAUX 5510 374.56 5135.44 6.8%USERS 5 0.44 4.56 8.8%SYSTEM 5610 484.94 5125.06 8.6%RUSKY_DATA 2048 36.94 2011.06 1.8%
2、查看除了系统用户以外有没有其它用户使用系统表空间
SQL> select username, default_tablespace,temporary_tablespace from dba_users where (default_tablespace=‘SYSTEM‘ or temporary_tablespace=‘SYSTEM‘) and username not in (‘SYSTEM‘,‘SYS‘); USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE------------------------------ ------------------------------ ------------------------------OUTLN SYSTEM TEMPMGMT_VIEW SYSTEM TEMP
3、查看某用户所使用的表空间
SQL> SELECT USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE FROM DBA_USERS WHERE USERNAME=‘RUSKY‘; USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE------------------------------ ------------------------------ ------------------------------RUSKY RUSKY_DATA RUSKY_TEMP
查看当前用户使用的表空间
SQL> SELECT USERNAME,DEFAULT_TABLESPACE FROM USER_USERS; USERNAME DEFAULT_TABLESPACE------------------------------ ------------------------------RUSKY RUSKY_DATA
查看数据文件的存储位置、大小等信息:select * from v$datafile; select * from dba_data_files;
4、查看system和sysaux表空间是否是自动扩展的
SQL> select tablespace_name,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files; TABLESPACE_NAME AUTOEXTENSIBLE INCREMENT_BY------------------------------ -------------- ------------USERS YES 160SYSAUX YES 1280UNDOTBS1 YES 640SYSTEM YES 1280RUSKY_DATA YES 65536SYSTEM YES 64000SYSAUX YES 64000
如果为自动扩展那么AUTOEXTENSIBLE字段的值应为YES,是否为NO;INCREMENT_BY 这个为每次自动扩展的空间大小。
5、采取的扩展表空间的做法
增加一个数据文件:
ALTER TABLESPACE SYSTEM ADD DATAFILE ‘/home/oracle/oradata/orcl/system02.dbf‘ size 5120M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
ALTER TABLESPACE SYSAUX ADD DATAFILE ‘/home/oracle/oradata/orcl/sysaux02.dbf‘ size 5120M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
或是重新调整数据文件的大小:
SQL> alter database datafile ‘/home/oracle/oradata/orcl/system01.dbf‘ resize 5120M autoextend on next 500M;
SQL> alter database datafile ‘/home/oracle/oradata/orcl/sysaux01.dbf‘ resize 5120M autoextend on next 500M;
参考资源:http://blog.chinaunix.net/uid-261392-id-2138978.html
表空间满处理方法