Understanding LOG_ARCHIVE_DEST_2 Parameters in Oracle Data Guard

Oracle Data Guard is a powerful feature that ensures high availability, data protection, and disaster recovery for enterprise databases. One of the critical configurations in Data Guard is setting up LOG_ARCHIVE_DEST_n parameters, which define how redo logs are transported from the primary database to the standby database.

In this blog, we’ll break down the options used in the following configuration:

LOG_ARCHIVE_DEST_2 = 
  service="orcl_Dr", 
  ASYNC NOAFFIRM 
  delay=0 
  optional 
  compression=disable 
  max_failure=0 
  reopen=300 
  db_unique_name="orcldr" 
  net_timeout=30, 
  valid_for=(online_logfile,all_roles)

Parameter Breakdown

1. service=”orcl_Dr”

  • Specifies the Oracle Net service name used to connect to the standby database.
  • In this case, orcl_Dr is the TNS alias pointing to the standby.

2. ASYNC

  • Redo transport mode is asynchronous.
  • Redo data is sent without waiting for acknowledgment from the standby.
  • Benefits: Less impact on primary performance.
  • Trade-off: Slight risk of data loss if the primary fails before redo reaches standby.

3. NOAFFIRM

  • The standby does not confirm that redo blocks are written to disk before acknowledging receipt.
  • Improves performance but reduces durability guarantees.

4. delay=0

  • No delay in applying redo logs.
  • Redo is applied immediately as it arrives.
  • Useful for real-time disaster recovery.

5. optional

  • Marks this destination as optional.
  • If the standby is unavailable, the primary continues without error.
  • Contrast: A mandatory destination would block log archiving if unreachable.

6. compression=disable

  • Redo transport compression is disabled.
  • Compression can save bandwidth but adds CPU overhead.
  • Best choice depends on network vs CPU resources.

7. max_failure=0

  • Number of consecutive failures allowed before the destination is considered failed.
  • 0 means no tolerance—any failure marks the destination as failed.

8. reopen=300

  • If a failure occurs, Oracle retries after 300 seconds (5 minutes).
  • Prevents constant retry attempts that could overload the system.

9. db_unique_name=”orcldr”

  • Identifies the unique name of the standby database.
  • Ensures redo is sent to the correct destination in multi-standby setups.

10. net_timeout=30

  • Sets the network timeout to 30 seconds.
  • If no response is received within this time, the transport is considered failed.

11. valid_for=(online_logfile,all_roles)

  • Defines when this destination is valid:
    • online_logfile → redo logs generated online.
    • all_roles → applies whether the database is in primary or standby role.
  • Ensures flexibility during role transitions (switchover/failover).

Why This Matters

This configuration is designed for:

  • Performance: Using ASYNC and NOAFFIRM reduces overhead on the primary.
  • Resilience: optional ensures the primary keeps running even if the standby is down.
  • Recovery readiness: valid_for=(online_logfile,all_roles) ensures redo transport works seamlessly during role changes.
This entry was posted in Oracle on by .
Unknown's avatar

About SandeepSingh

Hi, I am working in IT industry with having more than 15 year of experience, worked as an Oracle DBA with a Company and handling different databases like Oracle, SQL Server , DB2 etc Worked as a Development and Database Administrator.

Leave a Reply