Undo tablespace in RAC
hi all,
In RAC environment, if iam having two nodes, why i have to maintain two undotablespaces in shared area? is it not possible to use one undo tablespace for both the instances instead of two undo tablespaces?
thank you
Hello Buddy,
It is not possible use one UNDO tablespace for more than one instance in RAC architecture.
Unless that you implement rollback segs (forget it, totally unrecommended), then the entire database can use only one rollbackseg on shared storage.
You must maintain unless one undo tbs per instance on your cluster database cause consistent reads on local instances.
Best Regards,
Rodrigo Mufalani
http://mufalani.blogspot.com
Similar Messages
-
Why do 2 diff. undo tablespace required in RAC
Hi -
1 - I can understand that we do require 2 diff. log files as 2 process can not write on the same redo log files.
But I could not understand the logic of using 2 diff. undo tablespaces, when tablespaces can be in shared mode.
They what is the reason of using 2, why can we not have only one undo tablespace in RAC.
2 - Is there any way to check if one particular instance is running under RAC, Can this be confirmed if instance
has got extra process like Lms Lmd ...
your help would be appreciated and apologies for my poor english.
Regards,
LyxxEach instance needs its own rollback segments to manage read consistency.
When you set undo_tablespace=UNDOTBS, you tell the instance to self manage the tablespace UNDOTBS and do dynamic creation of rollback segments.
This management of undo tablespaces is not "instance shareable". That's why you need 2 undo tablespace (for a 2 node RAC).
If it's a problem for your environment (don't know why), you can create a single "rollback tablespace" and manage yourself the rollback segments.
Christophe
Edited by: willier on 11 sept. 2008 02:44 -
Find undo tablespace assignment in RAC
Hi Experts,
We have 6 nodes 10GR2 rac database. It seems that does not assign each instance order with undo tbs.
How can I find each instance assigned undo tablespace?
Thanks very much!
JImHandle: user589812
Status Level: Newbie
Registered: Aug 13, 2007
Total Posts: 829
Total Questions: 366 (338 unresolved)
so many questions & so few answers.
also Do i have a way to drop a datafile in undo tablesapce?UNDO is no different than any other tablespace. -
Is it OK to Switching Undo Tablespaces without DB stop ?
We use Oracle11g R2.
I read Oracle Doc and It looks OK.
But, how could I make sure UNDO tablespace mode(ONLINE,PENDING OFFLINE) ?
Switching Undo Tablespaces
You can switch from using one undo tablespace to another. Because the UNDO_TABLESPACE initialization parameter is a dynamic parameter, the ALTER SYSTEM SET statement can be used to assign a new undo tablespace.
The following statement switches to a new undo tablespace:
ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;
Assuming undotbs_01 is the current undo tablespace, after this command successfully executes, the instance uses undotbs_02 in place of undotbs_01 as its undo tablespace.
If any of the following conditions exist for the tablespace being switched to, an error is reported and no switching occurs:
The tablespace does not exist
The tablespace is not an undo tablespace
The tablespace is already being used by another instance (in an Oracle RAC environment only)
The database is online while the switch operation is performed, and user transactions can be executed while this command is being executed. When the switch operation completes successfully, all transactions started after the switch operation began are assigned to transaction tables in the new undo tablespace.
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.
An undo tablespace can exist in this PENDING OFFLINE mode, even after the switch operation completes successfully. A PENDING OFFLINE undo tablespace cannot be used by another instance, nor can it be dropped. Eventually, after all active transactions have committed, the undo tablespace automatically goes from the PENDING OFFLINE mode to the OFFLINE mode. From then on, the undo tablespace is available for other instances (in an Oracle Real Application Cluster environment).After you switch the UNDO_TABLESPACE parameter to the new tablespace, at the minimum, you have to wait for active transactions to complete (commit/rollback) before you can take the old Undo Tablespace offline. Note that if you take the old Undo Tablespace offline too quickly, you may prevent long running queries from reading from the old Undo Tablespace and may cause them to error with ORA-01555. So you need to wait a reasonable time (e.g look at MAXQUERYLEN in V$UNDOSTAT) before you take the old Undo Tablespace offline.
Hemant K Chitale -
Dropping the 4th undo tablespace, 4th thread from a 3 instance database
I migrated a 4 instance RAC database from a 4 node server to a 3 node RAC database server. However, I still have the 4th undo tablespace and the 4th redo log thread. Are there any precautions I need to take before dropping the 4th undo tablespace? Must I also drop the 4th redo log thread, or will the database function properly even without a 4th node to go with the 4th thread?
I presume I have to also disable the 4th public thread? Is this the command below?
Alter database disable public thread=4;I guess it does not matter that group 12 in thread 4 is "CURRENT" since the thread is not being used. But I don't believe I can drop a "CURRENT" group, can I?
SQL> select group#, thread#, bytes, members, status from v$log;
GROUP# THREAD# BYTES MEMBERS STATUS
1 1 52428800 2 CURRENT
2 1 52428800 2 INACTIVE
3 1 52428800 2 INACTIVE
4 2 104857600 2 INACTIVE
5 2 104857600 2 INACTIVE
6 2 104857600 2 CURRENT
7 3 52428800 2 INACTIVE
8 3 52428800 2 INACTIVE
9 3 52428800 2 CURRENT
10 4 52428800 2 INACTIVE
11 4 52428800 2 INACTIVE
12 4 52428800 2 CURRENT
12 rows selected. -
Hi All,
I am bit confused with reading about the undo table space. so i need some clarification
1. There are 2 undo tablespace in our application. Could someone explain how the 2 undo tablespace works? I didn't find any details about this.
2. Both the undo tablespace is 100% utilized. Where the the new transaction will go? Will new transaction force the used blocks to be expired if needed?
3. What should be the ideal size of undo tablespace with respect to the total storage size?
4. is Archive log related to undotable space? if yes then When the archive logs get generated?
Thanks1. In an RAC database, each Instance has to have it's own Undo Tablespace.
In a non-RAC (single instance) database, only one Undo Tablespace may be active at any time. The other Undo Tablespace would be inactive but can be switched to with an ALTER SYSTEM SET UNDO_TABLESPACE command.
2. Even if an Undo Tablespace is "100% used" Oracle can expire (and even drop) old extents and segments that are no longer needed by the Undo_Retention value. Thus, undo data for older transactions that have committed (more than Undo_Retention period has elapsed since the commit) will be overwritten.
3. There's no "ideal size". Undo sizing is based on Transaction volumes, fluctuations in transaction volumes, query patterns etc.
4. No, there is no direct relation between the two. However, all Undo that is generated also is written to Redo -- i.e. Redo captures Undo as well as it captures changes to Tables, Indexes etc.
I suggest that you read the Oracle Concepts documentation at
http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/toc.htm
Hemant K Chitale
http://hemantoracledba.blogspot.com -
Undo tablespace full even with no active transaction and undo_retention 10s
The 9.2.0.4 instance is AUM (auto undo management). The undo table space is 50G and is almost full.
I have set the undo_retention to 10, previously it was 10800 (3hours). I restart the database. Wait quite long time.
And search on the dba_undo_extents.
select sum(bytes/(1024*1024*1024)),status from dba_undo_extents d where d.tablespace_name='UNDOTBS2' group by status;
SUM(BYTES/(1024*1024*1024)) STATUS
.574447632 EXPIRED
45.5358887 UNEXPIRED
It is hard to explain. 10 seconds already passed, at least all the extents should be expired.
Why so many 45G is still unexpried.
Is there a bug for undo tablespace? how to fix it.
It is a rac instance, I am trouble shooting the undo tablespace issues.
The UNDOTBS2 is for node2 to use.If you start the database in exclusive (one instance) mode then the database instance can have only one undo tablespace so I would not expect Oracle to do anything with the undo tablespace for the non-running instance.
Run you database as normal and generate undo. See if the status changes. If if does that would imply that Oracle does not expire undo unless the undo segments (rbs segments) are accessed. Please post back with results of what you see.
Between having batch production running on all my databases that use undo tablespaces and the fact we use uniform extent undo tabllespaces I am not in a position to try to duplicate what you are seeing.
HTH -- Mark D Powell -- -
How to protect UNDO TABLESPACE in 9iR2
We can put REDO LOGs onto different disks by the means of multiplexing, so that even though one datafile is corrupted, the whole system would still be operational. But UNDO TABLESPACE doesn't provide such a mechanism. If the datafile of the active UNDO TABLESPACE is corrupted, it's dead.
I don't think a system would risk its availability on the single failure of the UNDO TABLESPACE. So there must be some tricks to circumvent this problem. Can anyone tell me that?
Thanks!951368 wrote:
I am sorry... I should have been more clear...
The issue i have is : My primary is a 3 node RAC and i created the same 3 node physical standby, now we had a 4th node at our standby, standby allowed me to add all the required cluster parameteres like instance#,thread# for 4th node, but i was stopped at creating a undo tablespace for the 4th node. What is the procedure? do i need to create it at primary or is there a way i can directly create at standby?
ThanksHi,
So you have 3 nodes primary and wanted to add 4th node on standby?
Create the 4th undo tablespace in primary using
sql > create undo tablespace "undotbs4" datafile 'xxxxx' size xxxx;
The primary won't touch this undo as none of the instances should pointing to this new undo.
In the standby on 4th node define 'undo_tablespace' to undotbs4.
Cheers -
If I have two undo tablespace, under what situation oracle will use another
if I have two undo tablespaces, under what situation oracle will use another
one is default undo tablespace, another is created manually
will it use it when the default one is full?
it seem like to be it won't use the second undo tablespace.
thanks
Edited by: user11402556 on Jul 3, 2010 2:18 PMYou can have two Undo Tablespaces created with the CREATE UNDO TABLESPACE syntax.
However, the current database instance will use the Undo Tablespace specified by the instance level parameter undo_tablespace.
When you want to switch the datafiles of an undo tablespace from, say, one mount point to another (or when you want to "resize" an undo tablespace that has grown very large for specific one-off / adhoc jobs), you would create another undo tablespace, reset the instance level parameter to the new undo tablespace and wait for a decent interval (e.g. at least undo_retention or autotuned undo retention) before dropping the old undo tablespace.
So yours is not a hypothetical question. Having two undo tablespaces is a real-world practice -- but the two are concurrently present for only a short duration, while transactions and queries switch from one to the other.
(In RAC, each database instance must have it's own Undo tablespace as well).
Hemant K Chitale -
hi everybody i have a rac with 2 nodes in one node the tablespace temp is empty and in the other node is full, why this occurs?
Hi
How are you measuring this temp space usage? Temporary tablespace is a database specific shared object, not instance specific ( unlike undo tablespace). Read my blog entry for further details: http://orainternals.wordpress.com/2012/02/13/temporary-tablespaces-in-rac/
Cheers
Riyaj Shamsudeen
Blog: http://orainternals.wordpress.com/
Oracle ACE Director and OakTable member http://www.oaktable.net
Fall 2012: [Advanced RAC seminar | http://www.orainternals.com/services/training/advanced-rac-training/] -
Separate UNDO tablespace for each instance
Version: 10.2.0.4, 11.2.0.2
I've noticed that there is an UNDO tablespace for each instance in RAC. Since UNDO tablespace lies in the shared storage, isn't it better to have just one UNDO tablespace for all instances?Max wrote:
Version: 10.2.0.4, 11.2.0.2
I've noticed that there is an UNDO tablespace for each instance in RAC. Since UNDO tablespace lies in the shared storage, isn't it better to have just one UNDO tablespace for all instances?Each instance in the RAC system can only use one undo tablespace at a time. In other words, instances cannot share undo tablespaces. Each instance in the cluster, being an independent transaction-processing environment, maintains its own UNDO area for undo management.
Either automatic undo management or rollback segment undo can be used to manage undo space. If the automatic rollback method will be used, set the global parameter undo_management to auto in the server parameter file, and set the undo_tablespace parameter to assign the undo tablespace to the instance.
The RAC system allows the creation and use of several undo tablespaces. When the instance is started, it uses the first available undo tablespace. A second instance will use another undo tablespace. Thus, each instance in a RAC system will have exclusive access to a particular undo tablespace at a given time. The undo tablespace cannot be shared among the instances at the same time. Only once an undo tablespace is released by an instance, it can be assigned to another instance. However, all instances can read blocks from any or all undo tablespaces for the purpose of constructing read-consistency images.
source:http://www.dba-oracle.com/real_application_clusters_rac_grid/undo_management.htm -
ORA-01555 even though undo tablespace is with autoextend ON
Hi,
I don't get it, how come I get ORA-01555 even though my undo tablespaces are (it's a RAC system) both autoextend ON
Thanks912294 wrote:
Hi,
I don't get it, how come I get ORA-01555 even though my undo tablespaces are (it's a RAC system) both autoextend ON
Thanksthe session that reports ORA-01555 is the victim; not the culprit.
typically the session that throws ORA-01555 has LONG running SELECT against some table (TAB_A).
ORA-01555 results when another session is doing DML against TAB_A & doing COMMIT inside LOOP. -
While dropping the old undo tablespace we get an error
Hello friends ,
i Cannot drop old undo tablespace. While dropping the old undo tablespace we get an error
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU77$' found, terminate dropping
tablespace
SQL> select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE';
TABLESPACE_NAME STATUS SEGMENT_NAME
SYSTEM ONLINE SYSTEM
APPS_UNDO NEEDS RECOVERY _SYSSMU77$
Please help
Thanks
Edited by: Vicky C on Dec 23, 2012 9:23 AMHi peter
We not using rman backup only cold backup.. i tried using cold backup in ramn block media recovery but that recovery needs archive log
RMAN> BLOCKRECOVER DATAFILE 158 BLOCK 48829;
Starting blockrecover at 18-DEC-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=437 devtype=DISK
channel ORA_DISK_1: restoring block(s) from datafile copy /var/undo/undo02.dbf
starting media recovery
media recovery failed
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 12/18/2012 16:45:11
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
ORA-00279: change 5975281035000 generated at 12/08/2012 06:00:58 needed for thread 1
ORA-00289: suggestion : /prod/archlogs/1_465484_683651989.dbf
ORA-00280: change 5975281035000 for thread 1 is in sequence #465484
ORA-00278: log file '/prod/archlogs/1_465484_683651989.dbf' no longer needed for this re covery
we did not have block media recovery needed archivelog
Regards
Vignesh C -
Regarding Maxsize of Undo Tablespace
Dear expetrs
While executing a procedure i got error.
Error In Insertion..ORA-30036: unable to extend segment by 16384 in undo tablesp
ace 'UNDOTBS1'
then i increase the size of the Undo Tablespace
then again i got error.
ORA-01144: File size (7680000 blocks) exceeds maximum of 4194303 blocks
plz give me answer as soon as possible.
thnaks.1) resize your datafile to 4194303 * db_block_size
alter database datafile < path/filename > resize <4194303 * db_block_size> ;
you find db_block_size by:
sqlplus /nolog
SQL> connect / as sysdba
SQL> show parameter db_block_size
or by simply have a look in the pfile (init<SID>.ora) in $ORACLE_HOME/dbs
2) add another file to the undo tablespace:
SQL>alter tablespace undotbs1 add datafile <path/filename> size <n> M;
a tablespace may have up to 1022 datafiles.
hope this helps
roman -
Undo tablespace recovery from RMAN backup
Hi,
Lets's assume we have RMAN backup and archivelog backups, and now
my undo tablespace's disk crashed ,how can i recover?
Can i recover while database is up?
Thanks,
Kumar.to recover UNDO tablespace from RMAN backup you must shutdown the database and start it in the MOUNT state to recover the missing files as follows
rman target /
RUN
STARTUP MOUNT;
ALLOCATE CHANNEL ch3 TYPE Disk;
RESTORE datafile 'c:\u01\prod3\undo01.dbf';
RECOVER datafile 'c:\u01\prod3\undo01.dbf';
ALTER DATABASE OPEN;
RELEASE CHANNEL ch3;
hope this will help you
Maybe you are looking for
-
Check printing is running and running.
Hi, Check printing in payroll is running and running. I looked at database end , nothing slowing. pLease let me know where and what can I have to check? Thanks
-
dear all, We have a new 10g database and have loaded a dump from 9i. We followed all procedures as written in documentations. The database is working fine but we experience one problem. We connect to the database with our application that was develop
-
Hi Experts, I am facing with a difficult scenario with asset to lease, I have already a suggestion for this if any body have another idea about this, please help me with other suggestions. This is my scenario, I have a new material (produced or purch
-
Printing on photosmart c4283 vista x64
Hi, I am able to print the test page and the diagnostics page from the software driver installed on vista 64bit. However, printing from Notepad just the word "test" fails. 1. The vista window that displays the list of documents in the pool shows the
-
MONITOR ISSUE WITH FLASH CS3 (again)
Hello, me again with the same issue..still Just to recap After publishing my files, my site appears Ok on large monitors like 23 inch. Everything just work fine. The main window is 1024/728 pixels. But, the top of the site gets chopped up on laptops