ORACLE 临时表空间TEMP 满了怎么办?,sql,sql教程,Oracle基础
最近遇到这样一个问题:前一段时间网页查询ORACLE表正常
,可最近一直页面无法显示
。打印出SQL放到PL/SQL Devoloper 执行
,报“无法通过8(在表空间XXX中)扩展 temp 段”
,还有一个页面
,可以查询出记录
,但无法统计数据!
经过分析产生原因可能是:ORACLE临时段表空间不足
,因为ORACLE总是尽量分配连续空间
,一但没有足够的可分配空间或者分配不连续就会出现上述的现象
。 解决方法:知道由于ORACLE将表空间作为逻辑结构-单元
,而表空间的物理结构是数据文件
,数据文件在磁盘上物理地创建
,表空间的所有对象也存在于磁盘上
,为了给表空间增加空间
,就必须增加数据文件
。先查看一下指定表空间的可用空间
,使用视图SYS.DBA_FREE_SPACE
,视图中每条记录代表可用空间的碎片大?a href="http://www.learners.cn" target="_blank">。?nbsp;
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”点鼠标右键
,选择“添加数据文件”
,适当修改“一般信息”的“文件大小”和“存储”的“数据文件已满后自动扩展”的“增量”大小
,问题也可以解决!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-122221/
,如需转载,请注明出处,否则将追究法律责任。