Undo tablespace growing without reusing space
Hi,
I'm running an Oracle9i database on Solaris. I am using the automatic undo management and I have one undo tablespace. The UNDO_RETENTION value is 900. I have created the undo tablespace this way (clause in create database statement):
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u04/oracle/oradata/my_dbname/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
The undo tablespace datafile is now close to 3G. I have other servers running the same setup, and their undo datafile size is still 200M. There is currently no active transaction in the database. Any idea why this is happening? Is there any tables I can check for clues?
Many thanks,
Gloria
Should Oracle automatically shrink the undo tablespace (datafile) when it is not needed anymore? Say at one point the database really needs 3G of undo tablespace, but afterwards only 10M is needed, would the datafile be 'shrunk' back?
Also, how can I check if the database really needed the 3G of undo tablespace at one point? (I guess it's checking the level of activities in the database, but how do I do that for past data?)
I'm trying to decide whether the undo tablespace really grew due to a need at some point or is it a case of Bug 2660394 (documented in metalink note271119.1). The bug basically says that "An auto extensible undo tablespace MAY grow before reusing expired extents leading to more space use than actually needed".
Similar Messages
-
How the undo tablespace grows very fast., how can we control on it. When I try to resize it did not allow me, what exact action can i take it.
>> How the undo tablespace grows very fast., how can we control on it.
It’s all depending on the DML transaction activities on your database i.e. frequent inserts,updates, and deletes.
>> When I try to resize it did not allow me, what exact action can i take it.
How/What you tried to resize it. Can you show the details??
Moreover, Do take a look at the Oracle Documentation on "Managing the Undo Tablespace"
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/undo.htm
Regards,
Sabdar Syed.
Added the link.
Message was edited by:
Sabdar Syed -
Hello All
We are having issues with undo tablespace growing... the oracle version is 10.2.0.1.0
the table is holding around 400000000 records and this table is also partitioned by range
any reason for this undo tablespace growing by at an high rate
regards
KedarUndo tablespaces are special tablespaces used solely for storing undo information. You cannot create any other segment types (for example, tables or indexes) in undo tablespaces. Each database contains zero or more undo tablespaces. In automatic undo management mode, each Oracle instance is assigned one (and only one) undo tablespace. Undo data is managed within an undo tablespace using undo segments that are automatically created and maintained by Oracle.
Every Oracle Database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of transactions, primarily before they are committed. These records are collectively referred to as undo.
Undo records are used to:
Roll back transactions when a ROLLBACK statement is issued
Recover the database
Provide read consistency
Analyze data as of an earlier point in time by using Oracle Flashback Query
Recover from logical corruptions using Oracle Flashback features
When a ROLLBACK statement is issued, undo records are used to undo changes that were made to the database by the uncommitted transaction. During database recovery, undo records are used to undo any uncommitted changes applied from the redo log to the datafiles. Undo records provide read consistency by maintaining the before image of the data for users who are accessing the data at the same time that another user is changing it.
You confuse TEMP with UNDO tablespace.
Best Regards,
Francisco Munoz Alvarez
www.oraclenz.com -
ORA-30036: unable to extend segment, our UNDO TABLESPACE grow to 500 GB
Our client report that when they run their batch job the error "ORA-30036: unable to extend segment..." came into their log file.
I have checked with alert log but nothing there. We use Oracle 11g on Solaris 10 SPARC.
Any suggestion ?
Thanks & RegardsRefer to
Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace [ID 460481.1]
ORA-30036: unable to extend segment by <N> in undo tablespace '<tname>' [ID 271664.1] -
UNDO tablespace increase more more .... spaces
I checked my Oracle database. I found undo tablespace increase more more spaces.
from 10G , now 40G
undo_retention = 15 minutes
Please help me
How I tune and monitor for track this problem?Hello HunterX,
You have not indicated which version of database & on what platform. The Version number & platform is very important...I tell you why. Because i had the same issue with my database and handled successfully.
Please check the BUG No. Note:2660394.8 & also note no. 271119.1.
This explains that Undo tablespace is used and after the expiry of 15 minutes it does not use the EXPIRED extents. It again allocates the NEW extents out of your segment of the tablespace....And leads to continuous growing of UNDO Tablespace...
Do the follwoing i feel would be appropriate...Rest you can decide it better....
1. Create a New UNDO Tablespace may be undo_new of smaller size..
2. Do not keep autoextend ON and put some max size...may be 1 GB. Do not put it unlimited.
3. Stop the DB Instance
4. Change the name of new UNDO Tablespace in INIT.ORA file
5. Restart the DB Instance.....
6. drop the Old Tablespace UNDO & delete the datafile...
If stopping of DB Instance is not possible...(for production server), i hv few command which does the above on-line. But i do not remember them at this time...I will hv to refer my docs. If you feel i can try that for you...otherwise you may follwo above points.
Hope that helps to you. Thanks.
Regards,
Kamesh Rastogi -
Hi everyone!
I used this sql to check the status of my tablespaces.
SELECT /* + RULE */ df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Size (MB)",
SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
fs.bytes / (1024 * 1024),
SUM(df.bytes_free) / (1024 * 1024),
Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
FROM dba_temp_files fs,
(SELECT tablespace_name,bytes_free,bytes_used
FROM v$temp_space_header
GROUP BY tablespace_name,bytes_free,bytes_used) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
ORDER BY 4 DESC;It shows that my undo tablespace has only 3% space left.
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nithuser645399 wrote:
Hi everyone!
I used this sql to check the status of my tablespaces.
<snip>
It shows that my undo tablespace has only 3% space left.Which is not a problem of itself. Were you seeing an errors due to lack of space in the undo TS? Do you understand how the undo TS uses - and reuses - space?
>
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.
And of course the output is the same. Modifying the autoextend allocation of a file doesn't change the size of anything. It simply allows the file to grow if and when it becomes necessary. And with 3% still available, it is not necessary. And it won't become necessary until some DML causes that 3% to be exhausted.
I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nith -
FLASHBACK OFF FOR UNDO TABLESPACE????
Hi all
As my Undo tablespace growing evryday 2 GB & NOW it reached 19,
Database size is 6GB only
using Oracle 10g Release 2 without patch Set (release 1002000100) on Hp-Unix OS
Can i use the Undo tablespace with FLASHBACK OFF option?
what are the Consequences for Turning off the FLASHBACK,
Can we use this type of Undo tablespace with Flashback OFF???
CREATE UNDO TABLESPACE UNDOTBS03 DATAFILE
'/app/oracle/product/oradata/prod/undotbs03.dbf' SIZE 1000M AUTOEXTEND OFF
ONLINE
RETENTION NOGUARANTEE
BLOCKSIZE 8K
FLASHBACK OFF;
THANKS ALOTOracle Flashback Database: feature is similar to conventional point-in-time recovery in its results, allowing you to return a database to its state at a time in the recent past. It is, however, much faster than point-in-time recovery, because it does not require restoration of datafiles from a backup and it requires application of fewer changes from the archived redo logs.
UNDO Tablespace: Oracle db save the old value when a process change data in undo tablespace.
I think that you can change de default UNDO tablespace as NO AUTOEXTEND, and
Configure
SET UNDO_MANAGEMENT=AUTO
SET UNDO_RETENTION= ( second need for logger transaction )
UNDO_RETENTION specifies (in seconds) the low threshold value of undo retention. For AUTOEXTEND undo tablespaces, the system retains undo for at least the time specified in this parameter, and automatically tunes the undo retention period to satisfy the undo requirements of the queries.
For fixed- size undo tablespaces, the system automatically tunes for the maximum possible undo retention period, based on undo tablespace size and usage history, and ignores UNDO_RETENTION unless retention guarantee is enabled. -
Unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
Hi All,
I have enabled the Oracle flashback data archive.
Undo tbs size is unlimited. Whenevr i enable FBDA i am getting the below error. when i disable this feature the error is not coming.
My Oracle version is 11.0.2.0
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
; nested exception is java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
can anyone help me to solve the issue would be very much helpful.
thanks
MohanORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
30036, 00000, "unable to extend segment by %s in undo tablespace '%s'"
// *Cause: the specified undo tablespace has no more space available.
// *Action: Add more space to the undo tablespace before retrying
// the operation. An alternative is to wait until active
// transactions to commit. -
Hi,
I am using 10.2.0.3.0 on Oracle Solaris 5.10.
I have an undo tablespace 'UNDOTBS1' which has 5 data files of sizes 60GB. Here are my undo parameters:
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1I have a long running batch process, which is inserting billions of records in the table and generating lots of undo. The batch is running for the last two days, and generating lots of undo and developer says that he is committing after 3 million records, though he was told to commit after 10000 records. Now all the data files of undo tablespace have become full except one, which is also getting filled up.
I see from dba_rollback_segs that there are some 25 segments which are showing status offline.
does it mean that the oracle will reuse those segments and I dont need to add another data file to the undo tablespace?
How would I know during this running process, that oracle would reuse space in undo tablespace, or will just throw an error, after exhausting all the data files.
Thanks and regardsHi,
As the undo segments are used in a curcular fashion, dba_free_space may not give correct picture. use following sql.
col PCT_USED head '% Used'
select a.used, b.allocated, round((a.used/b.allocated)*100,2) PCT_USED, c.unexpired, d.active from
(select sum(BYTES/1024/1024) used from dba_undo_extents where status in ('UNEXPIRED','ACTIVE')) a,
(select bytes/1024/1024 allocated from dba_data_files where tablespace_name = 'UNDOTBS1') b ,
(select sum(bytes/1024/1024) unexpired from dba_undo_extents where status = 'UNEXPIRED') c,
(select sum(bytes/1024/1024) active from dba_undo_extents where status = 'ACTIVE') d
Here ACTIVE - they are being used
UNEXPIRED - they will not be released until the undo_retention time. But if all other extents are used, then oracle may reallocate unexpired blocks and any session which is trying to read from unexpired block may received "snapshot too old error".
EXPIRED - here these blocks will be reused, you can consider them as free.
Thanks,
Siva -
Hi,
in DB version 9.2.0, after all transactions are committed, the occupied blocks in UNDO tablespace will be free or not ?
The same just after startup, before any transaction the free space in UNDO tablespace would be at max ?
Many thanks.Hello Dear copy this script and paste in the sql prompt and it will show your how much total space table have, or how much is used and how much it is free
SELECT Total.name "Tablespace Name",
nvl(Free_space, 0) Free_space,
nvl(total_space-Free_space, 0) Used_space,
total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name(+) = Total.name
ORDER BY Total.name -
Drop undo tablespace but space not release (du and df show different value)
hi guys,
i just change my undo and drop the previous 1.
create undo tablespace UNDOTBS4 DATAFILE '/u03/oradata/starhub/undotbs4.dbf' size 2g;
Tablespace created.
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = undotbs4;
System altered.
SQL> drop tablespace undotbs3 including contents and datafiles;
Tablespace dropped.
SQL>
However, when i check my diskspace using df -h , it is still showing. 32 gig is used. where infact, only 30G should be used.
71G 32G 37G 47% /u03
when i check using du -h, it is showing only
30G ./oradata
I have to bounce the database to get my 2G back, why ?
Is there anyway to get my 2G back without bouncing the DB ?
Regards,
NoobOracle has the file still open, so the i-node of that file is still in use, so the file shows up.
Learn your Unix!
Sybrand Bakker
Senior Oracle DBA -
Undo tablespace keeps on growing
We have a 3rd party application running on our oracle(10.2.0.4) database running on 64bit solaris(sparc) machine.
Since few days my undo started going up. I increased the size from 2g to 5g. Still it is at more then 90%levels.
I ran this query to see which session is using maximum undo
SELECT a.sid, b.name, a.value
FROM v$sesstat a, v$statname b
WHERE a.statistic# = b.statistic#
AND a.statistic# = 176
ORDER BY a.value DESC
From this i found the session which is using max undo.
When i query this sid from v$session i see this is inactive
my undo retention is set to 9000 and undo management is auto
how can i check if i have expired undo blocks that are not being used>
Since few days my undo started going up. I increased the size from 2g to 5g. Still it is at more then 90%levels.
I ran this query to see which session is using maximum undo
SELECT a.sid, b.name, a.value
FROM v$sesstat a, v$statname b
WHERE a.statistic# = b.statistic#
AND a.statistic# = 176
ORDER BY a.value DESC
From this i found the session which is using max undo.
When i query this sid from v$session i see this is inactive
my undo retention is set to 9000 and undo management is auto
>
With an UNDO_RETENTION of 2.5 hours set, I am not surprised that you use up to (or even more than) 5g space in the UNDO tablespace! I would even call that moderate.
What is your concern? If you don't have the space for your UNDO tablespace, lower UNDO_RETENTION accordingly. Notice that UNDO_RETENTION is the wish to preserve before images for that long time even if their transaction did already commit. Why have you set it to that (relatively high) value of 2.5 hours?
Kind regards
Uwe
http://uhesse.wordpress.com -
Executing transaction without active Undo Tablespace
Hi,
DB: 9.2.0.5
OS : AIX 5.2
I have opened my standby database in READ ONLY mode.I have undo tablespace.It is live setup and users are checking data with standby database.
SQL> show parameter aq_tm
NAME TYPE VALUE
aq_tm_processes integer 0
SQL>
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1
SQL>
My standby alertlog getting warning message as
Mon Dec 13 12:16:39 2010
***Warning - Executing transaction without active Undo Tablespace
Mon Dec 13 12:27:37 2010
***Warning - Executing transaction without active Undo Tablespace
Mon Dec 13 12:28:03 2010
***Warning - Executing transaction without active Undo Tablespace
Mon Dec 13 12:28:17 2010
***Warning - Executing transaction without active Undo Tablespace
Mon Dec 13 12:34:43 2010
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
Mon Dec 13 12:35:22 2010
***Warning - Executing transaction without active Undo Tablespace
***Warning - Executing transaction without active Undo Tablespace
Please help me.
Thanks,
sunandHi Forstmann,
Thanks for your quick reply.
I have temp tablespace and see the below output.
SQL> select name from v$tempfile;
no rows selected
Which means i do not have any temp file to temp tablespace.
How do i can create tempfile in standby?.In what following states i can create,
1) MOUNT ( Recovery mode canceled)
2) READ ONLY
3) opened after FAILOVER
4) At any stage i can
My client is planning to check the DR server by doing FAILOVER.After that will create standby database again from primary.
Thanks,
Sunand -
Hello,
my undotbs is growing 14g (although i my undotbs actul size is 9g) I try to resize datafiles, but
this may not work.
So, i am assuming to perform this task
>
- Create a new undo tablespace as :
SQL> create undo tablespace UNDOTBS2 datafile '<complete file path>' size <smaller size>;
- Change parameter UNDO_TABLESPACE
SQL> alter system set UNDO_TABLESPACE=UNDOTBS2;
- Drop UNDOTBS1
SQL> drop tablespace UNDOTBS1 including contents and datafiles;>
but my question is , is it worthy to delete the undotbs1 whose having alot of data and if i deleted
this (undotablespace) data ,i will not able to recover it thoroughly?
db_version:10.2.0(linux)sunny kichlooIf your concern is regarding how to resize Refer this thread
>
i have already try this but it still growing and day-today we are running large transaction on our db.
marcopb Try to investigate why your undo tablespace is growing... and think about why your next undo tablespace won't grow as the previous...
>
our db size is 60g and we are running on heavy transection on it (everday) -
Open XE without UNDO tablespace
Hy
I have an oracle xe installation on linux ubuntu that does not start, it arrives in MOUNT status.
When i try to open i get the following messages:
ORA-01172: recovery of thread 1 stuck at block 153 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed
Unfortunately it is in NOARCHIVELOG mode.
Can i open it with no UNDO tablespace, and the add a new datafile to the UNDO tablespace?
Thanks
LorenzoHere is alert log content: the last shutdown was not clean
Here there is not the shutdown log...
Tue Mar 9 17:42:29 2010
starting up 4 shared server(s) ...
Oracle Data Guard is not available in this edition of Oracle.
Tue Mar 9 17:42:31 2010
ALTER DATABASE MOUNT
Tue Mar 9 17:42:35 2010
Setting recovery target incarnation to 2
Tue Mar 9 17:42:35 2010
Successful mount of redo thread 1, with mount id 2594312135
Tue Mar 9 17:42:35 2010
Database mounted in Exclusive Mode
Completed: ALTER DATABASE MOUNT
Tue Mar 9 17:42:35 2010
ALTER DATABASE OPEN
Tue Mar 9 17:42:35 2010
Beginning crash recovery of 1 threads
Tue Mar 9 17:42:35 2010
Started redo scan
Tue Mar 9 17:42:36 2010
Completed redo scan
1264 redo blocks read, 136 data blocks need recovery
Tue Mar 9 17:42:36 2010
Started redo application at
Thread 1: logseq 175, block 2, scn 6715755
Tue Mar 9 17:42:36 2010
Recovery of Online Redo Log: Thread 1 Group 2 Seq 175 Reading mem 0
Mem# 0 errs 0: /usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/o1_mf_2_5dm8sg16_.log
RECOVERY OF THREAD 1 STUCK AT BLOCK 153 OF FILE 2
Tue Mar 9 17:42:37 2010
Aborting crash recovery due to error 1172
Tue Mar 9 17:42:37 2010
Errors in file /usr/lib/oracle/xe/app/oracle/admin/XE/udump/xe_ora_4250.trc:
ORA-01172: recovery of thread 1 stuck at block 153 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed
ORA-1172 signalled during: ALTER DATABASE OPEN...
Maybe you are looking for
-
Error while opening Excel report using servlet
Hi I am using a servlet to open an excel report which has multiple sheets . But there is a weird problem when i try to open an excel report with two sheets having the same name . Generally when an excel with same sheet names is opened with Microsoft
-
I can't seem to bring-up apple TV display icon on my mac to mirror on the tv
I cannot bring up the airplay icon so i can mirror what i play on mac onto my apple tv (i.e big screen). I've tried everything The only thing i can play is music through itunes. But I can't get airplay from my web browser (e.g. can't play bbc iplayer
-
What caused my kernal Panic?
I wish i could read this and make sense of it, but I cannot. Interval Since Last Panic Report: 1408827 sec Panics Since Last Report: 1 Anonymous UUID: 1433A7C0-1FE8-4ACC-9C75-098BAA1B4028 Sat Nov 27 21:13:30 2010 panic(cpu 1 caller 0x2aab55): Kernel
-
Hello I was trying to do a JAX-RPC application, and I had some problems with type casting. My application worked fine with primitive types, vectors of primitive types, and beans with primitive type properties. But it didn't work with vectors of beans
-
Itunes will not open until I reboot
I'm running a Windows 7 64 bit computer. My music is installed on an external harddrive. Itunes will not open until I reboot my computer. I admit I have a large collection of music but my computer is running 8 gigs of DDR3 ram and a AMD Athlon II x4