首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • oracle 数据库空间急速增长 [已结贴,结贴人:chifanheshui]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chifanheshui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 21:08:49 楼主
    RT!
    这两天突然发现,数据库的空间急速增长,昨天才腾出来8G空间,今天一天就满了,
    个人估计跟做debug有关!但是不知道怎么解决。

    请教各位达人:
    如何才能让数据库占的空间变小?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shmilyjiujiu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 08:35:531楼 得分:0
    是undo,temp还是system表空间增长过快??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chensi05
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 08:52:352楼 得分:0
    最好看看哪个表空间增加的比较快,再看看Log
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jycjyc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 11:30:473楼 得分:10
    你得查一下到底是执行什么应用出现的问题,另外是哪个表空间,temp?
    如果是temp,那肯定是因为执行了大排序引起,最好的方法就是优化SQL
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • catamite
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 11:46:434楼 得分:0
    看下具体的表空间,再看下表空间的功能,然后再对表空间进行调优
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vc555
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 13:04:155楼 得分:0
    你先要看是什么文件在增大,才好说别的。
    是哪个表空间的数据文件在增大?还是跟踪文件在增大?等等。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sure428
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 13:35:566楼 得分:0
    先确定一下,哪个文件急剧增大呀?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chifanheshui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:21:387楼 得分:0

     Oracle9i为我们提供了一个全局的临时表空间。有的时候我们会发现在做了大量的排序操作后,temp表空间并没有去释放,而且在更大的程度上面占用了我们的磁盘空间,其实我们可以通过重建或者切换的手段来使我们的temp表空间得到重生。
      首先我们可以先看一下,当前用户所属的临时表空间有那些  


        SQL> select username ,temporary_tablespace from dba_users;
      USERNAME TEMPORARY_TABLESPACE
      ------------------------------ ------------------------------
      SYS TEMP1
      SYSTEM TEMP1
      DBSNMP TEMP1
      HUJINPEI TEMP1
      ALAN1 TEMP1
      PERFUSER TEMP1
      ALAN2 TEMP1
      MYUSER TEMP1
      OUTLN TEMP1
      WMSYS TEMP1

      已选择10行。

      查看当前有那些临时文件。  


        SQL> select name from v$tempfile;
      NAME
      --------------------------------------------------------------------------------
      D:\ORACLE\ORADATA\ICMNLSDB\TEMP1_01.DBF
      D:\ORACLE\ORADATA\ICMNLSDB\TEMP1_02.DBF

      为了切换这个临时文件,我们可以重新建立一个临时表空间 


          SQL> create temporary tablespace temp
      2 tempfile 'D:\ORACLE\ORADATA\ICMNLSDB\TEMP01.DBF' size 10M ;

      表空间已创建。  


        SQL> alter tablespace temp add tempfile 'D:\ORACLE\ORADATA\ICMNLSDB\TEMP02.DBF' size 10M;

      表空间已更改。共2页。 1 2 :

     这个时候我们就可以将刚刚建好的TEMP表空间设置为我们数据库默认的临时表空间: 


        SQL> alter database default temporary tablespace temp;

      数据库已更改。  


        SQL> select username,temporary_tablespace from dba_users;
      USERNAME TEMPORARY_TABLESPACE
      ------------------------------ ---------------------------
      SYS TEMP
      SYSTEM TEMP
      DBSNMP TEMP
      HUJINPEI TEMP
      ALAN1 TEMP
      PERFUSER TEMP
      ALAN2 TEMP
      MYUSER TEMP
      OUTLN TEMP
      WMSYS TEMP

      已选择10行。

      当然我们还可以选择DROP掉以前旧的TEMP1的表空间: 


     SQL> drop tablespace temp1 including contents ;

      表空间已丢弃。


    解决!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chifanheshui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:43:168楼 得分:0
    引用 6 楼 sure428 的回复:
    先确定一下,哪个文件急剧增大呀?


    temp01.DBF增大,怀疑是debug有关。我debug的时候,开始了好多的事务。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ruihuahan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-08-21 11:47:559楼 得分:0
    临时表空间不会无限增长的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • footpath
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 12:23:0610楼 得分:0
    数据增长这么快的可能性不大,肯定是temp表空间,清理掉就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liutao88
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:16:4111楼 得分:0
    应该是临时文件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hhfwyl
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:35:2312楼 得分:0
    欢迎加入oracle qq群9701750
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Hopewell_Go
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:33:1913楼 得分:10
    楼主首先要确定是什么表空间突然如此增长。。。如果是temp可以将其大小固定。。最好是先优化有问题的sql语句。做个statpack...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chifanheshui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 18:18:3014楼 得分:0
    引用 13 楼 Hopewell_Go 的回复:
    楼主首先要确定是什么表空间突然如此增长。。。如果是temp可以将其大小固定。。最好是先优化有问题的sql语句。做个statpack...

    固定后,就会发生temp空间不够的错误。归根结底,还是sql的问题,同样的SQL放到另一个数据比较少的数据库中执行,就没有问题。
    SQL文中有一个and的连接条件,去掉后,就可以执行,加上就会有temp空间不足的问题。


    感谢各位热心的网友!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved