打印出SQL放到PL/SQL Devoloper 执行,报“无法通过8(在表空间XXX中)扩展 temp 段”,还有一个页面,可以查询出记录,但无法统计数据!
创新互联于2013年成立,先为沿河等服务建站,沿河等地企业,进行企业商务咨询服务。为沿河企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
经过分析产生原因可能是:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象。
解决方法:知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小:
SQLSelect file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=‘XXX’;
返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数:
SQLSELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_NAME='XXX';
通过下面的SQL命令修改临时段表空间的缺省存储值:
SQLALTER TABLESPACE name DEFAULT STORAGE (INITIAL 64K NEXT 64K);
适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题:
SQLALTER USER username TEMPORARY TABLESPACE new_tablespace_name;
使用ALTER TABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注重,一旦添加了数据文件,就不能再删除它,若要删除,就要删除表空间。
不喜欢用命令的朋友,也可以通过ORACLE工具 DBA STUDIO 找到出问题库的表空间,具体位置在“存储”-“表空间”-”XXX”,右拦“一般信息”,可以看到,数据文件使用情况,选择存储,可适当修改,“初使大小”,和“下一个大小”,问题可能会解决,然后选种“XXX”点鼠标右键,选择“添加数据文件”,适当修改“一般信息”的“文件大小”和“存储”的“数据文件已满后自动扩展”的“增量”大小,问题也可以解决!
问题描述:所用数据库为 oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现oracle数据库挂起的问题。 oem打开oracle 10g 数据库操作界面,会显示如下错误信息: 由于输出设备已满或不可用, 归档程序无法归档重做日志。 数据库无法使用 现将解决办法稍作总结: 方法一:增大归档日志空间的大小 可以通过下面的方法来调整系统的回闪恢复区大小: 首先是关闭数据库:以SYS身份链接到oracle,执行shutdown immediate; 启动数据库到mount状态:startup mount 查看回闪恢复区的大小和存放目标:show parameter db_recovery_file_dest 修改回闪恢复区的大小alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小) 最后打开数据库:alter database open; OK , 问题解决。数据库恢复使用。 方法二 :进入oracle清空日志信息,把空间释放出来 启动数据库到mount状态: sqlplus /as sysdba startup mount 新起一个终端,用rman进入把归档日志删除 命令rman target/ (只安装了一个oracle10g数据库) 命令crosscheck archivelog all; (列出归档日志信息) 命令delete expired archivelog all; (将上述列出的归档日志删除)命令exit;此时最好将数据库重新备份一下 把数据库的mount状态更改为open状态 alter database open; OK.问题解决,数据库可以使用。误区:在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份
1、删除无用文件或数据,腾空间。
2、将空间紧张的数据移到其他空闲空间。
3、增加新存储空间。
在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G但是这些表空间的所占用磁盘的物理空间又不会被oracle所释放,如果你用的是PC机很可能会遇到磁盘空间不足的问题,经过个人整理经过如下操作可以重构undo表空间,同样temp表空间也可能在你查询大数据或则创建索引的时候无限扩大导致磁盘空间不足,同样可以用如下方式解决此问题:--查看各表空间名称selectnamefromv$tablespace--查看某个表空间信息selectfile_name,bytes/1024/1024fromdba_data_fileswheretablespace_namelike'UNDOTBS1';--查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。selects.username,u.namefromv$transactiont,v$rollstatr,v$rollnameu,v$sessionswheres.taddr=t.addrandt.xidusn=r.usnandr.usn=u.usnorderbys.username;--检查UNDOSegment状态selectusn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinksfromv$rollstatorderbyrssize;--创建新的UNDO表空间,并设置自动扩展参数;createundotablespaceundotbs2datafile'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS02.DBF'size10mreuseautoextendonnext100mmaxsizeunlimited;--动态更改spfile配置文件;altersystemsetundo_tablespace=undotbs2scope=both;--等待原UNDO表空间所有UNDOSEGMENTOFFLINE;selectusn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinksfromv$rollstatorderbyrssize;--再执行看UNDO表空间所有UNDOSEGMENTONLINE;selectusn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinksfromv$rollstatorderbyrssize;--删除原有的UNDO表空间;droptablespaceundotbs1includingcontents;--确认删除是否成功;
oem打开oracle 10g 数据库操作界面,会显示如下错误信息: “ 由于输出设备已满或不可用, 归档程序无法归档重做日志。”数据库无法使用现将解决办法稍作总结:方法一:增大归档日志空间的大小可以通过下面的方法来调整系统的回闪恢复区大小:
首先是关闭数据库:以SYS身份链接到oracle,执行shutdown immediate;
启动数据库到mount状态:startup mount
查看回闪恢复区的大小和存放目标:show parameter db_recovery_file_dest
修改回闪恢复区的大小alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小)
最后打开数据库:alter database open; OK , 问题解决。数据库恢复使用。方法二 :进入oracle清空日志信息,把空间释放出来启动数据库到mount状态: sqlplus “/as sysdba”startup mount新起一个终端,用rman进入把归档日志删除命令rman target/ (只安装了一个oracle10g数据库)命令crosscheck archivelog all; (列出归档日志信息)命令delete expired archivelog all; (将上述列出的归档日志删除)命令exit;此时最好将数据库重新备份一下把数据库的mount状态更改为open状态alter database open; OK.问题解决,数据库可以使用。 误区: 在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份
有以下处理方法:
方法1:修改数据文件的扩展性
alter database datafile '文件路径' autoextend on next 100m maxsize 4000M;
方法2:给表空间增加新的数据文件
alter tablespace 表空间名 add datafile '数据文件路径‘ size 1000m autoextend on next 100m maxsize 4000M;