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.