Oracle 19c使用dbca来搭建物理DG--主rac备rac
主备配置rman参数:
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
如果11g的adg,如果没有打补丁(11.2.0.4.161018之前版本),添加参数:
alter system set "_ktb_debug_flags"=8 scope=both sid='*';
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';