RelationalDBDesign 





Backup Recovery   «Prev  Next»
Lesson 5 Fast-Start parallel rollback
Objective Implement parallel rollback with the Fast-Start feature.

Implement Fast-Start Parallel Rollback

More processes mean better performance. This is the coda behind Fast-Start parallel rollback.
Oracle background processes coordinate and roll back a set of transactions by using multiple server processes. Whenever a large number of transactions (like INSERT, UPDATE, and DELETE statements) have not been committed, Fast-Start parallel rollback becomes very important.
When the System Monitor process realizes that a large number of transactions must be rolled back, and it is faster to roll back in parallel than serially, the System Monitor starts multiple server processes, rolling back the transactions.
Each server process handles one transaction and the performance is improved.

One transaction divided among several processes

Fast-start parallel rollback has a special feature called intra-transaction recovery, whereby a single transaction is divided among several processes. This happens when one transaction is large, meaning it takes longer for one process to roll this transaction back than for the other processes to roll back their transactions. Oracle automatically begins intra-transaction recovery by dispersing the large transaction among the processes.
Setting the parameter FAST_START_PARALLEL_ROLLBACK to one of the following three values controls the number of processes involved in transaction recovery:
  1. FALSE: Turns off Fast-Start parallel rollback
  2. LOW: Specifies that the number of recovery servers may not exceed twice the value of the CPU_COUNT parameter
  3. HIGH: Specifies that the number of recovery servers may not exceed four times the value of the CPU_COUNT parameter

An instance is recovered using RMAN, by issuing the RECOVER command. This is called “Fast-Start-parallel rollback,” and you must define the degree of parallelism while issuing the command.

Initialization parameter file
Initialization parameter file


Determining the Parameter Setting

The following illustration is an example of an initialization parameter file (INIT.ORA). Based on this information you will need to determine the parameter setting for Fast-Start-parallel rollback: false, low, or high. Click the View Image button to see the illustration.
The value assigned is LOW. By using this value, the number of processes created to perform parallel rollback will be twice the number of CPU’s within the host machine containing the database. If there are 4 CPU's within the host machine, the number of processes that will be created is 8.
Afer adding the parameter within INIT.ORA, shut down and restart the database for the parameters to take effect. Implementing this parameter within the database instance ensures faster recovery of non-committed transactions.

FAST_START_PARALLEL_ROLLBACK

Property Description
Parameter type String
Syntax FAST_START_PARALLEL_ROLLBACK = { HI | LO | FALSE }
Default value LOW
Modifiable ALTER SYSTEM
Basic No

FAST_START_PARALLEL_ROLLBACK specifies the degree of parallelism used when recovering terminated transactions. Terminated transactions are transactions that are active before a system failure. If a system fails when there are uncommitted parallel
DML or DDL transactions, then you can speed up transaction recovery during startup by using this parameter. Values:
  1. FALSE- Parallel rollback is disabled
  2. LOW- Limits the maximum degree of parallelism to 2 * CPU_COUNT
  3. HIGH - Limits the maximum degree of parallelism to 4 * CPU_COUNT
If you change the value of this parameter, then transaction recovery will be stopped and restarted with the new implied degree of parallelisme.
The next lesson explains how to set up an automated standby database.