ORA-02062 Error (Purging Pending Rows from the Data Dictionary)


After forced shutdown of operating system without shutting down of Oracle database in test environment we faces with error  shown bellow:

*** 2016-08-16 18:06:24.465
ERROR, tran=10.12.494450, session#=1, ose=0:
ORA-02062: distributed recovery received DBID 7472eb0b, expected d13ce73

This issue encountered when one system went down for maintenance (maybe abort mode) and left a 2 phase commit trx in limbo. Automatic recovery normally deletes entries in these states. The only exception is when recovery discovers a forced transaction that is in a state inconsistent with other sites in the transaction. Oracle will try periodically to recover (even though it can’t).  In this case, the entry can be left in the table and the MIXED column in DBA_2PC_PENDING has a value of YES.

The information in DBA_2PC_PENDING  describes distributed transactions awaiting recovery and will never be deleted. To fix this problem i used   DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY  procedure..

DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('transaction_id'); 

EXEC DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY('10.12.494450');