Home  >  Article  >  Database  >  ORA-01652:无法通过128(在表空间space中)扩展temp段

ORA-01652:无法通过128(在表空间space中)扩展temp段

WBOY
WBOYOriginal
2016-06-07 17:28:112263browse

ORA-01652:无法通过128(在表空间space中)扩展temp段

当“space=用户表空间 ”时报错处理:
 
--查看表空间的大小;
 
SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
 
--查看表空间中数据文件存放的路径:
 
SQL> SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA_DATA_FILES;
 
--错误处理:附加表空间
 
--alter tablespace TESTSPACE add datafile 'D:\MYSPACE01.DBF' size 20480m
 
当“space=temp ”时报错处理: 
 
临时表空间的作用:
 
  临时表空间主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。
 
  当临时表空间不足时,表现为运算速度异常的慢,,并且临时表空间迅速增长到最大空间(扩展的极限),并且一般不会自动清理了。
 
  如果临时表空间没有设置为自动扩展,则临时表空间不够时事务执行将会报ora-01652无法扩展临时段的错误,当然解决方法也很简单:1、设置临时数据文件自动扩展,或者2、增大临时表空间。
 
  临时表空间的相关操作:
 
  查询默认临时表空间:
  
 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
 
查询临时表空间状态:
 SQL> select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
 
TABLESPACE_NAME
 ------------------------------
 FILE_NAME
 --------------------------------------------------------------------------------
  FILE_SIZE AUT
 ---------- ---
 TEMP
 /opt/Oracle/oradata/TEST/temp01.dbf
        65 YES
 
查询临时表空间动态视图:
 SQL> select * from v$tempfile;
 
    FILE# CREATION_CHANGE# CREATION_TIM        TS#    RFILE# STATUS
 ---------- ---------------- ------------ ---------- ---------- -------
 ENABLED        BYTES    BLOCKS CREATE_BYTES BLOCK_SIZE
 ---------- ---------- ---------- ------------ ----------
 NAME
 --------------------------------------------------------------------------------
          1          446436 09-DEC-08            3          1 ONLINE
 READ WRITE  68157440      8320    20971520      8192
 /opt/oracle/oradata/TEST/temp01.dbf
 
扩展临时表空间:
 
  方法一、增大临时文件大小:
 
  SQL> alter database tempfile '/opt/oracle/oradata/TEST/temp01.dbf'  resize 100m;
 
  Database altered.
 
  方法二、将临时数据文件设为自动扩展:
 
  SQL>  alter database tempfile '/opt/oracle/oradata/TEST/temp01.dbf' autoextend on next 5m maxsize unlimited;
 
扩展表空间时报错:
 SQL> alter database tempfile  '/opt/oracle/oradata/TEST/temp01.dbf' resize 100m;
 alter database tempfile  '/opt/oracle/oradata/TEST/temp01.dbf' resize 100m
 *
 ERROR at line 1:
 ORA-00376: file 201 cannot be read at this time
 ORA-01110: data file 201: '/opt/oracle/oradata/TEST/temp01.dbf'
 

SQL>  alter database tempfile '/opt/oracle/oradata/TEST/temp01.dbf' autoextend on next 5m maxsize unlimited;
  alter database tempfile '/opt/oracle/oradata/TEST/temp01.dbf' autoextend on next 5m maxsize unlimited
 *
 ERROR at line 1:
 ORA-00376: file 201 cannot be read at this time
 ORA-01110: data file 201: '/opt/oracle/oradata/TEST/temp01.dbf'
 

原因是临时表空间不知道什么原因offline了,修改为online后修改成功。
 SQL>  alter database tempfile '/opt/oracle/oradata/TEST/temp01.dbf' online;
 Database altered.

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn