Skip to content

How to Resolve ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set

  • by

ORA-16698

Tried to add a physical standby to the broker configuration, but it failed with ORA-16698.

DGMGRL> create configuration drconf as primary database is ORCLCDB connect identifier is ORCLCDB;
Configuration "drconf" created with primary database "ORCLCDB"
DGMGRL> add database ORCLSTB as connect identifier is ORCLSTB maintained as physical;
Error: ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set

Failed.

ORA-16698 means that at least one LOG_ARCHIVE_DEST_n is set with SERVICE attribute, which cannot be overwritten by the broker.

Solution

To solve ORA-16698, we need to empty LOG_ARCHIVE_DEST_n then do it again. Mostly it's LOG_ARCHIVE_DEST_2 or LOG_ARCHIVE_DEST_3.

1. Remove Configuration

DGMGRL> remove configuration;
Removed configuration
DGMGRL> exit

2. Stop Broker

On both sides.

[oracle@primary01 oracle]$ sqlplus / as sysdba
...
SQL> alter system set dg_broker_start=FALSE scope=both sid='*';

System altered.

3. Clear LOG_ARCHIVE_DEST_2

On both sides.

SQL> alter system reset log_archive_dest_2 scope=both sid='*';

System altered.

4. Start Broker

On both sides.

SQL> alter system set dg_broker_start=TRUE scope=both sid='*';

System altered.

SQL> show parameter broker

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
connection_brokers                   string      ((TYPE=DEDICATED)(BROKERS=1)),
                                                  ((TYPE=EMON)(BROKERS=1))
dg_broker_config_file1               string      +DATA/ORCLCDB/dr1.dat
dg_broker_config_file2               string      +DATA/ORCLCDB/dr2.dat
dg_broker_start                      boolean     TRUE
use_dedicated_broker                 boolean     FALSE

5. Create Broker Configuration

[oracle@primary01 oracle]$ dgmgrl /
...
Connected to "ORCLCDB"
Connected as SYSDG.
DGMGRL> create configuration drconf as primary database is ORCLCDB connect identifier is ORCLCDB;
Configuration "drconf" created with primary database "ORCLCDB"
DGMGRL> add database ORCLSTB as connect identifier is ORCLSTB maintained as physical;
Database "ORCLSTB" added
DGMGRL> show configuration

Configuration - drconf

  Protection Mode: MaxPerformance
  Members:
  ORCLCDB - Primary database
    ORCLSTB - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
DISABLED

6. Enable Broker Configuration

DGMGRL> enable configuration
Enabled.
DGMGRL> show configuration

Configuration - drconf

  Protection Mode: MaxPerformance
  Members:
  ORCLCDB - Primary database
    ORCLSTB - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 5 seconds ago)

DGMGRL> show database ORCLCDB

Database - ORCLCDB

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    ORCLCDB1
    ORCLCDB2

Database Status:
SUCCESS

DGMGRL> show database ORCLSTB

Database - ORCLSTB

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 0 seconds ago)
  Apply Lag:          0 seconds (computed 0 seconds ago)
  Average Apply Rate: 13.27 MByte/s
  Real Time Query:    OFF
  Instance(s):
    ORCLSTB1
    ORCLSTB2 (apply instance)

Database Status:
SUCCESS

We solved it.

Leave a Reply

Your email address will not be published.