Username: Password:

ORACLE 临时表空间TEMP 满了怎么办?-数据库专栏,ORACLE
来源:作者: 发布时间:2007-12-25 13:39:49


        最近碰到这样一个问题:前一段时间网页查询oracle表正常,可最近一直页面无法显示。打印出sql放到pl/sql devoloper 执行,报“无法通过8(在表空间xxx中)扩展 temp 段”,更有一个页面,能够查询出记录,但无法统计数据!
       经过分析产生原因可能是:oracle临时段表空间不足,因为oracle总是尽量分配连续空间,一但没有足够的可分配空间或分配不连续就会出现上述的现象。 

  解决方法:知道由于oracle将表空间作为逻辑结构-单元,而表空间的物理结构是数据文档,数据文档在磁盘上物理地创建,表空间的任何对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文档。先查看一下指定表空间的可用空间,使用视图sys.dba_free_space,视图中每条记录代表可用空间的碎片大小: 

sql>select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=‘xxx’; 

  返回的信息可初步确定可用空间的最大块,看一下他是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数: 

sql>select initial_extent,next_extent,min_extents,pct_increase from sys.dba_tablespaces where tablespace_name=xxx; 

  通过下面的sql命令修改临时段表空间的缺省存储值: 

sql>alter tablespace name default storage (initial 64k next 64k); 

  适当增大缺省值的大小有可能解决出现的错误问题,也能够通过修改用户的临时表空间大小来解决这个问题: 

sql>alter user username temporary tablespace new_tablespace_name; 

  使用alter tablespace命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加了数据文档,就不能再删除他,若要删除,就要删除表空间。

       不喜欢用命令的朋友,也能够通过oracle工具 dba studio 找到出问题库的表空间,具体位置在“存储”->“表空间”->”xxx”,右拦“一般信息”,能够看到,数据文档使用情况,选择存储,可适当修改,“初使大小”,和“下一个大小”,问题可能会解决,然后选种“xxx”点鼠标右键,选择“添加数据文档”,适当修改“一般信息”的“文档大小”和“存储”的“数据文档已满后自动扩展”的“增量”大小,问题也能够解决!

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅