1. 如下是ORA-01652报错的概述
[oracle@localhost ~]$ oerr ora 01652
01652, 00000, "unable to extend temp segment by %s in tablespace %s"
// *Cause: Failed to allocate an extent of the required number of blocks for
// a temporary segment in the tablespace indicated.
// *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
// files to the tablespace indicated.
--大致意思是说,不能在相应的表空间上扩展临时段。解决方法是给相应的表空间增加数据文件
2. 该错误可以分为两种情况,第一种是临时表空间不够,第二种是永久表空间不够
该篇先描述一下第一种情况(不能在某临时表空间上扩展临时段)。这种情况是很好理解的,就是我们的临时表空间不够用了。
处理方法也比较简单
1)给临时表空间增加临时文件
查看数据库默认临时表空间
SQL> col PROPERTY_NAME format a30;
SQL> col PROPERTY_VALUE format a30;
SQL> col DESCRIPTION format a50;
SQL> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ ------------------------------ --------------------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
查看用户临时表空间
select user_id,username,account_status,default_tablespace,temporary_tablespace from dba_users;
查看临时表空间状态
SQL> select file_id,file_name,tablespace_name,bytes/1024/1024,status,autoextensible from dba_temp_files;
FILE_ID FILE_NAME TABLESPACE_NAME BYTES/1024/1024 STATUS AUT
---------- -------------------------------------------------- ------------------------------ --------------- ------- ---
1 /oradata/ora11g/temp01.dbf TEMP 22 ONLINE YES
alter tablespace temp add tempfile '/oradata/ora11g/temp02.dbf' size 20m;
向临时表空间添加新的临时文件
2)扩大临时表空间文件大小(或设置为自动扩展)
alter database tempfile '/oradata/ora11g/temp01.dbf' resize<?xml:namespace prefix="st1">?xml:namespace>100m;
改变已有临时文件大小
alter database tempfile '/oradata/ora11g/temp01.dbf' autoextend on next 5m maxsize unlimited;
设置临时数据文件为可自动扩展
3. 第二种错误情况是报在永久表空间上不能扩展临时段,这种情况碰到的比较少,我会在下一篇博客中详细的描述一下
链接为:http://589985.blog.51cto.com/1609992/1359260
本文出自 “技术” 博客,请务必保留此出处http://589985.blog.51cto.com/1609992/1359260