|
|
RAC databases and ORA-1652: Unable To Extend Temp Segment By %s In Tablespace TEMP [ID 258941.1] |
转到底部 |
|
修改时间:2012-2-7类型:PROBLEM状态:MODERATED优先级:3 |
|
In this Document
Symptoms
Changes
Cause
Solution
References
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review. |
Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 10.2.0.1 - Release: 9.2 to 10.2
Information in this document applies to any platform.
***Checked for relevance on 06-Feb-2012***
Symptoms
Scripts may fail due to ORA-1652 "unable to extend temp segment by %s in
tablespace TEMP"
although free space exists in TEMP tablespace in a RAC database configuration.
Also scripts may not fail you may find error messages (ORA-1652)
inside the alert.log of some of the instances.
Changes
Migrate to RAC configuration.
Use Default Temporary Tablespace feature.
Cause
We have 2 separate bugs here:
bug 2934117 : ORA-1652:CAN'T ACQUIRE FREE EXTENTS OWNED BY OTHER NODE
for when scripts fail and also
bug 2858082 : EVEN IF THE FREE EXTENTS ARE AVAILABLE, ORA-1652 OCCURS IN ALERT.
LOG ON RAC
when scripts do not fail but errors appear inside alert.log of RAC instances.
Solution
1st Case bug 2934117
====================
Due to bug 2934117 we should NOT use a DEFAULT TEMPORARY TABLESPACE
for RAC database configuration, otherwise scripts could fail with ORA-1652 as a RAC node
cannot acquire free extents that are owned by another RAC instance although they are free.
bug 2934117 is fixed in 9205 and all versions of Oracle 10. Therefore, the best solution is to apply the latest patch set or to upgrade to a supported version of Oracle.
Another solution is to apply the following workaround:
Workaround
------------------
step 1: Create new normal temp tablespace with minimum size (for example TEMPRAC )
step 2: Set as default temp tablespace TEMPRAC
alter database default temporary tablespace TEMPRAC;
This commands changes all database users temporary tablespace to TEMPRAC
Now previous default temporary tablespace TEMP is a normal temporary tablespace.
step 3: For all database users change back temporary tablespace to TEMP:
alter user default tempory teblespace TEMP;
step 4: shutdown immediate all instances
step 5: startup all instance
Unfortunatelly this TEMPRAC Default Temporary Tablespace cannot be dropped
completely.
We should keep it with small size.
In case new Database users are created, and temporary tablespace is not defined
at creation time, these would
have as temporary tablespace TEMPRAC, so every new user after creation we have
to specify:
alter user temporary tablespace TEMP;
-> in order to change their temporary tablespace to TEMP which is a normal
temporary tablespace.
2nd case bug 2858082
==================
The 2nd issue is caused due to the bug 2858082 "EVEN IF THE FREE EXTENTS ARE
AVAILABLE, ORA-1652 OCCURS IN ALERT.LOG ON RAC "
In this bug although scripts that need Temp tablespace space due to Sort
Operations (order by, group by, join, etc)
are successfull we may see this error message inside alert.log of RAC instances.
When a RAC instance fills its own sort pool of extents, instead of allocation
new extents it may ask for free temp extents
from the other RAC instances. During this operation the ORA-1652 may appear
inside the alert.log although the operation has succeeded.
This bug would only be solved in subsequent releases as it has been
characterised as a low priority issue from development as only dis-affect is that alert.log
may contain such messages but process do not fail.
You can ignore these error messages.
bug 2858082 is now fixed in 9207 10104 and 10201.
Therefore, the best option is to apply the latest patch set.
References
BUG:2934117 - ORA-1652:CAN'T ACQUIRE FREE EXTENTS OWNED BY OTHER NODE
|
|
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition > Real Application Cluster > RAC Administrative Issues
|
ORA-1652
返回页首
窗体底端
|
|||||
|
|
||||
|