oracle系统表空间system和sysaux使用率很高

使用

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 已经被我修改了,所以只好把systemsysaux 的内容搞成一样了)

SYSAUX 表空间在Oracle Database 10g 中引入, 作为SYSTEM 表空间的辅助表空间. 以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX 表空间中创建. 通过分离这些组件和功能,SYSTEM 表空间的负荷得以减轻. 反复创建一些相关对象及组件引起SYSTEM 表空间的碎片问题得以避免。如果SYSAUX 表空间不可用, 数据库核心功能将保持有效; 使用SYSAUX 表空间的特点将会失败或功能受限.

对于这样的情况解决方法如下:

(1)    确定systemsysaux 表空间是否自动扩展

  使用命令: 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;

 

你可能感兴趣的:(oracle,数据库,database,System,文档,扩展)