Undo Management
Hello guys,
I have a problem with Undo Tablespace in Oracle 9i.
There's a OLPT system, Oracle 9i DBServer on Linux.
The problem is that Undo datafile has grown very much, reaching about 4 GB. I restarted the my DB, but UndoTablespace continue with 99% used of 4GB.
I used mode auto. Well, I think that Oracle automatically handles onlining/offlining, as well as all other aspects of undo management. What it's happen?
Could you tell me why there's so much rollback space taken and how could I use it.
Any help appreciated.
Sounds ugly!
Can you make a new UNDO TS - to take the place of the other (large) one?
Similar Messages
-
UNDO Management - Config changes for OLTP and large background processes
Hi,
I am running 9i on a 2 node RAC cluster - Sun Solaris.
I use Automatic Undo.
The database is currently configured for OLTP and has 2 undo datafiles - 1GB in size and undo_retention set to default (900seconds)
I am about to start scheduling a batch job to run each night that will delete approx 1 million records each time it runs.
To get this to work without the dreaded Error -30036: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDO01', I have increased the undo datafiles to 5GB and the undo_retention to 4000.
The question is do I need to worry about switching between these settings - using the smaller values for daytime OLTP and the nighttime settings for the heavy processing?
What issues might I encounter if I just left the UNDO Management settings in place that I use for the large delete?I would say no, leave the settings the highest level required to accomplish the work of the instance. Once the setting are correct for the instance, you should not have to change them around. They are really max setting for the heaviest load on your instance.
-
To change manul to auto undo management in 9i
Hi
My production database on manul undo management means (RBS) . I want to change this on auto mode Please Help me what steps i follow to do this
DB 9.2 and OS AIX 5.2
ThanksSQL> alter system set undo_management=manual scope=spfile;
System altered.
SQL> shutdown immediate;
SQL> startup
SQL> show parameter undo
NAME TYPE VALUE
undo_management string MANUAL
undo_retention integer 1800
undo_tablespace string UNDONEW
SQL>
do this same for auto....
regards -
Guys,
I am updating 1 million rows in Oracle 10g platform, normally when I do it in oracle 9i I run it as batch process and commit after each batch. Obviously to avoid/control undo generation. But in Oracle 10g I am told undo management is automatic and I do not need run the update as batch process.
Is this right please throw some light on this new feature - automatic undo management
ThanksAutomatic undo management was available in 9i as well, and my guess is you were probably using it there. However, I'll assume for the sake of this writing that you were using manual undo management in 9i and are now on automatic.
Automatic undo management depends upon UNDO_RETENTION, a parameter that defines how long Oracle should try to keep committed transactions in UNDO. However, this parameter is only a suggestion. You must also have an UNDO tablespace that's large enough to handle the amount of UNDO you will be generating/holding, or you will get ORA-01555: Snapshot too old, rollback segment too small errors.
You can use the UNDO advisor to find out how large this tablespace should be given a desired UNDO retention, or look online for some scripts...just google for: oracle undo size
Oracle 10g also gives you the ability to guarantee undo. This means that instead of throwing an error on SELECT statements, it guarantees your UNDO retention for consistent reads and instead errors your DML that would cause UNDO to be overwritten.
Now, for your original question...yes, it's easier for the DBA to minimize the issues of UNDO when using automatic undo management. If you set the UNDO_RETENTION high enough with a properly sized undo tablespace you shouldn't have as many issues with UNDO. How often you commit should have nothing to do with it, as long as your DBA has properly set UNDO_RETENTION and has an optimally sized UNDO tablespace. Committing more often will only result in your script taking longer, more LGWR/DBWR issues, and the "where was I" problem if there is an error (if it errors, where did it stop?).
Lastly (and true even for manual undo management), if you commit more frequently, you make it more possible for ORA-01555 errors to occur. Because your work will be scattered among more undo segments, you increase the chance that a single one may be overwritten if necessary, thus causing an ORA-01555 error for those that require it for read consistency.
It all boils down to the size of the undo tablespace and the undo retention, in the end...just as manual management boiled down to the size, amount, and usage of rollback segments. Committing frequently is a peroxide band-aid: it covers up the problem, tries to clean it, but in the end it just hurts and causes problems for otherwise healthy processes. -
Automatic Undo Management - Shrink Undo Segments
Hello guys,
i have a question regarding the automatic undo management and some large transactions.
So lets take the following example:
1 transaction with a lot of updates (round about 20.00000 entries) . After the update a commit was executed.
Now the corresponding undo segment was blown up to 640 MB.
Now my questions:
Will this segment be shrinked after it is not needed anymore (STATUS = EXPIRED)?
If not and another transaction needs some undo and activates this segment again.. 640 MB are going online again... but the transaction now only needs some KB.
I know the algorithm if the undo segment needs to be extended (metalinknote #413732.1).. but what is happening to "big" segements if they are not needed anymore ... are the deallocated/shrinked after a time period?
Regards
StefanHere is a little example of a smaller undo segment.. which shows my doubt:
SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS WHERE SEGMENT_NAME = '_SYSSMU13$';
SEGMENT_NAME STATUS
_SYSSMU13$ OFFLINE
SELECT SEGMENT_NAME, EXTENT_ID, BYTES, STATUS from DBA_UNDO_EXTENTS WHERE SEGMENT_NAME = '_SYSSMU13$';
SEGMENT_NAME EXTENT_ID BYTES STATUS
_SYSSMU13$ 0 65536 EXPIRED
_SYSSMU13$ 1 65536 EXPIRED
_SYSSMU13$ 2 8388608 EXPIRED
_SYSSMU13$ 3 8388608 EXPIRED
_SYSSMU13$ 4 8388608 EXPIRED
_SYSSMU13$ 5 8388608 EXPIRED
_SYSSMU13$ 6 8388608 EXPIRED
_SYSSMU13$ 7 8388608 EXPIRED
_SYSSMU13$ 8 8388608 EXPIRED
_SYSSMU13$ 9 8388608 EXPIRED
_SYSSMU13$ 10 8388608 EXPIRED
_SYSSMU13$ 11 67108864 EXPIRED If the other guys are correct, the extents of undo segment _SYSSMU13$ should be deallocated... but they still persist.
Regards
Stefan -
Undo Block Allocation Algorithm in Automatic Undo Management
Hi,
Can someone please explain me the Undo Block allocation algorithm in Automatic Undo Management??
I need to tune my Undo tablespace in my Prod database.
regards,
Arul SekarHi,
Thanks for the link provided.....
But the link which has been provided does not contain the details about the Undo block allocation alogorithm in AUM.
Can you please help me in this regard??
regards,
Arul Sekar -
Automatic Undo Management, UNDO tablspace, and undo_segment count
When I created my UNDO tablespace I was given 10 undo_segments:
SQL> SELECT usn "Rollback Table", GETS, WAITS, xacts "Active Transactions"
2 FROM V$ROLLSTAT;
Rollback Table GETS WAITS Active Transactions
0 1242 0 0
1 88678 8 0
2 83884 2 0
3 82519 9 0
4 85661 17 0
5 80613 14 0
6 82183 0 0
7 92551 9 0
8 78371 14 0
9 89043 1 0
10 75477 5 0
The above statistic indicates I need more undo_segments. Do I need to recreate my UNDO tablespace in order to get the number of segments necessary to prevent waits or will more undo_segments be spawned eventually??
I think I'm suffering Contention? Is there medicine?Compared to the number of GETS, the number of WAITS is very small. I doubt that you could ever have enough rollback segments to ensure that there were never any waits. Oracle's read consistency mechanism virtually guarantees that you will at least occasionally get waits.
Aside from that, the point of UNDO tablespaces is that Oracle will manage the number and size of rollback segments based on the load. If you are really concerned about this, and if you have statistics indicating that waits for rollback segments are a performance bottleneck (something like a statspack report showing large amounts of time for one of the undo waits), then you can simply add more space to your undo tablespace, and Oracle will likely use it to add additional segmetns if it feels the need.
John -
Problem with Undo manager using highlighting
Hello,
I am writing a little text editor with syntax highlighting, but I have a problem with the UndoManager.
Everytime I undo an action the UndoManager removes just the attributes of the text, not the text itself.
Does anybody know a way how to make the UndoManager not recognizing the attributes.
Thanks in advance.In your UndoableEditListener, you can check the type of the edit, and ignore it if it's an attribute change:
public void undoableEditHappened(UndoableEditEvent e) {
UndoableEdit edit = e.getEdit();
if (edit instanceof DefaultDocumentEvent &&
((DefaultDocumentEvent)edit).getType() ==
DefaultDocumentEvent.EventType.CHANGE) {
return;
undoMgr.addEdit(edit);
} -
Hi there,
I have a Datawarehouse DB , with two UNDO tablespaces,Last friday we switched UNDO_TABLESPACE to UNDO01 and UNDO02 is not active.While querying DBA_UNDO_EXTENTS , status of all extents in UNDO02 is marked as EXPIRED but there is no free space left in UNDO02 tablespace.
Now the qustion is
1. why Oracle is not releasing EXPIRED extents from the NON-ACTIVE Undo tablespace?
2. AS per Oracle Documentation "Switching Undo Tablespaces" - "The switch operation does not wait for transactions in the old undo tablespace to commit. If there are any pending transactions in the old undo tablespace, the old undo tablespace enters into a PENDING OFFLINE mode (status). In this mode, existing transactions can continue to execute, but undo records for new user transactions cannot be stored in this undo tablespace" ---- But STATUS column in DBA_TABLESPACES in my DB showing both Tablespaces are "ONLINE",
Any thoughts????
Thanks in advanceSQL> select segment_name, owner, tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME OWNER TABLESPACE_NAME STATUS
SYSTEM SYS SYSTEM ONLINE
SYSROL SYS SYSTEM OFFLINE
_SYSSMU2$ PUBLIC UNDO1 ONLINE
_SYSSMU3$ PUBLIC UNDO1 ONLINE
_SYSSMU4$ PUBLIC UNDO1 ONLINE
_SYSSMU5$ PUBLIC UNDO1 ONLINE
_SYSSMU6$ PUBLIC UNDO1 ONLINE
_SYSSMU7$ PUBLIC UNDO1 ONLINE
_SYSSMU8$ PUBLIC UNDO1 ONLINE
_SYSSMU9$ PUBLIC UNDO1 ONLINE
_SYSSMU10$ PUBLIC UNDO1 ONLINE
_SYSSMU11$ PUBLIC UNDO1 ONLINE
_SYSSMU12$ PUBLIC UNDO1 ONLINE
_SYSSMU13$ PUBLIC UNDO1 ONLINE
_SYSSMU14$ PUBLIC UNDO1 ONLINE
_SYSSMU15$ PUBLIC UNDO1 ONLINE
_SYSSMU16$ PUBLIC UNDO1 ONLINE
_SYSSMU17$ PUBLIC UNDO1 ONLINE
_SYSSMU18$ PUBLIC UNDO2 OFFLINE
_SYSSMU19$ PUBLIC UNDO2 OFFLINE
_SYSSMU20$ PUBLIC UNDO2 OFFLINE
_SYSSMU21$ PUBLIC UNDO2 OFFLINE
_SYSSMU22$ PUBLIC UNDO1 ONLINE
_SYSSMU23$ PUBLIC UNDO1 OFFLINE
_SYSSMU24$ PUBLIC UNDO1 OFFLINE
_SYSSMU25$ PUBLIC UNDO1 OFFLINE
_SYSSMU26$ PUBLIC UNDO1 OFFLINE
_SYSSMU27$ PUBLIC UNDO1 OFFLINE
_SYSSMU28$ PUBLIC UNDO2 OFFLINE
_SYSSMU29$ PUBLIC UNDO2 OFFLINE
_SYSSMU30$ PUBLIC UNDO2 OFFLINE
_SYSSMU31$ PUBLIC UNDO2 OFFLINE
_SYSSMU32$ PUBLIC UNDO2 OFFLINE
_SYSSMU33$ PUBLIC UNDO2 OFFLINE
34 rows selected.
SQL> show parameter UNDO
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 40000
undo_suppress_errors boolean FALSE
undo_tablespace string UNDO1
SQL>
Thanks -
Im a Uni student&need help:JAVA Final Year Project: Undo Manager Problem
Hey all,
Im writing a Final Year Project and have minimal experience writing in JAVA.
It is an information visualisation assignment which involves reproducing code/text in a reduced format. Sort of to do with Line oriented statistics.
http://www.cc.gatech.edu/aristotle/Tools/tarantula/continuous.gif
This image will give you an idea of what im talking about.
Anyway, i need to know if its possible to get information about individual undos/edits from an undomanager.
Basically i need to be able to say, for example,
there are 12 undos
undo 12 occurs at line X
undo 11 occurs at line Y
etc etc
I need to be able to get this information without actually invoking the Undo last edit call.
Im bringing the Java undomanager tutorial home but from what ive read it seems like impossible?
Any and all help appreciated.
Regards,
PWhen I was at uni I had to implement that for the text area of an IDE. All I did was rip off the code from the Notepad.java that comes with the SDK.
-
ORA-01555 when UNDO Management is Auto
Hi,
I am using Oracle 10g 10.2.0.3 on linux 64 bit
My UNDO_MANAGEMENT is AUTO and Tablespace size is Auto
Undo_retention=15
Today morning, I have received following error in Alert log
ORA-01555 caused by SQL statement below (SQL ID: 9yfaam0vn51b5, Query Duration=1257324485 sec, SCN: 0x0000.084ad6ea):
EM is showing following
Snapshot Too Old Error detected: SQL ID 9yfaam0vn51b5, Snapshot SCN 0x0000.084ad6ea, Recent SCN 0x0000.084e39df, Undo Tablespace UNDOTBS1, Current Undo Retention 943.
How dio i find that which query created a problem as SQL ID: 9yfaam0vn51b5 is not in table v$sql
Do i need to do anything or Oracle will take care of UNDO?
Regardsa mock up
SQL> select max(maxquerylen)
2 from v$undostat;
MAX(MAXQUERYLEN)
62057
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 25000
undo_tablespace string UNDOTBS1
SQL> select (62057/60)/60 query,(25000/60)/60 retention
2 from dual
3 /
QUERY RETENTION
17.2380556 6.94444444Above query executing tenure is 17 hours while undo retention is approximate 7 hours,either change retention period to 20% extra with yours query execution tenure and then check yours query again.
at least set undo retention to 75000,also better approach to tune query why its too taking so much time?
Khurram -
hi ,
can u please let me know how did you solve the problem.
i tried to switch from Rollback segment to undo tablespace.
I have already set:
undo_management=auto
undo_tablespace=undotbs01
but still getting the error.
ORA-00376: file 3 cannot be read at this time
ORA-01110: data file 3: '/nscm01/scm/rbs/rbs01.dbf'
Thanks in advance,
chenHi,
ORA-00376: file 3 cannot be read at this time
ORA-00376: file string cannot be read at this time
Cause: attempting to read from a file that is not readable. Most likely the file is offline.
Action: Check the state of the file. Bring it online
regards
Taj -
Dear All,
My client Export/Import Process failed while Importing at quality server. Production Server Export process completed successfully.
It looks like your UNDO tablespace is too small to handle a large volume transaction. Either increase your UNDO tablespace size or commit more often. Received this error at QAR Server and client import process failed.
Pl. guide how to Increase UNDO Table space or if any more solution to resolve my issue.
Regards,
Naik DipteshHi,
As per your error, it looks like that your Undo tablespace was full because of that your import failed. Undo tablespace you can increase from brtools in PSAPUNDO.
As you have not mentioned your database release. Please check below notes for undo management as per your release.:
Note 1035137 - Oracle Database 10g: Automatic Undo Retention
Note 600141 - Oracle9i: Automatic UNDO Management
Thanks
Sunny -
Can I use the system managed undo segment (rollback segment) while refreshing of materialized view. I would try something like following
SQL> Alter materialized view mview refresh using master rollback segment _SYSSMU9$;
Currenty the database is running with auto undo management mode.
Case1: No errors
SQL> alter materialized view mview refresh using master rollback segment system;
Materialized view altered.
Case2: Error
SQL> alter materialized view mview refresh using master rollback segment _SYSSMU9$;
ERROR at line 1:
ORA-00911: invalid character
Why is this happening?I got it
SQL> alter materialized view mview refresh using master rollback segment "_SYSSMU9$";
works for me. -
Can UNDO tablespace be locally managed?
I read in the Oracle 9i Administrators guide that the SYSTEM tablespace can ONLY be dictionary managed. You do not have the option of having it locally managed. Is this the same for the UNDO tablespace? I couldn't find it anywhere in the Admin guide, one way or the other.
MichaelUNDO_TABLESPACE
Parameter type
String
Syntax
UNDO_TABLESPACE = undoname
Default value
The first available undo tablespace in the database.
Parameter class
Dynamic: ALTER SYSTEM
Range of values
Legal name of an existing undo tablespace
Real Application Clusters
Multiple instances can have different values.
UNDO_TABLESPACE specifies the undo tablespace to be used when an instance starts up. If this parameter is specified when the instance is in manual undo management mode, an error will occur and startup will fail.
If the UNDO_TABLESPACE parameter is omitted, the first available undo tablespace in the database is chosen. If no undo tablespace is available, the instance will start without an undo tablespace. In such cases, user transactions will be executed using the SYSTEM rollback segment. You should avoid running in this mode under normal circumstances.
You can replace an undo tablespace with another undo tablespace while the instance is running.
See Also:
Oracle9i SQL Reference.
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch1218.htm#REFRN10227
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm
Joel P�rez
Maybe you are looking for
-
I've tried many times to get rid of my old iTunes account. I have made a new Apple ID and I do remember the password. My 2 main problems are, i can't update ANY of my apps (and I have 53 to update now), and I can't get rid of my old old email that I
-
My iphone 5c is disabled says connect to itunes which i did but it still doesnt work
please help me i connected it to itunes and still nothing it still says disabled it wont even ask me for my pin
-
ESS child iviews are not coming in PCD.
Dear All. We are working on ESS Implementation and we installed Netviewer 7.01 sp6. Our ECC version is 5.0. We deployed SAP_ESS 100 SP21 SAP_MSS 100 SP21 SAPPCUI_GP 100 SP21 BP_E
-
How do I remove default genres in iTunes 11?
I don't mean any genres I've added myself, but default genres already in the program, like "Pop." In the past you could edit the localizable.strings file, but the genres no long seem to be there. There is a genresLoc.plist file but that also does
-
Lens Correction gets brands mixed up
Here is what I did: image from Nikon D700 with 24-70 f/2.8, Lens Profile Correction applied pulled back Vignetting in Lens Profile Correction to 0 saved as a Preset (only Lens Correction > Lens Profile Corrections checked) applied this Preset to an i