If logs are not shipped to the physical standby database in Oracle Data Guard, the following steps can help resolve the issue based on the root cause.
Below is a structured guide to address the problem.
Common Symptoms
- Logs are not shipped after a log switch.
- FAL (Fetch Archive Log) fails.
- Standby database shows a mismatch in the applied column.
- RMAN reports errors (e.g.,
RMAN-08137
). - Errors in alert logs (e.g.,
ORA-12154
,ORA-3113
,ORA-3135
). ARCH
process warnings (e.g.,WARN: ARCH: Terminating pid <PID>
).
Causes
- OS or network errors causing
ARCH
processes to hang. - Reaching the maximum number of
ARCx
processes (log_archive_max_processes
). - Firewall-related issues (SQL*Net packet inspection or similar).
- Abrupt outages or crashes on the primary/standby server.
Step-by-Step Solution
Step 1: Disable Data Guard Broker (if enabled)
Disabling the broker avoids conflicts during manual recovery.
Step 2: Configure Primary Database
Defer Log Transport State Temporarily stop log shipping to standby.
Reset
log_archive_dest_2
Reset the configuration oflog_archive_dest_2
to clear any stuck processes.
Step 3: Prepare the Standby Database
Cancel Managed Recovery Stop managed recovery on the standby.
Shutdown the Standby Database Shut down the standby instance to reset its processes.
Step 4: Restart ARC Processes on Primary
Identify and Kill Stuck ARC Processes On the primary server, find and kill the stuck
ARCx
processes.Verify Restart Oracle will automatically respawn the
ARCx
processes after killing them.
Step 5: Restart the Standby Database
Start Standby in Mount Mode Bring the standby database back online in mount mode.
Resume Managed Recovery Resume the recovery process on the standby database.
Step 6: Reconfigure Log Transport on Primary
- Restore
log_archive_dest_2
Setlog_archive_dest_2
to its original value.
Step 7: Re-enable Data Guard Broker
If the Data Guard Broker was previously enabled, reactivate it on both primary and standby.
Step 8: Network and Firewall Check
Work with the network administrator to ensure:
- SQL*Net Fixup Protocol is disabled.
- Deep Packet Inspection (DPI) is turned off.
- SQL packets are not modified by firewalls.
Additional Notes
- If these steps do not resolve the issue, a restart of the primary database may be required as a last resort.
- To diagnose deeper issues, enable SQL*Net tracing as described in Doc ID 2010476.1 or consult Oracle Support.
Preventive Measures
Monitor Processes: Regularly check the status of
ARCx
processes.Firewall Rules: Ensure firewalls are configured to allow uninterrupted communication between primary and standby databases.
Set Adequate Log Archive Processes: Increase
log_archive_max_processes
if necessary (default is
By following these steps, you can resolve and prevent log shipping issues in Oracle Data Guard environments.
No comments:
Post a Comment