Broker reports ORA-16858: last communication time from redo source could not be determined (文档 ID 2064384.1)
现象: DGMGRL> show configuration Configuration - cdblhr18c Protection Mode: MaxPerformance Members: cdblhr18c - Primary database cdblhr18cdg - Physical standby database Members Not Receiving Redo: cdblhr18cdg2 - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the member Fast-Start Failover: DISABLED Configuration Status: ERROR (status updated 58 seconds ago) DGMGRL> show database CDBLHR18cdg2 Database - cdblhr18cdg2 Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 4 minutes (computed 10 seconds ago) Apply Lag: 4 minutes (computed 10 seconds ago) Average Apply Rate: 2.00 KByte/s Real Time Query: ON Instance(s): CDBLHR18cdg2 Database Error(s): ORA-16685: database does not receive redo data Database Warning(s): ORA-16853: apply lag has exceeded specified threshold ORA-16855: transport lag has exceeded specified threshold Database Status: ERROR DGMGRL> show database CDBLHR18cdg2 RedoRoutes RedoRoutes = '' DGMGRL> show database CDBLHR18cdg RedoRoutes RedoRoutes = '(cdblhr18cdg:cdblhr18cdg2)' DGMGRL> DGMGRL> show database CDBLHR18c RedoRoutes RedoRoutes = '' DGMGRL> 解决:RedoRoutes需要设置在主库上。 edit database cdblhr18c set property RedoRoutes ='(cdblhr18cdg:cdblhr18cdg2 ASYNC)';
APPLIES TO:
Oracle Database - Enterprise Edition - Version 12.1.0.1 and later
Information in this document applies to any platform.
SYMPTOMS
In a 12c configuration, Broker reports the errors:
ORA-16810: multiple errors or warnings detected for the database
ORA-16858: last communication time from redo source could not be determined
DGMGRL> show configuration
Configuration - cdb_t5
Protection Mode: MaxPerformance
Databases:
cdbph2 - Primary database
cdbphsb2 - Physical standby database
cdbphsb4 - Physical standby database
Error: ORA-16685: this database does not receive redo data
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
DGMGRL> show database cdbphsb4
Database - cdbphsb4
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: (unknown)
Apply Lag: (unknown)
Apply Rate: (unknown)
Real Time Query: OFF
Instance(s):
cdbphsb4
Database Error(s):
ORA-16685: this database does not receive redo data
Database Warning(s):
ORA-16858: last communication time from redo source could not be determined
CAUSE
Broker parameter RedoRoutes is not set correctly
SOLUTION
Modify Broker parameter redoroutes for the Primary to include both databases (i.e. ALL):
DGMGRL> edit database cdbph2 set property redoroutes='(LOCAL: ALL)';
An alternate solution is to list the Standby databases' DB_UNIQUE_NAME values separated by commas:
DGMGRL> edit database cdbph2 set property redoroutes='(cdbphsb2, cdbphsb4)';
RedoRoutes is a new 12c Data Guard Broker property with the following format:
RedoRoutes = ‘(<Redo Source> : <Redo Destination>)’
The Redo Source field must contain either the keyword LOCAL or ANY, or a comma-separated list of DB_UNIQUE_NAME values: {LOCAL | ANY | db_unique_name_1,[,db_unique_name_n]}
The Redo Destination field must contain the keyword ALL or a comma-separated list of database names, each of which can be followed by an optional redo transport attribute: {ALL [attribute] | db_unique_name_1 [attribute] [,db_unique_name_n [attribute]]}
The ALL keyword is an alias for all possible destinations in the configuration.
The optional redo transport attribute specifies the redo transport mode to use to send redo to the associated destination.
It can have one of three values: [ASYNC | SYNC | FASTSYNC]
If the redo transport attribute is not specified, then the redo transport mode used will be the one specified by the LogXptMode property for the destination.