Oracle 23ai – Automatic Transaction Quarantine

I think that everyone in their career has encountered at least once a problem during the transaction recovery phase when starting a database. Transaction recovery is a permanent part of this process. However, sometimes problems with individual transactions cause the database to be unable to open. What does this affect? On database availability!

The latest version of the Oracle23ai database allows you to at least partially increase this availability.

Transactions that cannot be reproduced are quarantined. The recovery process

is not continued and finally the database is opened; is available for the application.

This is a more favorable scenario. In a worse case, when the transaction is significant and crucial, the mechanism is different. Escalation occurs for transactions in quarantine. A significant transaction very quickly causes a problem with many other transactions. The limit for escalation is 3 transactions. If it is exceeded, the DBA must take action to correct the situation.

Which transactions require help? This information is shown in several places – alert log, attention log and two views (container or pluggable database level) – CDB_QUARANTINED_TRANSACTIONS, DBA_QUARANTINED_TRANSACTIONS.

After completing the repair of the transaction (logical, physical corruption), we must explicitly remove it from the quarantine and resume the transaction recovery procedure. Otherwise, the SMON process will still try to perform a recovery operation for it:

ALTER DATABASE DROP TRANSACTION QUARANTINE

ALTER SYSTEM SET TRANSACTION_RECOVERY

In my experience, escalation in the transaction recovery process is more likely to occur. If something happens in this area, it is likely to be a more serious failure.

However, it is nice that this information is made available in a centralized form in a database.