墨墨导读:本文来自墨天轮用户投稿,介绍使用RMAN duplicate搭建12C的Data Guard环境的全过程。
1. 实验环境
2. 主端的数据库环境
[oracle@dg1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Dec 29 10:43:05 2020
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED 2 PDB$SEED READ ONLY NO 3 SINGLE READ WRITE NO 5 GYLRS MOUNTED 6 JY MOUNTED 7 TA401 MOUNTED
3. 添加hosts文件
主备端添加以下内容
[oracle@dg1 ~]$ cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4192.168.xx.175 dg1192.168.xx.177 dg2[oracle@dg1 ~]$
4. 主端开启force logging
SQL> select name,log_mode,force_logging from gv$database;NAME LOG_MODE FORCE_LOGGING--------- ------------ ---------------------------------------NEWCDB ARCHIVELOG NO
SQL> alter database force logging;Database altered.
SQL> select name,log_mode,force_logging from gv$database;NAME LOG_MODE FORCE_LOGGING--------- ------------ ---------------------------------------NEWCDB ARCHIVELOG YES
5. 主端提前添加standby redo备端会自动添加
SQL> col member format a50SQL> select a.GROUP#,BYTES/1024/1024STATUS,TYPE,MEMBER from v$log a,v$logfile b where a.GROUP#=b.GROUP#; GROUP# STATUS TYPE MEMBER---------- ---------- ------- ------------------------------------------------- 3 200 ONLINE /oracle/app/oracle/oradata/singledb/redo03.log 2 200 ONLINE /oracle/app/oracle/oradata/singledb/redo02.log 1 200 ONLINE /oracle/app/oracle/oradata/singledb/redo01.log
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/oracle/app/oracle/oradata/singledb/redo04.log') size 200M;ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/oracle/app/oracle/oradata/singledb/redo05.log') size 200M;ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/oracle/app/oracle/oradata/singledb/redo06.log') size 200M;ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/oracle/app/oracle/oradata/singledb/redo07.log') size 200M;
6. 主端配置静态监听
配置listener.ora文件,添加singledb的静态监听条目
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = singledb)
(ORACLE_HOME = /oracle/app/oracle/product/12.2.0.1/dbhome_1/)
(SID_NAME = singledb)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.175)(PORT = 1521))
)
ADR_BASE_LISTENER = /oracle/app/oracle
配置tnsnames.ora文件,添加备端的监听连接串
# Generated by Oracle configuration tool
LISTENER_SINGLEDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.175)(PORT = 1521))
SINGLEDB_PD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.175)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = SINGLEDB)
)
)
SINGLEDB_ST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.177)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = singledb)
)
)
7. 备端配置静态监听
配置listener.ora文件,添加singledb的静态监听条目
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (ORACLE_HOME = /oracle/app/oracle/product/12.2.0.1/dbhome_1/) (SID_NAME = singledb) ) )
LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.177)(PORT = 1521)) )
ADR_BASE_LISTENER = /oracle/app/oracle
配置tnsnames.ora文件,添加备端的监听连接串
LISTENER_SINGLEDB = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.175)(PORT = 1521))
SINGLEDB_PD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.175)(PORT = 1