以下内容为主库是rac,备库也是rac类型,通过dbca的方式来搭建物理DG:

SELECT CDB FROM  V$DATABASE; 
alter database archivelog;
alter database force logging;
alter database flashback on;
alter database open;
alter pluggable database all open;
alter pluggable database all save state;
  
select thread#,group#,bytes/1024/1024 SIZE_MB, status,members from v$log;
select thread#,group#,member from v$logfile;

set line 9999 pagesize 9999 
col  db_id  format a15
col GROUP# format 99999
select  (select instance_name from gv$instance na where na.inst_id=a.INST_ID) instance_name, GROUP#, DBID db_id, THREAD#, SEQUENCE#, BYTES,  USED, ARCHIVED, STATUS, FIRST_CHANGE#,  NEXT_CHANGE#,LAST_CHANGE# from gv$standby_log a order by INST_ID,THREAD#,GROUP#;

alter database add standby logfile thread 1 group 5 ('+DATA','+FRA')  size 200M ,group 6 ('+DATA','+FRA')  size 200M ,group 7 ('+DATA','+FRA')  size 200M ;
alter database add standby logfile thread 2 group 8 ('+DATA','+FRA')  size 200M ,group 9 ('+DATA','+FRA')  size 200M ,group 10 ('+DATA','+FRA')  size 200M ;
  


--------配置tns
tns_rac19c =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.54)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.55)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac19c)
    )
  )
  
tns_rac19cdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.54)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.55)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac19cdg)
    )
  )
  
--------配置监听

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = rac19c)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19c1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = rac19cdg)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19cdg1)
    )
	(SID_DESC =
      (GLOBAL_DBNAME = rac19c_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19c1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = rac19cdg_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19cdg1)
    )
  )


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = rac19c)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19c2)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = rac19cdg)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19cdg2)
    )
	(SID_DESC =
      (GLOBAL_DBNAME = rac19c_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19c2)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = rac19cdg_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = rac19cdg2)
    )
  )
 

srvctl stop listener -l LISTENER
srvctl start listener -l LISTENER


dbca -silent -createDuplicateDB \
-gdbName rac19c \
-sid rac19cdg \
-sysPassword lhr \
-primaryDBConnectionString 192.168.59.54:1521/rac19c \
-nodelist raclhr-19c-n1,raclhr-19c-n2 \
-adminManaged \
-databaseConfigType RAC \
-createAsStandby -dbUniqueName rac19cdg \
-datafileDestination '+DATA' \
-initParams db_create_file_dest=+DATA, db_create_online_log_dest_1=+DATA
  
  

---全参数 rac环境
set line 1000
set pagesize 1000
col name format a25
col VALUE format a100
SELECT a.NAME,
       i.instance_name,
       a.VALUE
FROM   gv$parameter a, gv$instance i
WHERE  a.inst_id = i.inst_id and a.name in ('dg_broker_start','db_name','db_unique_name','log_archive_config','log_archive_dest_1','log_archive_dest_2','log_archive_dest_state_1','log_archive_dest_state_2','log_archive_max_processes','remote_login_passwordfile','db_file_name_convert','log_file_name_convert','standby_file_management','fal_server','fal_client','dg_broker_config_file1','dg_broker_config_file2')
ORDER BY a.name, i.instance_name;


  
--主库修改参数
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac19c' sid='*';
alter system set LOG_ARCHIVE_DEST_2='service=tns_rac19cdg  VALID_FOR=(online_logfiles,primary_role) DB_UNIQUE_NAME=rac19cdg' sid='*';
alter system set log_archive_config='dg_config=(rac19c,rac19cdg)' sid='*';
alter system set db_file_name_convert='+DATA','+DATA' scope=spfile sid='*';
alter system set log_file_name_convert='+DATA','+DATA' scope=spfile sid='*';
alter system set standby_file_management=auto scope=spfile sid='*';
alter system set fal_client='tns_rac19c' sid='*'; 
alter system set fal_server='tns_rac19cdg' sid='*';



---创建路径
ASMCMD> mkdir +DATA/dgshare/

--主库
show parameter dg
alter system set dg_broker_config_file1='+DATA/dgshare/dr1rac19c.dat'  SID='*';
alter system set dg_broker_config_file2='+DATA/dgshare/dr2rac19c.dat'  SID='*';
alter system set dg_broker_start=true sid='*';

--备库
show parameter dg
alter system set dg_broker_config_file1='+DATA/dgshare/dr1rac19cDG.dat'  SID='*';
alter system set dg_broker_config_file2='+DATA/dgshare/dr2rac19cDG.dat'  SID='*';
alter system set dg_broker_start=true sid='*';

  
--备库修改参数
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac19cdg' scope=spfile sid='*';
alter system set log_archive_config='dg_config=(rac19c,rac19cdg)';
alter system set db_file_name_convert='+DATA','+DATA' scope=spfile sid='*';
alter system set log_file_name_convert='+DATA','+DATA' scope=spfile sid='*';
alter system set standby_file_management=auto scope=spfile sid='*';
alter system set fal_client='tns_rac19cdg' sid='*';
alter system set fal_server='tns_rac19c' sid='*';

  
srvctl stop db -d rac19c
srvctl start db -d rac19c
srvctl stop db -d rac19cdg
srvctl start db -d rac19cdg

  
--备库查询实时应用
alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect;
! ps -ef|grep ora_mrp
  
select INST_ID, dbid,name,DB_UNIQUE_NAME,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;
  
COL NAME FOR A100
SET LINESIZE 9999  PAGESIZE 9999
COL NEXT_CHANGE# FOR 999999999999999
SELECT THREAD#, NAME, SEQUENCE#, ARCHIVED, APPLIED, A.NEXT_CHANGE#
  FROM V$ARCHIVED_LOG A
 WHERE A.SEQUENCE# >= (SELECT MAX(B.SEQUENCE#) - 3
                         FROM V$ARCHIVED_LOG B
                        WHERE B.THREAD# = A.THREAD#
                          AND B.RESETLOGS_CHANGE# = A.RESETLOGS_CHANGE#
                          AND B.RESETLOGS_CHANGE# =
                              (SELECT D.RESETLOGS_CHANGE# FROM V$DATABASE D)
                          AND B.APPLIED = 'YES' 
  GROUP BY B.THREAD#)
ORDER BY A.THREAD#, A.SEQUENCE#;


cp /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora /u01/app/19.3.0/grid/network/admin/tnsnames.ora
chown grid.oinstall /u01/app/19.3.0/grid/network/admin/tnsnames.ora


dgmgrl sys/lhr@rac19c
show configuration


create configuration rac19c as
primary database is rac19c
connect identifier is tns_rac19c;


add database rac19cdg as
connect identifier is tns_rac19cdg
maintained as physical;

enable configuration

show database verbose rac19c;
show database verbose rac19cdg;


alter database recover managed standby database cancel;

alter database flashback on;
select flashback_on,force_logging from v$database;
alter database recover managed standby database using current logfile disconnect;

edit database rac19c set property 'FastStartFailoverTarget'='rac19cdg';
edit database rac19cdg set property 'FastStartFailoverTarget'='rac19c';

最终结果:

[root@raclhr-19c-n1 admin]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       raclhr-19c-n1            STABLE
               ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.chad
               ONLINE  ONLINE       raclhr-19c-n1            STABLE
               ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.net1.network
               ONLINE  ONLINE       raclhr-19c-n1            STABLE
               ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.ons
               ONLINE  ONLINE       raclhr-19c-n1            STABLE
               ONLINE  ONLINE       raclhr-19c-n2            STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.MGMT.dg(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            Started,STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.qosmserver
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.rac19c.db
      1        ONLINE  ONLINE       raclhr-19c-n1            Open,HOME=/u01/app/o
                                                             racle/product/19.3.0
                                                             /dbhome_1,STABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            Open,HOME=/u01/app/o
                                                             racle/product/19.3.0
                                                             /dbhome_1,STABLE
ora.rac19cdg.db
      1        ONLINE  ONLINE       raclhr-19c-n1            Open,Readonly,HOME=/
                                                             u01/app/oracle/produ
                                                             ct/19.3.0/dbhome_1,S
                                                             TABLE
      2        ONLINE  ONLINE       raclhr-19c-n2            Open,Readonly,HOME=/
                                                             u01/app/oracle/produ
                                                             ct/19.3.0/dbhome_1,S
                                                             TABLE
ora.raclhr-19c-n1.vip
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
ora.raclhr-19c-n2.vip
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       raclhr-19c-n1            STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       raclhr-19c-n2            STABLE
--------------------------------------------------------------------------------