oracle 的安装目录越来越大,怎么才能让他变小一点,硬盘空间不够了,好像是表空间变大了,每次都是新建用户,往里导数据 ,但是把用户删除之后,还是那么大。 
 

解决方案 »

  1.   

    是不是新建用户的时候同时新建了datafile,但是删除用户的时候没删除datafile
      

  2.   

    如果是trace文件(.trc)大导致的
     SQL>show parameters user_dump_dest
     SQL> ALTER SYSTEM SET user_dump_dest = '/app/oracle/admin/o102/udump' SCOPE=both;
    关闭DB,删除.trc文件,然后启动DB
      

  3.   

    目录变大有很多原因,1. 如果开启归档模式,日子会写很多, 需要在备份的时候做delete obsolete backupset操作. 然后
    backup archivelog all delete input. 这样就可以消减归档日志2.  日志,这个不用多说了,cd $ORACLE_BASE/admin/$ORACLE_SID/ 直接rm删除吧.3. datafile, undo datafile, temp file.
       undo file: 如果设置了autoextend 而且undo retention 很高的话那一旦碰上大DML事务操作这个file必定会增长的相当厉害, 那减小的方法很简单, 调低retention 然后alter database .... resize. 这个操作生产库别随意作, 很危险。 所以一般DBA都是先规定MAXSIZE然后再慢慢调上去。   temp file 这个基本也和UNDO FILE差不多 如果设置了AUTOEXTEND那一旦有大的HASH JOIN, SORT 操作那歇菜了, 增长到你的硬盘爆掉, 不过一般这种事情不太太会发生, 除非大并发量 + memory-intensive sql操作 如果发现这个FILE增长的很高, 可以看看PGA是不是太小了。   datafile, LZ说的, 应该是DELETE 后HWM没降下来的关系,占用的数据块还是这么多如果LZ用的是直接路径导入方式那会越来越大,  shrink一下表空间就好了。 删除表空间有时候不会删除datafile 可以这样删除 
       drop tablespace [TABLESPACE NAME] including contents and datafiles;
    删除用户一般要级联删除才可以有效的释放它占用的空间
       drop user [USERNAME] cascade.
    多多交流
    Q:460816547
      

  4.   

    看看是否可以resize 数据文件吧。
    如果用户删除掉,而且删除掉用户拥有的权限的话,应该是可以缩小的
      

  5.   

    说得好顶一下:
    目录变大有很多原因,1. 如果开启归档模式,日子会写很多, 需要在备份的时候做delete obsolete backupset操作. 然后
    backup archivelog all delete input. 这样就可以消减归档日志2. 日志,这个不用多说了,cd $ORACLE_BASE/admin/$ORACLE_SID/ 直接rm删除吧.3. datafile, undo datafile, temp file.
      undo file: 如果设置了autoextend 而且undo retention 很高的话那一旦碰上大DML事务操作这个file必定会增长的相当厉害, 那减小的方法很简单, 调低retention 然后alter database .... resize. 这个操作生产库别随意作, 很危险。 所以一般DBA都是先规定MAXSIZE然后再慢慢调上去。  temp file 这个基本也和UNDO FILE差不多 如果设置了AUTOEXTEND那一旦有大的HASH JOIN, SORT 操作那歇菜了, 增长到你的硬盘爆掉, 不过一般这种事情不太太会发生, 除非大并发量 + memory-intensive sql操作 如果发现这个FILE增长的很高, 可以看看PGA是不是太小了。  datafile, LZ说的, 应该是DELETE 后HWM没降下来的关系,占用的数据块还是这么多如果LZ用的是直接路径导入方式那会越来越大, shrink一下表空间就好了。 删除表空间有时候不会删除datafile 可以这样删除  
      drop tablespace [TABLESPACE NAME] including contents and datafiles;
    删除用户一般要级联删除才可以有效的释放它占用的空间
      drop user [USERNAME] cascade.
      

  6.   

    1。清理一下oracle的日志;
    2。从新导出库的内容,然后重建相关用户方案对象和表空间等对象,从新导入,优化一下数据库。