There is a bug 6977045 which may cause ORA-1652 raised even though there is sufficient space in RECYCLE BIN. Version under 11.2 believed to be affected
[oracle@rh2 ~]$ 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.
Bug 6977045 ORA-1652 even though there is sufficient space in RECYCLE BIN
This note gives a brief overview bug 6977045.
The content was last updated on: 06-DEC-2010
Click here for details of each of the sections below.
Affects:
Product (Component) Oracle Server (Rdbms)
Range of versions believed to be affected Versions BELOW 11.2
Versions confirmed as being affected
11.1.0.7
Platforms affected Generic (all / most platforms affected)
Fixed:
This issue is fixed in
11.2.0.1 (Base Release)
11.1.0.7 Patch 32 on Windows Platforms
Symptoms:
Related To:
Error May Occur
Storage Space Usage Affected
ORA-1652
Recycle Bin
Description
Under space pressure an ORA-1652 may be signalled even if there is sufficient
space in the recyclebin.
Rediscovery Notes:
Under space pressure, space allocation fails, even though there
is sufficient free space in recycle bin.
Workaround
Turn off the recycle bin.
OR
Purge the recyclebin.
Hdr: 12582291 11.1.0.7 RDBMS 11.1.0.7 SPACE PRODID-5 PORTID-59
Abstract: UPDATING A LOB FAILS WHILE CLEARING RECYCLE BIN EVEN WHEN ENOUGH FREE SPACE IS A
BUG TYPE CHOSEN
===============
Code
SubComponent: Recovery
======================
DETAILED PROBLEM DESCRIPTION
============================
An OCI application module tried to update a LOB object, and this operation
internally & recursively tried to clear off a few segments from the recycle
bin. As ct. had enabled triggers preventing uncontrolled droppings of
segments, this apparently prevented the application module from succeeding.
Further, since this error did not show up on the application module that
failed, this customer-facing critical application of this large enterprise
was down for considerable time.
DIAGNOSTIC ANALYSIS
===================
None. This bug is raised mainly as a Q/A to get clarifications for customer,
who is demanding an answer and possible action plan so that they can prevent
such disastrous situation in future.
WORKAROUND?
===========
Yes
WORKAROUND INFORMATION
======================
Disable the trigger or not using the recycle bin (Though neither operation
is acceptable to ct. because of their business reasons).
TECHNICAL IMPACT
================
Critical application module fails.
RELATED ISSUES (bugs, forums, RFAs)
===================================
None (MOS Note 978045.1 was referenced by ct.)
Hdr: 6977045 10.2 RDBMS 10.2 RAM DATA PRODID-5 PORTID-23 ORA-1652
Abstract: ORA-1652 LMT SPACE NOT REALLOCATED CORRECTLY AFTER DROP TABLE
*** 04/16/08 12:57 pm ***
TAR:
----
6880393.992
PROBLEM:
--------
ORA-12801: error signaled in parallel query server P038
ORA-1652: unable to extend temp segment by 320 in tablespace ERROR_TS
After dropping a table in a LMT the space is not properly returned to the
tablespace datafiles .
Only after purge tablespace error_ts; do we see the space returned correctly.
Subsequently the test plan is successful and the table is created.
DIAGNOSTIC ANALYSIS:
--------------------
See attached test case. test_output.log
WORKAROUND:
-----------
none
RELATED BUGS:
-------------
REPRODUCIBILITY:
----------------
TEST CASE:
----------
See attached test case. test_output.log
STACK TRACE:
------------
SUPPORTING INFORMATION:
-----------------------
24 HOUR CONTACT INFORMATION FOR P1 BUGS:
----------------------------------------
DIAL-IN INFORMATION:
--------------------
IMPACT DATE:
------------
*** 04/16/08 01:29 pm ***
*** 04/16/08 02:04 pm ***
the problem here is that even though the objects are occupying the same space
when they were created, dba_free_space shows one datafile to contain all the
free space reclaimed by the drop table command.
*** 04/16/08 02:35 pm ***
Please confirm this is a duplicate of bug 5083393.
*** 04/17/08 10:56 am ***
*** 04/17/08 05:09 pm ***
*** 04/17/08 05:14 pm *** (CHG: Sta->10)
*** 04/17/08 05:14 pm ***
*** 04/21/08 11:06 am *** (CHG: Sta->16)
*** 04/21/08 11:06 am ***
please review uploaded file ora_test1.log.
Patch 5083393 has been applied to this instance and the test was ran against
this patch.
Notice the query immedatly following the ORA_1652 error. The temporary
segments seem to be causing the failure and specifically segment 1199.88012 .
*** 04/22/08 01:55 pm ***
Current SQL statement for this session:
create table seckle.my_test2_tb
nologging tablespace error_ts
parallel (degree 6)
as
select * from ecm.E08401AH_GEMINI_CMF_WIDE_TB
ERROR parallelizer slave or internal
qbas:54482
pgakid:2 pgadep:0
qerpx: error stack: OER(12805)
qbas_qerpxs: 54482
dfo_qerpxs: 0x4b7ba89e0 dfo1_qerpxs: 0x4b7ba9178
ntq_qerpxs: 1 ntqi_qerpxs: 0
nbfs_qerpxs: 0
nobj_qerpxs: 2 ngdef_qerpxs: 1
mflg_qerpxs: 0x2c
slave set 1 DFO dump:
kkfdo: (0x4b7ba9178)
kkfdo->kkfdochi: (0x0)
kkfdo->kkfdopar: (0x0)
kkfdo->kkfdonxt: (0x0)
kkfdo->kkfdotqi: 0
kkfdo->kkfdontbl: 2
kkfdo->kkfdongra: 1
kkfdo->kkfdofigra: 0
kkfdo->kkfdoflg: 0x2818
kkfdo->kkfdooct: 1
kkfdo->kkfdonumeopn: 0
Output table queue: (0x4b7fab1b8)
kxfqd : 0x4b7fa5728
kxfqdtqi : 0 TQ id
kxfqdcc : 0x14 TQ: from slave set 1 to QC
kxfqdpty : 4
kxfqdsmp : 0 number of samples
kxfqdflg : 0x4
kxfqdfmt : TQ format
kxfqfnco : 5 number of TQ columns
kxfqfnky : 0 number of key columns
TQ column kxfqcbfl kxfqcdty kxfqcflg kxfqcplen
kxfqfcol[ 0]: 4 23 0x0 4
kxfqfcol[ 1]: 32720 23 0x80 32720
kxfqfcol[ 2]: 1 23 0x0 1
kxfqfcol[ 3]: 76 23 0x0 76
kxfqfcol[ 4]: 32720 23 0x0 32720
slave set 2 DFO dump:
np_qerpxm: 6 mflg_qerpxm: 0xa7
cdfo_qerpxm: 0x4b7ba9178 (tqid 0) sdfo_qerpxm: 0x0 (tqid -1)
ctqh_qerpxm: 0xffffffff79378ac8 dump:
kxfqh : 0xffffffff79378ac8
kxfqhflg : 0x15 TQ handle open
kxfqhmkr : 0x4 QC
kxfqhpc : 2 1:producer 2:consumer 3:ranger
kxfqepty : 4
kxfqhnsam : 6
kxfqhnth : 6
kxfqhdsc : TQ descriptor
kxfqd : 0x4b7fa5728
kxfqdtqi : 0 TQ id
kxfqdcc : 0x14 TQ: from slave set 1 to QC
kxfqdpty : 4
kxfqdsmp : 0 number of samples
kxfqdflg : 0x4
kxfqdfmt : TQ format
kxfqfnco : 5 number of TQ columns
kxfqfnky : 0 number of key columns
TQ column kxfqcbfl kxfqcdty kxfqcflg kxfqcplen
kxfqfcol[ 0]: 4 23 0x0 4
kxfqfcol[ 1]: 32720 23 0x80 32720
kxfqfcol[ 2]: 1 23 0x0 1
kxfqfcol[ 3]: 76 23 0x0 76
kxfqfcol[ 4]: 32720 23 0x0 32720
dnst_qerpxm[cur,par]: 6,0 dcnt_qerpxm[cur,par]: 0,0
ppxv_qerpxm[0]: 0xffffffff79377f50 count[np..1]:1 1 1 1 1 1
pqv1_qerpxm: 0xffffffff79377f38 bits[np..1]: 111111
pqv2_qerpxm: 0xffffffff79377f40 bits[np..1]: 000000
If you have enabled recyclebin ,then you should check tablespace free space with dba_free_space and recyclebin space also like:
create view dba_free_space_pre10g as
select ts.name TABLESPACE_NAME,
fi.file# FILE_ID,
f.block# BLOCK_ID,
f.length * ts.blocksize BYTES,
f.length BLOCKS,
f.file# RELATIVE_FNO
from sys.ts$ ts, sys.fet$ f, sys.file$ fi
where ts.ts# = f.ts#
and f.ts# = fi.ts#
and f.file# = fi.relfile#
and ts.bitmapped = 0
union all
select /*+ ordered use_nl(f) use_nl(fi) */
ts.name TABLESPACE_NAME,
fi.file# FILE_ID,
f.ktfbfebno BLOCK_ID,
f.ktfbfeblks * ts.blocksize BYTES,
f.ktfbfeblks BLOCKS,
f.ktfbfefno RELATIVE_FNO
from sys.ts$ ts, sys.x$ktfbfe f, sys.file$ fi
where ts.ts# = f.ktfbfetsn
and f.ktfbfetsn = fi.ts#
and f.ktfbfefno = fi.relfile#
and ts.bitmapped <> 0
and ts.online$ in (1, 4)
and ts.contents$ = 0
/
create view dba_free_space_recyclebin as
select /*+ ordered use_nl(u) use_nl(fi) */
ts.name TABLESPACE_NAME,
fi.file# FILE_ID,
u.ktfbuebno BLOCK_ID,
u.ktfbueblks * ts.blocksize BYTES,
u.ktfbueblks BLOCKS,
u.ktfbuefno RELATIVE_FNO
from sys.recyclebin$ rb, sys.ts$ ts, sys.x$ktfbue u, sys.file$ fi
where ts.ts# = rb.ts#
and rb.ts# = fi.ts#
and u.ktfbuefno = fi.relfile#
and u.ktfbuesegtsn = rb.ts#
and u.ktfbuesegfno = rb.file#
and u.ktfbuesegbno = rb.block#
and ts.bitmapped <> 0
and ts.online$ in (1, 4)
and ts.contents$ = 0
union all
select ts.name TABLESPACE_NAME,
fi.file# FILE_ID,
u.block# BLOCK_ID,
u.length * ts.blocksize BYTES,
u.length BLOCKS,
u.file# RELATIVE_FNO
from sys.ts$ ts, sys.uet$ u, sys.file$ fi, sys.recyclebin$ rb
where ts.ts# = u.ts#
and u.ts# = fi.ts#
and u.segfile# = fi.relfile#
and u.ts# = rb.ts#
and u.segfile# = rb.file#
and u.segblock# = rb.block#
and ts.bitmapped = 0
/
dba_free_space_pre10g which shows the real free space like 9i behavior , dba_free_space_recyclebin shows free space resided in recyclebin.