I just noticed that no rollback_segment specified in my ini.ora file. Does that mean next time when db startup, all rollback_segment won't be online (execept system rbs)?
I have startup DB several times already, and everytime rbs are all online. - confused now.
When the RBS are created as default like now in 8 version RBS01 .. RBS20 are created by default, and if you are using the same, then you dont have to specify in your INIT.ora .
If you don't have any rollback segs specified in your init.ora, Oracle will calculate the number of RB segments it needs based on the following formula: number_of_RB_to_put_online = TRANSACTIONS/
TRANSACTIONS_PER_ROLLBACK_SEGMENT. If you have this number of RB segments created it will bring all online. If you have more than this number of RB segments it will left the others in offline mode.
Jurij Modic ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?
Originally posted by rsuri if the rollback segments are PUBLIC then they will come online. Only for PRIVATE rollbacks you need to list them in the init file.
AFAIK public and private RB segments are relevant only in Paralel Server environment. In normal configuration they behave exactly the same and the type of RB segment does not have any influence in the decision if system will bring the RB online or not.
Jurij Modic ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?
how to make it public or priv. during creation of rbs
20 rbs of my are public- if I don't specific when creating them, they are public. and acoording the formula, some will be online automatically. CORRECT!
If you don't have any rollback segs specified in your init.ora, Oracle will calculate the number of RB segments it needs based on the following formula: number_of_RB_to_put_online = TRANSACTIONS/
TRANSACTIONS_PER_ROLLBACK_SEGMENT
From where Oracle is going to get both the parameters.
Those are initialisation parameters. You might have them specified in the initSID.ora. If you don't specify them there oracle will assign some default values to them during startup. To check what values have been assigned to them in your instance, run the following:
SELECT name, value FROM v$parameter
WHERE UPPER(name) IN ('TRANSACTIONS', 'TRANSACTIONS_PER_ROLLBACK_SEGMENT');
HTH,
Jurij Modic ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?
As you have said fine i queried the v$parameter it shows as follows.
NAME VALUE
---------------------------------------------------------------- ------
transactions 75
transactions_per_rollback_segment 5
So i should have 15 RBS ? but my query reads as follows
SQL> select * from v$rollname;
USN NAME
---------- ---------------------
0 SYSTEM
1 RBS0
2 RBS1
3 RBS2
4 RBS3
5 RBS4
6 RBS5
7 RBS6
Note :In My init.ora RBS related parameters has been disabled.
# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
#rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 )
# If using public rollback segments, define how many
# rollback segments each instance will pick up, using the formula
# # of rollback segments = transactions / transactions_per_rollback_segment
# In this example each instance will grab 40/5 = 8
# transactions = 40
# transactions_per_rollback_segment = 5
Cheers
Padmam
Attitude:Attack every problem with enthusiasam ...as if your survival depends upon it
Bookmarks