[Translated from mos] When the parallel transaction recovery process is running, disable the parallel transaction recovery method.
When the parallel transaction recovery process is running, disable the parallel transaction recovery method.
How to Disable Parallel Transaction Recovery When Parallel Txn Recovery is Active (Doc ID 238507.1)
Applicable:
Oracle Database-Enterprise Edition-Version 8.1.5.0 to 11.2.0.4 [Release 8.1.5 to 11.2]
Oracle Database-Personal Edition-Version 8.1.5.0 to 11.2.0.4 [Release 8.1.5 to 11.2]
Information in this document applies to any platform.
Symptoms:
Parallel Transaction Recovery takes a long time
You can use the USED_UBLK column in the V $ TRANSACTION View to estimate the rollback time, but there is no formula to calculate the time.
If you shut down the database after the rollback has been started, the rollback will start again at the stopped place.
You can check the comparison of the two columns in the V $ FAST_START_TRANSACTIONS view: UNDOBLOCKSDONE and UNDOBLOCKSTOTAL.
Changes:
A large transaction is killed or rolled back
Cause:
The parallel transaction recovery (parallel transaction recovery) is not as fast as the serial rollback, because the pq slaves process will interfere with each other (interfer)
This depends on the type of rollback, which generally occurs on roll back Parallel index update.
Solution:
Change parallel recovery to serial online. If the cluster environment is used, it must be modified on all instances at the same time.
1. Find the oracle pid of smon (note that it is not the OS pid)
SQL> select pid, program from v $ process where program like '% SMON % ';
PID PROGRAM
----------------------------------------------------------
6 oracle @ stsun7 (SMON)
2. disable smon transaction cleanup
SQL> oradebug setorapid 'smon' s Oracle PID ';
SQL> oradebug event 10513 trace name context forever, level 2
3. kill the pq slave processes that are executing parallel transaction recovery at the OS level. You can use V $ FAST_START_SERVERS to find these pq slave processes.
Select SPID from V $ PROCESS where PID in (select PID from V $ FAST_START_SERVERS );
Then kill the query result of the select statement above at the OS level: kill-9 spid
4. Disable fast_start_parallel_rollback.
Alter system set fast_start_parallel_rollback = false;
5. Restart transaction recovery (transaction recovery)
SQL> oradebug setorapid 'smon' s Oracle PID ';
SQL> oradebug event 10513 trace name context off
Aspnet running error: OleDbConnection does not support parallel transactions
You have used two connections in the transaction,
Solution: use one,