this is our configuration

DGMGRL> show configuration

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  tru19c    - Primary database
    TRU19c_DR - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 34 seconds ago)
DGMGRL> show database verbose TRU19c

Database - tru19c

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

  Properties:
    DGConnectIdentifier             = 'tru19c'
    ObserverConnectIdentifier       = ''
    FastStartFailoverTarget         = ''
    PreferredObserverHosts          = ''
    LogShipping                     = 'ON'
    RedoRoutes                      = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'optional'
    MaxFailure                      = '0'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyLagThreshold               = '30'
    TransportLagThreshold           = '30'
    TransportDisconnectedThreshold  = '30'
    ApplyParallel                   = 'AUTO'
    ApplyInstances                  = '0'
    StandbyFileManagement           = ''
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '0'
    LogArchiveMinSucceedDest        = '0'
    DataGuardSyncLatency            = '0'
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = ''
    DbFileNameConvert               = ''
    LogFileNameConvert              = ''
    ArchiveLocation                 = ''
    AlternateLocation               = ''
    StandbyArchiveLocation          = ''
    StandbyAlternateLocation        = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    LogXptStatus                    = '(monitor)'
    SendQEntries                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    HostName                        = 'cloud-node01'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-node01.subnet.vcn.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DGMGRL)(INSTANCE_NAME=TRU19c)(SERVER=DEDICATED)))'
    TopWaitEvents                   = '(monitor)'
    SidName                         = '(monitor)'

  Log file locations:
    Alert log               : /u01/app/oracle/diag/rdbms/tru19c/TRU19c/trace/alert_TRU19c.log
    Data Guard Broker log   : /u01/app/oracle/diag/rdbms/tru19c/TRU19c/trace/drcTRU19c.log

Database Status:
SUCCESS

DR database

DGMGRL>  show database verbose TRU19c_DR

Database - TRU19c_DR

  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: 3.00 KByte/s
  Active Apply Rate:  1.25 MByte/s
  Maximum Apply Rate: 1.60 MByte/s
  Real Time Query:    OFF
  Instance(s):
    TRU19c_DR

  Properties:
    DGConnectIdentifier             = 'tru19c_dr'
    ObserverConnectIdentifier       = ''
    FastStartFailoverTarget         = ''
    PreferredObserverHosts          = ''
    LogShipping                     = 'ON'
    RedoRoutes                      = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'OPTIONAL'
    MaxFailure                      = '0'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyLagThreshold               = '30'
    TransportLagThreshold           = '30'
    TransportDisconnectedThreshold  = '30'
    ApplyParallel                   = 'AUTO'
    ApplyInstances                  = '0'
    StandbyFileManagement           = ''
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '0'
    LogArchiveMinSucceedDest        = '0'
    DataGuardSyncLatency            = '0'
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = ''
    DbFileNameConvert               = ''
    LogFileNameConvert              = ''
    ArchiveLocation                 = ''
    AlternateLocation               = ''
    StandbyArchiveLocation          = ''
    StandbyAlternateLocation        = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    LogXptStatus                    = '(monitor)'
    SendQEntries                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    HostName                        = 'cloud-dr-node01'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))'
    TopWaitEvents                   = '(monitor)'
    SidName                         = '(monitor)'

  Log file locations:
    Alert log               : /u01/app/oracle/diag/rdbms/tru19c_dr/TRU19c_DR/trace/alert_TRU19c_DR.log
    Data Guard Broker log   : /u01/app/oracle/diag/rdbms/tru19c_dr/TRU19c_DR/trace/drcTRU19c_DR.log

Database Status:
SUCCESS

switchover to DR – SUCCESS

DGMGRL> switchover to 'TRU19c_DR';
Performing switchover NOW, please wait...
Operation requires a connection to database "TRU19c_DR"
Connecting ...
Connected to "TRU19c_DR"
Connected as SYSDBA.
New primary database "TRU19c_DR" is opening...
Operation requires start up of instance "TRU19c" on database "tru19c"
Starting instance "TRU19c"...
Connected to an idle instance.
ORACLE instance started.
Connected to "TRU19c"
Database mounted.
Connected to "TRU19c"
Switchover succeeded, new primary is "TRU19c_DR"
DGMGRL> show configuration

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  TRU19c_DR - Primary database
    tru19c    - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 66 seconds ago)

switchback to PROD – FAILED

DGMGRL> switchover to 'TRU19c';
Performing switchover NOW, please wait...
Operation requires a connection to database "tru19c"
Connecting ...
Connected to "TRU19c"
Connected as SYSDBA.
New primary database "tru19c" is opening...
Operation requires start up of instance "TRU19c_DR" on database "TRU19c_DR"
Starting instance "TRU19c_DR"...
Unable to connect to database using (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))
ORA-12545: Connect failed because target host or object does not exist

Failed.

Please complete the following steps to finish switchover:
        start up and mount instance "TRU19c_DR" of database "TRU19c_DR"

first let’s complete the switchover

as you can see primary database is open but DR is stuck

SQL> select name,open_mode,database_role from v$database;

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TRU19C    READ WRITE           PRIMARY

so we will start DR manually

SQL> startup mount
ORACLE instance started.

Total System Global Area 4647285816 bytes
Fixed Size                  8905784 bytes
Variable Size             855638016 bytes
Database Buffers         3774873600 bytes
Redo Buffers                7868416 bytes
Database mounted.
aSQL> recover manged standby database disconnect from session;
Media recovery complete.
SQL> select name,open_mode,database_role from v$database;

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TRU19C    MOUNTED              PHYSICAL STANDBY
DGMGRL> show configuration

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  tru19c    - Primary database
    TRU19c_DR - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 40 seconds ago)

Now lets investigate the reason and correct it

as you can see from the error dueing swithcover

Starting instance "TRU19c_DR"...
Unable to connect to database using (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))
ORA-12545: Connect failed because target host or object does not exist

Failed.

DR connection is using HOST=cloud-dr-node01. let’s see if this host is reachable from PROD server.

as you can see it is not reachable but fully qualified name is reachable

[oracle@cloud-node01 admin]$ ping cloud-dr-node01
ping: cloud-dr-node01: Name or service not known


[oracle@cloud-node01 admin]$ ping cloud-dr-node01.subnet.vcn.oraclevcn.com
PING cloud-dr-node01.subnet.vcn.oraclevcn.com (10.0.0.3) 56(84) bytes of data.
64 bytes from cloud-dr-node01.subnet.vcn.oraclevcn.com (10.0.0.3): icmp_seq=1 ttl=64 time=0.144 ms
64 bytes from cloud-dr-node01.subnet.vcn.oraclevcn.com (10.0.0.3): icmp_seq=2 ttl=64 time=0.157 ms
^C

Why it is taking this partial name

DGMGRL> show database TRU19c staticConnectidentifier
  StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-node01.subnet.vcn.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DGMGRL)(INSTANCE_NAME=TRU19c)(SERVER=DEDICATED)))'
DGMGRL> show database TRU19c_DR staticConnectidentifier
  StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))'

edit this property and set it correctly

DGMGRL> edit database TRU19c_DR set property StaticConnectIdentifier ='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))';
Property "staticconnectidentifier" updated
DGMGRL> show database TRU19c_DR staticConnectidentifier
  StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=TRU19c_DR_DGMGRL)(INSTANCE_NAME=TRU19c_DR)(SERVER=DEDICATED)))'

try swithcover again

DGMGRL> switchover to 'TRU19c_DR';
Performing switchover NOW, please wait...
Operation requires a connection to database "TRU19c_DR"
Connecting ...
Connected to "TRU19c_DR"
Connected as SYSDBA.
New primary database "TRU19c_DR" is opening...
Operation requires start up of instance "TRU19c" on database "tru19c"
Starting instance "TRU19c"...
Connected to an idle instance.
ORACLE instance started.
Connected to "TRU19c"
Database mounted.
Connected to "TRU19c"
Switchover succeeded, new primary is "TRU19c_DR"
DGMGRL> show configuration;

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  TRU19c_DR - Primary database
    tru19c    - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 35 seconds ago)

swichback

DGMGRL>  switchover to 'TRU19c';
Performing switchover NOW, please wait...
Operation requires a connection to database "tru19c"
Connecting ...
Connected to "TRU19c"
Connected as SYSDBA.
New primary database "tru19c" is opening...
Operation requires start up of instance "TRU19c_DR" on database "TRU19c_DR"
Starting instance "TRU19c_DR"...
Connected to an idle instance.
ORACLE instance started.
Connected to "TRU19c_DR"
Database mounted.
Connected to "TRU19c_DR"
Switchover succeeded, new primary is "TRU19c"
DGMGRL>  show configuration;

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  tru19c    - Primary database
    TRU19c_DR - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 59 seconds ago)