Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: DataGuard
Laimutis,
For a standby to become unsynchronized, primary doesn't have to crash. It might simply be unable to deal with redo rates high enough. In our case we experienced different kinds of ORA-16166 when this happens like "ORA-16166: LGWR timed out on Network Server 2 due to buffer full condition" or "ORA-16166: LGWR network server failed to send remote message" But your scenario is easier to simulate :-)
Now, are you concerned with potential data loss or possibility of a FSFO to an unsynchronized standby and users connected to two primary databases? If it's the former than that can certainly happen unless you elevate your protection mode to max protection. If it's the latter (which I suspect was your question) than I don't see – at least in theory (i.e. no bugs) – how can this occur.
Let's go step by step. When target standby goes down, primary knows about it right away. You see something like the following in the primary alert logs...
LGWR: Attempting destination LOG_ARCHIVE_DEST_x
network reconnect (3113)
LGWR: Destination LOG_ARCHIVE_DEST_x network reconnect
abandoned
Errors in file /.../<sid>_lgwr_2621.trc:
ORA-03113: end-of-file on communication channel
LGWR: Network asynch I/O wait error 3113 log 5 service
'(DESCRIPTION=
Destination LOG_ARCHIVE_DEST_x is UNSYNCHRONIZED
LGWR: Failed to archive log 5 thread 1 sequence 350
(3113)
LGWR: Closing remote archive destination
LOG_ARCHIVE_DEST_x: '(DESCRIPTION=
Errors in file /.../<sid>_lgwr_2621.trc:
ORA-01041: internal error. hostdef extension doesn't
exist
LGWR: Error 1041 closing archivelog file
'(DESCRIPTION=
LGWR: Error 1041 disconnecting from destination
LOG_ARCHIVE_DEST_x standby host '(DESCRIPTION=
... or may be like this (I think depending on the way target standby went down and which instance’s alert.log you monitor [if your primary is RAC]):
LGWR: Attempting destination LOG_ARCHIVE_DEST_x
network reconnect (1089)
LGWR: Error 1041 disconnecting from destination
LOG_ARCHIVE_DEST_x standby host '(DESCRIPTION=…
*******************************************************WARNING:Detected remote instance standby database network disconnect
*******************************************************LNSdstarted with pid=46, OS id=29335
... and v$database.fs_failover_status obviously becomes "UNSYNCHRONIZED". If all instances of primary go down afterwards -- but before target standby came back up to resynchronize -- than naturally no FSFO can occur. There's no target standby to fail over to.
Now, if target standby than comes back –- and all primary instances are still down –- than still no FSFO takes place as Oracle knows that this standby is not synchronized. In addition to fs_failover_status you should also see v$database.protection_level switching to "RESYNCHRONIZATION", while protection_mode remains "MAXIMUM AVAILABILITY". Finally restarting primary resynchs all databases.
Thanks,
Boris Dali.
> I already described the scenario of primary crashing
> while standby is unavailable (in other words -
> primary crashing in downgraded performance
> mode.) Standby is unaware then of primary's
> progress
...
-- http://www.freelists.org/webpage/oracle-lReceived on Mon Jan 22 2007 - 09:17:49 CST
![]() |
![]() |