After setting up a new dataguard configuration and broker the change of log transport mode to sync fail as below.
DGMGRL> edit database mystby set property LogXptMode='SYNC'; Error: ORA-16713: The Oracle Data Guard broker command timed out. Failed.
Sync mode was needed to change the protection mode. There was no other DG issue and redo transport and log apply was working fine. Transport mode change was only failing on the standby at that time. However, the sync mode parameters gets setup on the primary’s log archive destination. Log transport mode of the two instances looks like below due to this failure.
Transport-Related Property Settings: Property myprod Value mystby Value LogXptMode SYNC ASYNC
sm0 (Data Guard Broker Worker process) process hang (not responding to request).
System state show:
– sm0 on “waiting for ‘rdbms ipc message'” for long
wait times: snap=5389 min 21 sec, exc=5389 min 21 sec, total=5389 min 21 sec)
– The stack stack dump info show it did ‘timed out getting stack rsm0 process
Short stack dump: WAIT #0: nam='ksdxexeotherwait' ela= 30008940 p1=0 p2=0 p3=0 obj#=-1 tim=1430877633277147 ORA-32516: cannot wait for process 'Unix process pid: 25280, image: email@example.com (RSM0)' to finish executing ORADEBUG command 'SHORT_STACK'; wait time exceeds 30000 ms
– The stack trace getting stack of the process was ‘timed out’
– nsv1 process is idle wait as “waiting for ‘rdbms ipc message'”
The solution here is to kill rsm0 process:
$ kill -9 $RSM0_PID
rsm0 is non fatal background process. The new rsm0 process is to be respawned once being killed.
Disable the configuration and update the log transport mode and enabling it again (maybe this respwaned the rsm cleanly than killing it).
DGMGRL> disable configuration; Disabled.
DGMGRL> edit database mystby set property LogXptMode='SYNC'; Property "logxptmode" updated
DGMGRL> enable configuration; Enabled.
This worked as expected. The transprot node changes are now visible on the log_archive_dest on the primary.
log_archive_dest_3 string service="mystbytns", SYNC AFFIRM delay=0 optional c Transport-Related Property Settings: Property myprod Value mystby Value LogXptMode SYNC SYNC
After this it was possible to change the protection mode.
The Broker is killing the RSM0 process and restarting it because of an internal timeout that is too low. This can happen even in network choke condition also. Please provide what the OperationTimeout is set to.
DGMGRL> connect sys/
DGMGRL> show configuration OperationTimeout;
Increase the OperationTimeout or apply the patch. If this shows low 30-120, then set it higher, up to 600 (10 mins) :
DGMGRL> EDIT CONFIGURATION SET PROPERTY OperationTimeout=600;
Then see if the problem persists.