ITPub博客

首页 > 数据库 > Oracle > 在表空间有足够free space的情况下出现ORA-1652

在表空间有足够free space的情况下出现ORA-1652

Oracle 作者:germany006 时间:2014-05-28 16:10:07 0 删除 编辑
转载地址:http://www.askmaclean.com/page/4?s=%E8%A1%A5%E4%B8%81


Search Results for: 补丁

在表空间有足够free space的情况下出现ORA-1652

版本10.2.0.5之前存在这样的问题,当打开recyclebin回收站功能的情况下, Tablespace 上有足够的Free Space空闲空间,但是因为这些Free Space属于回收站中的对象,在并行INSERT数据 或者并行CTAS的情况下 PARALLEL启用的情况下可能遇到ORA-1652错误:

 

 

oracle@localhost:~$ oerr ora 1652
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.

例如ORA-01652: unable to extend temp segment by 320 in tablespace MAC_TS

 

这一般是由于BUG 6977045 – ORA-1652 LMT SPACE NOT REALLOCATED CORRECTLY AFTER DROP TABLE, 该BUG 确认在版本 11.2中修复。

 

该BUG的原理是当CTAS with nologging是使用直接路径加载direct path load,Oracle一开始在针对的永久表空间上创建一个临时段继以加载数据。一旦这些操作完成,则临时段会被重命名并成为表的一部分。 当在该永久表空间上drop一张表,当打开回收站的情况下 该表被置入回收站recyclebin中,该段之前分配的空间由于本BUG的原因造成CTAS + PARALLEL + NOLOGGING时不计算为free space。  这导致了ORA-1652错误的触发。

 

目前针对该BUG 6977045 的off patch有10.2.0.4 、11.1.0.7和11.1.0.7.9 的版本:

 

Patch 6977045 ORA-1652 LMT SPACE NOT REALLOCATED CORRECTLY AFTER DROP TABLE

 

 

如果不想打补丁, 那么Workaround 可以是:

 

1. 关闭 回收站功能 recyclebin=off

2. 在CTAS PARALLEL NOLOGGING 前 purge recyclebin清理回收站



自我总结:

1、查看recyclebin是否开启:
SQL> show parameter recyclebin;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      on
 
2、查看Oracle版本是 11.2.0.3.0 也存在这种报错,free space 完全足够的情况下(还有1T空闲)依然报错:ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段

SQL> select * from v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production


原因待查!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28371090/viewspace-1171850/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ORACLE,MYSQL,POSTGRESQL,SQLSERVER,MONGODB,TIDB,DB2,REDIS,本博客只为记录自己学习总结,不代表完全准确。

注册时间:2013-03-06

  • 博文量
    776
  • 访问量
    1038331