你的数据库是不是选用了归档模式,在这种模式下文件夹archive 内容会急剧增加的!

解决方案 »

  1.   

    如果是归档日志文件占用了空间,你试着将这些文件移开,
    或执行下面操作,改动归档路径,
    SQL>show parameters log_archive_dest;
    修改其中的参数值为其它路径:
    例:
    SQL>alter system set log_archive_dest_1='e:\oracle_arc_bak'
    建议将归档日志文件移开。
      

  2.   

    数据文件,归档文件,日志都可移动其它盘上.
    alter database  rename file 'd:\...' to 'e:\...';
      

  3.   

    不好意思,我查了一下,archive目录下是空的,那是什么原因呢?
      

  4.   

    1、确定不是数据文件或归档日志占的空间吗?
    2、是不是有别人用过你的机器,或重新安装了其他数据库事例占用了空间呢?
    3、是否有人故意或误操作将其它文件夹移进去了。
    4、检查一下有没有过大的文件,反正ORACLE目录下就那么几个目录,一个一个过一遍看看。
      

  5.   

    确定数据文件是在另外的盘上,oracle\oradata\dbname\archive下为空,
    但oracle\oradata\dbname\SYSTEM01.DBF的文件有300M,这是做什么用的?
    也没有安装帮助啊?
      

  6.   

    SYSTEM01.DBF那时系统表空间的数据文件,不要动~
      

  7.   

    SYSTEM01.DBF是系统表空间,主要存放的是数据字典。一般不会超过
     200M, 我想肯定是有其他用户对象建在这个表空间了。  查询一下rbs,temp,user,index,tools这几个基本的表空间文件有多大,
      然后再查询用户自己建立的表空间有多大.  用下面的代码检测每个表空间的总容量和剩余容量:  sql> set serveroutput on;  
      sql> 
        declare 
         v_total_space number(20);
         v_free_space number(20);    begin
         for tablespace_rec in (select tablespace_name from dba_tablespaces)
         loop 
            select sum(bytes) into v_total_space
             from dba_data_files
             where TABLESPACE_NAME = tablespace_rec.tablespace_name;
            
           dbms_output.put_line('[' || tablespace_rec.tablespace_name 
                 || ']' || ' total space: ' || v_total_space || 'Bytes' );
           
           select sum(bytes) into v_free_space
             from dba_free_space
             where TABLESPACE_NAME = tablespace_rec.tablespace_name;         dbms_output.put_line('[' || tablespace_rec.tablespace_name 
                 || ']' || ' total free space: ' || v_free_space || 'Bytes' );
         end loop;
       end; 
       /
      

  8.   

    代码执行结果如下,好像系统的部分都很少使用,那怎么办呢?
    [SYSTEM] total space:      297795584Bytes
    [SYSTEM] total free space: 4374528Bytes
    [RBS] total space:      52428800Bytes
    [RBS] total free space: 30400512Bytes
    [USERS] total space:      20971520Bytes
    [USERS] total free space: 20963328Bytes
    [TEMP] total space:      20971520Bytes
    [TEMP] total free space: 20963328Bytes
    [TOOLS] total space:      10485760Bytes
    [TOOLS] total free space: 10477568Bytes
    [INDX] total space:      20971520Bytes
    [INDX] total free space: 20963328Bytes
    [DRSYS] total space:      20971520Bytes
    [DRSYS] total free space: 16637952Bytes
    [CN_CM_SPACE] total space:      104857600Bytes
    [CN_CM_SPACE] total free space: 18751488Bytes
    [CN_CM_INDEX] total space:      52428800Bytes
    [CN_CM_INDEX] total free space: 37265408Bytes
    [CN_FM_SPACE] total space:      104857600Bytes
    [CN_FM_SPACE] total free space: 104849408Bytes
    [CN_FM_INDEX] total space:      104857600Bytes
    [CN_FM_INDEX] total free space: 104849408Bytes
    [CN_PM_SPACE] total space:      293601280Bytes
    [CN_PM_SPACE] total free space: 7413760Bytes
    [CN_PM_INDEX] total space:      20971520Bytes
      

  9.   

    [SYSTEM] total space:      297795584Bytes
    [SYSTEM] total free space: 4374528Bytes
    ---------------------------------------
     这两个似乎不太正常,你的数据库启用Jserver了吗? 
     怎么系统表空间这么大? [RBS] total space:      52428800Bytes
     [RBS] total free space: 30400512Bytes
     -------------------------------------
      有220M左右的回滚段被使用,当前有活跃事务在使用回滚段吗?
      如果有,等并发事务不多时,收缩一下回滚段  btw: 表空间达到几个G很正常,关键你要知道每个表空间里面都
       放置了什么。装一个PL/SQL Developer吧,仔细察看一下每个表
      空间.
      

  10.   

    NT下怎么查看是否启动了jserver?当时没有活动的事务啊,怎么收缩回滚段?
      

  11.   

    1. 是否启用Jserver是创建数据库时的选项,如果你选择了,会生成
        一些相关的数据字典,当然系统表空间也会变大.  2. 回滚段应该有个optimal值,你先看看是多大
          select N.Name,S.optSize from
               V$ROLLNAME N, V$ROLLSTAT S
           where N.USN=S.USN     
     
      3. 手工收缩回滚段: 
         例如: alter segment segmenename shrink to xxx(例如100M);
               如果不指定参数,将收缩到optimal参数的值.