Sunday, January 2, 2011

ORA-16608 | Oracle Dataguard

DGMGRL> show configuration

Configuration
Name: mhd_dr
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
orc1 - Primary database
lsd - Physical standby database
drs - Physical standby database

Current status for "mhd_dr":
Warning: ORA-16608: one or more databases have warnings


Now we have to track which Standby Database is generating errors


DGMGRL> show database verbose 'drs';

Database
Name: drs
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
drs

Properties:
InitialConnectIdentifier = 'drs'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '+DATA/orc1, +DATA/drs, +FLASH/orc1, +FLASH/drs, +IDX/orc1, +IDX/drs, +UNDO/orc1, +UNDO/drs'
LogFileNameConvert = '+DATA/orc1, +DATA/drs, +FLASH/orc1, +FLASH/drs, +IDX/orc1, +IDX/drs, +UNDO/orc1, +UNDO/drs'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'DBDRC'
SidName = 'drs'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=DBDRC)(PORT=
1521))'
StandbyArchiveLocation = 'E:\ARCHIVE'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'ARC%S_%R.%T'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "drs":
SUCCESS



DGMGRL> show database verbose 'lsd';

Database
Name: lsd
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
lsd

Properties:
InitialConnectIdentifier = 'lsd'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '+DATA/orc1, +DATA/lsd, +FLASH/orc1, +FLASH/lsd, +IDX/orc1, +IDX/lsd, +UNDO/orc1, +UNDO/lsd'
LogFileNameConvert = '+DATA/orc1, +DATA/lsd, +FLASH/orc1, +FLASH/lsd, +IDX/orc1, +IDX/lsd, +UNDO/orc1, +UNDO/lsd'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'LOCALSTANDBY'
SidName = 'lsd'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=LOCALSTANDBY
)(PORT=1521))'
StandbyArchiveLocation = 'E:\ARCHIVE'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'ARC%S_%R.%T'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "lsd":
Warning: ORA-16826: apply service state is inconsistent with the DelayMins property



So now we find that LSD has problems. So we review “drcLSD.log “ file to know the exact problem.


============ error message from drclsd.log=========================

DG 2011-01-01-11:20:30 0 2 0 RSM0: HEALTH CHECK WARNING: ORA-16826: apply service state is inconsistent with the DelayMins property
DG 2011-01-01-11:20:30 0 2 738705582 Operation CTL_GET_STATUS continuing with warning, status = ORA-16826
DG 2011-01-01-11:20:30 0 2 738705582 Operation CTL_GET_STATUS continuing with warning, status = ORA-16826
DG 2011-01-01-11:21:30 0 2 0 RSM: Redo Apply is running without USING CURRENT LOGFILE option while DelayMins=0
DG 2011-01-01-11:21:30 0 2 0 RSM0: HEALTH CHECK WARNING: ORA-16826: apply service state is inconsistent with the DelayMins property
DG 2011-01-01-11:21:30 0 2 738705585 Operation CTL_GET_STATUS continuing with warning, status = ORA-16826
DG 2011-01-01-11:21:30 0 2 738705585 Operation CTL_GET_STATUS continuing with warning, status = ORA-16826
============ error message from drclsd.log=========================


What does this message mean ?

DG 2011-01-01-11:21:30 0 2 0 RSM: Redo Apply is running without USING CURRENT LOGFILE option while DelayMins=0
DG 2011-01-01-11:21:30 0 2 0 RSM0: HEALTH CHECK WARNING: ORA-16826: apply service state is inconsistent with the DelayMins property

That means broker property DelayMins is set to 0, but recover managed standby database didn't start as real apply service. So DelayMins=0 cannot be achieved.


Solution :
Restart the physical standby with this command

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCO
NNECT FROM SESSION;

Database altered.



DGMGRL> show configuration

Configuration
Name: mhd_dr
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
orc1 - Primary database
lsd - Physical standby database
drs - Physical standby database

Current status for "mhd_dr":
SUCCESS







DGMGRL> show database verbose 'lsd';

Database
Name: lsd
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
lsd

Properties:
InitialConnectIdentifier = 'lsd'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '+DATA/orc1, +DATA/lsd, +FLASH/orc1, +FLASH/lsd, +IDX/orc1, +IDX/lsd, +UNDO/orc1, +UNDO/lsd'
LogFileNameConvert = '+DATA/orc1, +DATA/lsd, +FLASH/orc1, +FLASH/lsd, +IDX/orc1, +IDX/lsd, +UNDO/orc1, +UNDO/lsd'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'LOCALSTANDBY'
SidName = 'lsd'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=LOCALSTANDBY
)(PORT=1521))'
StandbyArchiveLocation = 'E:\ARCHIVE'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'ARC%S_%R.%T'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "lsd":
SUCCESS

No comments:

Post a Comment