Prerequisite

you need to sestup datagaurd on oracle colud follow this documnet

https://dbatracker.com/2020/06/02/create-19c-data-guard-on-oracle-cloud/

tnsnames.ora

make sure these tns entries are present on prod and dr servers db home

TRU19C =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = cloud-node01.subnet.vcn.oraclevcn.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TRU19c)
    )
  )



TRU19c_DR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TRU19c_DR)
    )
  )

configiration on primary side

make sure standby redologs are added

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

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



SQL> select GROUP#,THREAD#, bytes/1024/1024 MB from v$log order by GROUP#,THREAD#;

    GROUP#    THREAD#         MB
---------- ---------- ----------
         1          1        200
         2          1        200
         3          1        200
		 
SQL> select GROUP#,THREAD#, bytes/1024/1024 MB from v$standby_log order by GROUP#,THREAD#;

    GROUP#    THREAD#         MB
---------- ---------- ----------
         4          0        200
         5          0        200
         6          0        200

SQL> set lines 150
SQL> col member for a50
SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                             TYPE    STATUS
---------- -------------------------------------------------- ------- -------
         3 /u01/app/oracle/oradata/TRU19C/redo03.log          ONLINE
         2 /u01/app/oracle/oradata/TRU19C/redo02.log          ONLINE
         1 /u01/app/oracle/oradata/TRU19C/redo01.log          ONLINE
         4 /u01/app/oracle/oradata/TRU19C/redo04.log          STANDBY
         5 /u01/app/oracle/oradata/TRU19C/redo05.log          STANDBY
         6 /u01/app/oracle/oradata/TRU19C/redo06.log          STANDBY

6 rows selected.

configuration on standby side

make sure standby redo logs are added

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

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TRU19C    MOUNTED              PHYSICAL STANDBY


SQL> select GROUP#,THREAD#, bytes/1024/1024 MB from v$log order by GROUP#,THREAD#;

    GROUP#    THREAD#         MB
---------- ---------- ----------
         1          1        200
         2          1        200
         3          1        200

SQL> select GROUP#,THREAD#, bytes/1024/1024 MB from v$standby_log order by GROUP#,THREAD#;

    GROUP#    THREAD#         MB
---------- ---------- ----------
         4          1        200
         5          1        200
         6          0        200

SQL> set lines 150
SQL> col member for a50
SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                             TYPE    STATUS
---------- -------------------------------------------------- ------- -------
         3 /u01/app/oracle/oradata/TRU19C_DR/redo03.log       ONLINE
         2 /u01/app/oracle/oradata/TRU19C_DR/redo02.log       ONLINE
         1 /u01/app/oracle/oradata/TRU19C_DR/redo01.log       ONLINE
         4 /u01/app/oracle/oradata/TRU19C_DR/redo04.log       STANDBY
         5 /u01/app/oracle/oradata/TRU19C_DR/redo05.log       STANDBY
         6 /u01/app/oracle/oradata/TRU19C_DR/redo06.log       STANDBY

6 rows selected.

setup broker on prod side

setup broker parameters on prod and standby

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

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

SQL> sho parameter dg_broker_start

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start                      boolean     FALSE
SQL> ALTER SYSTEM SET dg_broker_start=true;

System altered.

SQL> sho parameter broker

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
connection_brokers                   string      ((TYPE=DEDICATED)(BROKERS=1)),
                                                  ((TYPE=EMON)(BROKERS=1))
dg_broker_config_file1               string      /u01/app/oracle/product/19c/db
                                                 home_1/dbs/dr1TRU19c.dat
dg_broker_config_file2               string      /u01/app/oracle/product/19c/db
                                                 home_1/dbs/dr2TRU19c.dat
dg_broker_start                      boolean     TRUE
use_dedicated_broker                 boolean     FALSE

dg_broker_config_file1 and dg_broker_config_file2 were already there so i skipped adding them again if you do not have them then use below steps on both primary and standby_log

ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='/u01/app/oracle/product/19c/dbhome_1/dbs/dr1TRU19c.dat' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='/u01/app/oracle/product/19c/dbhome_1/dbs/dr2TRU19c.dat' SCOPE=BOTH sid='*';

setup broker on standby side

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

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TRU19C    MOUNTED              PHYSICAL STANDBY


SQL> SQL> ALTER SYSTEM SET dg_broker_start=true;

System altered.

SQL>  sho parameter broker

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
connection_brokers                   string      ((TYPE=DEDICATED)(BROKERS=1)),
                                                  ((TYPE=EMON)(BROKERS=1))
dg_broker_config_file1               string      /u01/app/oracle/product/19c/db
                                                 home_1/dbs/dr1TRU19c_DR.dat
dg_broker_config_file2               string      /u01/app/oracle/product/19c/db
                                                 home_1/dbs/dr2TRU19c_DR.dat
dg_broker_start                      boolean     TRUE
use_dedicated_broker                 boolean     FALSE


dg_broker_config_file1 and dg_broker_config_file2 were already there so i skipped adding them again if you do not have them then use below steps on both primary and standby_log

ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='/u01/app/oracle/product/19c/dbhome_1/dbs/dr1TRU19c_DR.dat' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='/u01/app/oracle/product/19c/dbhome_1/dbs/dr2TRU19c_DR.dat' SCOPE=BOTH sid='*';

create configuration

on primary side

[oracle@cloud-node01 ~]$ dgmgrl
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Fri Jun 19 01:27:42 2020
Version 19.7.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.

DGMGRL> connect sys/tru19#123@TRU19c
Connected to "TRU19c"
Connected as SYSDBA.
DGMGRL> CREATE CONFIGURATION my_dg_config AS PRIMARY DATABASE IS TRU19c CONNECT IDENTIFIER IS TRU19c;
Configuration "my_dg_config" created with primary database "tru19c"

DGMGRL> show configuration;

Configuration - my_dg_config

  Protection Mode: MaxPerformance
  Members:
  tru19c - Primary database

Fast-Start Failover:  Disabled

Configuration Status:
DISABLED

add standby database in configuration

DGMGRL> ADD DATABASE 'TRU19c_DR' as CONNECT IDENTIFIER IS TRU19c_DR;
Database "TRU19c_DR" added
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:
DISABLED


DGMGRL> enable configuration;
Enabled.



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 60 seconds ago)

verify properties

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
DGMGRL> show database verbose TRU19c_DR

Database - TRU19c_DR

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 4.00 KByte/s
  Active Apply Rate:  614.00 KByte/s
  Maximum Apply Rate: 618.00 KByte/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.subnet.vcn.oraclevcn.com)(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

double check StaticConnectIdentifier. SERVICE_NAME and Host should have right values. Most of the failures during switchover happen due to this property not set properly

static entry in listener.ora for _DGMGRL services

add static entry for TRU19c_DGMGRL and TRU19c_DR_DGMGRL in listener.ora of prod and standby respectively.

so that listener on prod is aware of TRU19c_DGMGRL and listener on DR is aware of TRU19c_DR_DGMGRL

on prod

current listner status

[oracle@cloud-node01 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 01:51:39

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                01-JUN-2020 08:12:10
Uptime                    17 days 17 hr. 39 min. 28 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cloud-node01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-node01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "TRU19c" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "TRU19cXDB" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "TRU19c_CFG" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "a702b03bce5625a3e0530200000ad092" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully

add static entry

[oracle@cloud-node01 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
 (SID_LIST =
  (SID_DESC =
   (GLOBAL_DBNAME = TRU19c_DGMGRL)
   (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
   (SID_NAME = TRU19c)
  )
 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = cloud-node01.subnet.vcn.oraclevcn.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

after reload now see that DGMGRL service is visible

[oracle@cloud-node01 admin]$ lsnrctl reload

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 01:58:36

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
The command completed successfully




[oracle@cloud-node01 admin]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 01:58:45

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                01-JUN-2020 08:12:10
Uptime                    17 days 17 hr. 46 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cloud-node01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-node01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "TRU19c" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "TRU19cXDB" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "TRU19c_CFG" has 1 instance(s).
  Instance "TRU19c", status READY, has 1 handler(s) for this service...
Service "TRU19c_DGMGRL" has 1 instance(s).
  Instance "TRU19c", status UNKNOWN, has 1 handler(s) for this service...
Service "a702b03bce5625a3e0530200000ad092" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully

similarly on DR

[oracle@cloud-dr-node01 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 01:59:53

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                01-JUN-2020 08:31:20
Uptime                    17 days 17 hr. 28 min. 33 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cloud-dr-node01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "TRU19c_CFG" has 1 instance(s).
  Instance "TRU19c_DR", status READY, has 1 handler(s) for this service...
Service "TRU19c_DR" has 2 instance(s).
  Instance "TRU19c_DR", status UNKNOWN, has 1 handler(s) for this service...
  Instance "TRU19c_DR", status READY, has 1 handler(s) for this service...
Service "a702ff12dde12697e0530300000ab35e" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully



[oracle@cloud-dr-node01 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

#this one is for broker

SID_LIST_LISTENER =
 (SID_LIST =
  (SID_DESC =
   (GLOBAL_DBNAME = TRU19c_DR_DGMGRL)
   (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
   (SID_NAME = TRU19c_DR)
  )
 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )





[oracle@cloud-dr-node01 admin]$ lsnrctl reload

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 02:09:13

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
The command completed successfully
[oracle@cloud-dr-node01 admin]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUN-2020 02:09:21

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloud-dr-node01.subnet.vcn.oraclevcn.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                01-JUN-2020 08:31:20
Uptime                    17 days 17 hr. 38 min. 1 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cloud-dr-node01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloud-dr-node01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "TRU19c_CFG" has 1 instance(s).
  Instance "TRU19c_DR", status READY, has 1 handler(s) for this service...
Service "TRU19c_DR" has 1 instance(s).
  Instance "TRU19c_DR", status READY, has 1 handler(s) for this service...
Service "TRU19c_DR_DGMGRL" has 1 instance(s).
  Instance "TRU19c_DR", status UNKNOWN, has 1 handler(s) for this service...
Service "a702ff12dde12697e0530300000ab35e" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@cloud-dr-node01 admin]$

check gap before switchover

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

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TRU19C    MOUNTED              PHYSICAL STANDBY




SQL> select THREAD#,max(sequence#) from v$archived_log group by THREAD#;
select THREAD#,max(sequence#) from v$archived_log  where applied='YES' group by THREAD#;
   THREAD# MAX(SEQUENCE#)
---------- --------------
         1             52

SQL>

   THREAD# MAX(SEQUENCE#)
---------- --------------
         1             52


SQL> col VALUE for a30
SQL> set lines 300
SQL> select *from v$dataguard_stats;

SOURCE_DBID SOURCE_DB_UNIQUE_NAME            NAME                             VALUE                          UNIT                           TIME_COMPUTED                  DATUM_TIME             CON_ID
----------- -------------------------------- -------------------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ----------
 2139054058 TRU19c                           transport lag                    +00 00:00:00                   day(2) to second(0) interval   06/19/2020 02:15:20            06/19/2020 02:15:18                          0
 2139054058 TRU19c                           apply lag                        +00 00:00:00                   day(2) to second(0) interval   06/19/2020 02:15:20            06/19/2020 02:15:18                          0
 2139054058 TRU19c                           apply finish time                +00 00:00:00.000               day(2) to second(3) interval   06/19/2020 02:15:20                                0
          0                                  estimated startup time           7                              second                         06/19/2020 02:15:20                                0

switchover

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> 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

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)