Active Data Guard DML Redirection

This new functionality enables the execution of incidental Data Manipulation Language (DML) and the dynamic creation of Global Temporary Tables (GTTs) on an Active Data Guard standby database. When DML is executed, the update is sent to the Primary database for execution. The resulting redo of the transaction will then update the Standby database, after which control is returned to the application. This process ensures that all ACID properties of the transaction are preserved.

Similarly, when DDL creates GTT it is executed on the standby, the command is captured and forwarded to the Primary for execution. Control is returned to the application when the redo for the GTT creation has been applied at the standby database.

Active Data Guard DML Redirection 19c (Doc ID 2465016.1)

For successful DML redirection, the following conditions must be met:

  • The Active Data Guard standby database must have managed standby recovery started with the real-time apply option, and it must be in sync with the primary database.
  • Connection to the Active Data Guard standby database can be established from a client machine or by using a TNS string like '$ sqlplus sys@CDB19SBY as sysdba'.

Avoid running too may DML operations on Active Data Guard standby databases. Because the operations are actually performed on the primary, too many DMLs may impact the performance of the primary.