本文共 21967 字,大约阅读时间需要 73 分钟。
之前搭建Data Guard的一般都是在11g或者是12c的非cdb上,那么下面就介绍如何在12c cdb(含有pdb)上搭建Data Guard。 一、测试环境 1、OS Version: [root@primary ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.5 (Final) Release: 6.5 Codename: Final 2、DB Version: SQL> select * from v$version; BANNER CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0 PL/SQL Release 12.2.0.1.0 - Production 0 CORE 12.2.0.1.0 Production 0 TNS for Linux: Version 12.2.0.1.0 - Production 0 NLSRTL Version 12.2.0.1.0 - Production 0 SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 3、实例名 Database DB_UNIQUE_NAME Oracle Net Service Name Primariy orcl orcl Primary standby orcls orcls IP地址: [root@primary ~]# cat /etc/hosts 127.0.0.1 localhost 192.168.0.30 primary 192.168.0.202 standby 二、具体搭建过程 下面操作都在主库上执行: 1.主库启动FORCE LOGGING QL> col name for a10 SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------- ---------- PDB$SEED READ ONLY ORCLPDB READ WRITE SQL> alter database force logging; Database altered. SQL> select force_logging from v$database; FORCE_LOGGING --------------------------------------- YES 2.启动归档模式 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /u01/app/oracle/product/12.2.0/db_1/dbs/arch Oldest online log sequence 23 Current log sequence 25 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 419430400 bytes Fixed Size 8793496 bytes Variable Size 297796200 bytes Database Buffers 109051904 bytes Redo Buffers 3788800 bytes Database mounted. SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/12.2.0/db_1/dbs/arch Oldest online log sequence 23 Next log sequence to archive 25 Current log sequence 25 SQL> alter system set log_archive_dest_1='location=/data/oradata/orcl/archivelog'; System altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /data/oradata/orcl/archivelog Oldest online log sequence 23 Next log sequence to archive 25 Current log sequence 25 SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------- ---------- PDB$SEED READ ONLY ORCLPDB MOUNTED SQL> alter session set container=orclpdb; Session altered. SQL> alter database open; Database altered. SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------- ---------- ORCLPDB READ WRITE 3.在主库添加 standby redo logfile 在Oracle 12c的架构里,online redo log 和控制文件是保存在CDB中的,PDB中只有运行需要的数据文件,所以我们这里加standby redo log,也是在CDB中加。 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> select group#, members, bytes from v$log; GROUP# MEMBERS BYTES ---------- ---------- ---------- 1 1 209715200 2 1 209715200 3 1 209715200 SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /data/oradata/orcl/redo03.log /data/oradata/orcl/redo02.log /data/oradata/orcl/redo01.log 添加 4(3+1)个standby logfile: SQL> alter database add standby logfile '/data/oradata/orcl/stb_redo10.log' size 200M; Database altered. SQL> alter database add standby logfile '/data/oradata/orcl/stb_redo11.log' size 200M; Database altered. SQL> alter database add standby logfile '/data/oradata/orcl/stb_redo12.log' size 200M; Database altered. SQL> alter database add standby logfile '/data/oradata/orcl/stb_redo13.log' size 200M; Database altered. SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /data/oradata/orcl/redo03.log /data/oradata/orcl/redo02.log /data/oradata/orcl/redo01.log /data/oradata/orcl/stb_redo10.log /data/oradata/orcl/stb_redo11.log /data/oradata/orcl/stb_redo12.log /data/oradata/orcl/stb_redo13.log 7 rows selected. 4.配置监听并启动 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) 5.配置tnsnames.ora orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) orcls = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcls) ) ) 6.修改参数文件 SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_name string orcl SQL> show parameter db_unique_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string orcl SQL> show parameter log_archive_config NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string SQL> alter system set log_archive_config='dg_config=(orcl,orcls)'; System altered. SQL> alter system set log_archive_dest_2='service=orcls valid_for=(online_logfiles,primary_role) db_unique_name=orcls'; System altered. SQL> alter system set log_archive_dest_state_1=enable; System altered. SQL> alter system set log_archive_dest_state_2=enable; System altered. SQL> alter system set standby_file_management='auto'; System altered. SQL> alter system set fal_server='orcls'; System altered. SQL> alter system set db_file_name_convert='/data/oradata/orcls','/data/oradata/orcl' scope=spfile; System alterd SQL> alter system set log_file_name_convert='/data/oradata/orcls','/data/oradata/orcl' scope=spfile; System alterd 7.重启数据库使上面修改的参数生效 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 419430400 bytes Fixed Size 8793496 bytes Variable Size 297796200 bytes Database Buffers 109051904 bytes Redo Buffers 3788800 bytes Database mounted. Database opened. SQL> alter session set container=orclpdb; Session altered. SQL> alter database open; Database altered. 8.生成pfile SQL> create pfile from spfile; File created. 9.将生成的pfile 和密码文件上传到备库相对应的目录下面 orcl:/u01/app/oracle/product/12.2.0/db_1/dbs@primary>scp initorcl.ora orapworcl 192.168.0.202:/u01/app/oracle/product/12.2.0/db_1/dbs oracle@192.168.0.202's password: initorcl.ora 100% 1473 1.4KB/s 00:00 orapworcl 10.将监听和tns文件也上传到备库相对应的目录下 orcl:/u01/app/oracle/product/12.2.0/db_1/network/admin@primary>scp listener.ora tnsnames.ora 192.168.0.202:/u01/app/oracle/product/12.2.0/db_1/network/admin/ oracle@192.168.0.202's password: listener.ora 100% 331 0.3KB/s 00:00 tnsnames.ora 100% 508 0.5KB/s 00:00 下面的操作将在备库上执行 1.修改之前从主库拷贝过来的那个参数文件,具体如下: 先将pfile改成备库的pfile orcls:/u01/app/oracle/product/12.2.0/db_1/dbs@standby>mv initorcl.ora initorcls.ora 修改参数文件 orcls:/u01/app/oracle/product/12.2.0/db_1/dbs@standby>vi initorcls.ora *.audit_file_dest='/u01/app/oracle/admin/orcls/adump' *.audit_trail='db' *.compatible='12.2.0' *.control_files='/data/oradata/orcls/control01.ctl','/data/oradata/orcls/control02.ctl' *.db_block_size=8192 *.db_file_name_convert='/data/oradata/orcl','/data/oradata/orcls' *.db_name='orcl' *.db_unique_name='orcls' *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclsXDB)' *.enable_pluggable_database=true *.fal_client='' *.fal_server='orcl' *.log_archive_config='dg_config=(orcl,orcls)' *.log_archive_dest_1='location=/data/oradata/orcls/archivelog' *.log_archive_dest_2='service=orcl valid_for=(online_logfiles,primary_role) db_unique_name=orcl' *.log_archive_dest_state_1='ENABLE' *.log_archive_dest_state_2='ENABLE' *.log_file_name_convert='/data/oradata/orcl','/data/oradata/orcls' *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.pga_aggregate_target=99m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=397m *.standby_file_management='auto' *.star_transformation_enabled='TRUE' *.undo_tablespace='UNDOTBS1' 2.根据上面修改的参数文件,创建相应的目录文件 orcls:/home/oracle@standby>mkdir -p /u01/app/oracle/admin/orcls/adump orcls:/home/oracle@standby>mkdir -p /data/oradata/orcls orcls:/home/oracle@standby>mkdir -p /data/oradata/orcls/archivelog 3.重命名密码文件 orcls:/u01/app/oracle/product/12.2.0/db_1/dbs@standby>mv orapworcl orapworcls 4.修改监听文件(只需在备库上添加静态监听) orcls:/u01/app/oracle/product/12.2.0/db_1/network/admin@standby>vi listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcls) (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1) (SID_NAME = orcls) ) ) 5.修改tns(如果主库上配置好,直接复制过来即可) orcls:/u01/app/oracle/product/12.2.0/db_1/network/admin@standby>vi tnsnames.ora orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) orcls = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcls) ) ) 6.将数据库启动到nomount状态 orcls:/home/oracle@standby>sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 9 14:49:50 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount pfile='/u01/app/oracle/product/12.2.0/db_1/dbs/initorcls.ora' 7.验证监听和tns配置(一定要确保此步骤验证成功) 主库上执行: orcl:/home/oracle@primary>sqlplus sys/oracle@orcl as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 9 15:48:26 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production orcl:/home/oracle@primary>sqlplus sys/oracle@orcls as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 9 15:48:30 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> 备库上执行: orcls:/home/oracle@standby>sqlplus sys/oracle@orcl as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 9 15:49:01 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production orcls:/home/oracle@standby>sqlplus sys/oracle@orcls as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 9 15:49:04 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 8.开始进行Active duplicate orcls:/home/oracle@standby>rman target sys/oracle@orcl auxiliary sys/oracle@orcls Recovery Manager: Release 12.2.0.1.0 - Production on Mon Apr 9 14:51:49 2018 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1500334475) connected to auxiliary database: ORCL (not mounted) RMAN> duplicate target database for standby from active database; Starting Duplicate Db at 2018/04/09 14:53:05 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=35 device type=DISK contents of Memory Script: { backup as copy reuse targetfile '/u01/app/oracle/product/12.2.0/db_1/dbs/orapworcl' auxiliary format '/u01/app/oracle/product/12.2.0/db_1/dbs/orapworcls' ; } executing Memory Script Starting backup at 2018/04/09 14:53:07 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=64 device type=DISK Finished backup at 2018/04/09 14:53:09 contents of Memory Script: { restore clone from service 'orcl' standby controlfile; } executing Memory Script Starting restore at 2018/04/09 14:53:09 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: restoring control file channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02 output file name=/data/oradata/orcls/control01.ctl output file name=/data/oradata/orcls/control02.ctl Finished restore at 2018/04/09 14:53:11 contents of Memory Script: { sql clone 'alter database mount standby database'; } executing Memory Script sql statement: alter database mount standby database contents of Memory Script: { set newname for tempfile 1 to "/data/oradata/orcls/temp01.dbf"; set newname for tempfile 2 to "/data/oradata/orcls/pdbseed/temp012018-04-04_09-49-41-872-AM.dbf"; set newname for tempfile 3 to "/data/oradata/orcls/orclpdb/temp01.dbf"; switch clone tempfile all; set newname for datafile 1 to "/data/oradata/orcls/system01.dbf"; set newname for datafile 3 to "/data/oradata/orcls/sysaux01.dbf"; set newname for datafile 4 to "/data/oradata/orcls/undotbs01.dbf"; set newname for datafile 5 to "/data/oradata/orcls/pdbseed/system01.dbf"; set newname for datafile 6 to "/data/oradata/orcls/pdbseed/sysaux01.dbf"; set newname for datafile 7 to "/data/oradata/orcls/users01.dbf"; set newname for datafile 8 to "/data/oradata/orcls/pdbseed/undotbs01.dbf"; set newname for datafile 9 to "/data/oradata/orcls/orclpdb/system01.dbf"; set newname for datafile 10 to "/data/oradata/orcls/orclpdb/sysaux01.dbf"; set newname for datafile 11 to "/data/oradata/orcls/orclpdb/undotbs01.dbf"; set newname for datafile 12 to "/data/oradata/orcls/orclpdb/users01.dbf"; restore from nonsparse from service 'orcl' clone database ; sql 'alter system archive log current'; } executing Memory Script executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME renamed tempfile 1 to /data/oradata/orcls/temp01.dbf in control file renamed tempfile 2 to /data/oradata/orcls/pdbseed/temp012018-04-04_09-49-41-872-AM.dbf in control file renamed tempfile 3 to /data/oradata/orcls/orclpdb/temp01.dbf in control file executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 2018/04/09 14:53:17 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00001 to /data/oradata/orcls/system01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00003 to /data/oradata/orcls/sysaux01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00004 to /data/oradata/orcls/undotbs01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00005 to /data/oradata/orcls/pdbseed/system01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00006 to /data/oradata/orcls/pdbseed/sysaux01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00007 to /data/oradata/orcls/users01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00008 to /data/oradata/orcls/pdbseed/undotbs01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00009 to /data/oradata/orcls/orclpdb/system01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00010 to /data/oradata/orcls/orclpdb/sysaux01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:08 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00011 to /data/oradata/orcls/orclpdb/undotbs01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service orcl channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00012 to /data/oradata/orcls/orclpdb/users01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 2018/04/09 14:54:11 sql statement: alter system archive log current contents of Memory Script: { switch clone datafile all; } executing Memory Script datafile 1 switched to datafile copy input datafile copy RECID=4 STAMP=973004052 file name=/data/oradata/orcls/system01.dbf datafile 3 switched to datafile copy input datafile copy RECID=5 STAMP=973004052 file name=/data/oradata/orcls/sysaux01.dbf datafile 4 switched to datafile copy input datafile copy RECID=6 STAMP=973004052 file name=/data/oradata/orcls/undotbs01.dbf datafile 5 switched to datafile copy input datafile copy RECID=7 STAMP=973004052 file name=/data/oradata/orcls/pdbseed/system01.dbf datafile 6 switched to datafile copy input datafile copy RECID=8 STAMP=973004052 file name=/data/oradata/orcls/pdbseed/sysaux01.dbf datafile 7 switched to datafile copy input datafile copy RECID=9 STAMP=973004052 file name=/data/oradata/orcls/users01.dbf datafile 8 switched to datafile copy input datafile copy RECID=10 STAMP=973004052 file name=/data/oradata/orcls/pdbseed/undotbs01.dbf datafile 9 switched to datafile copy input datafile copy RECID=11 STAMP=973004052 file name=/data/oradata/orcls/orclpdb/system01.dbf datafile 10 switched to datafile copy input datafile copy RECID=12 STAMP=973004052 file name=/data/oradata/orcls/orclpdb/sysaux01.dbf datafile 11 switched to datafile copy input datafile copy RECID=13 STAMP=973004052 file name=/data/oradata/orcls/orclpdb/undotbs01.dbf datafile 12 switched to datafile copy input datafile copy RECID=14 STAMP=973004052 file name=/data/oradata/orcls/orclpdb/users01.dbf Finished Duplicate Db at 2018/04/09 14:54:21 9.打开备库并并启动apply SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED MOUNTED 3 ORCLPDB MOUNTED SQL> alter database open; Database altered. SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB MOUNTED SQL> alter pluggable database orclpdb open; Pluggable database altered. SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ ONLY NO SQL> select log_mode,open_mode ,database_role from v$database; LOG_MODE OPEN_MODE DATABASE_ROLE ------------ -------------------- ---------------- ARCHIVELOG READ ONLY PHYSICAL STANDBY SQL> alter database recover managed standby database using current logfile disconnect from session; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY WITH APPLY 10.验证DG 在主库上创建一个table并插入一行数据 SQL> select log_mode,open_mode ,database_role from v$database; LOG_MODE OPEN_MODE DATABASE_ROLE ------------ -------------------- ---------------- ARCHIVELOG READ ONLY WITH APPLY PHYSICAL STANDBY QL> alter session set container=orclpdb; Session altered. SQL> create table test(id int); Table created. SQL> insert into test values(1); 1 row created. SQL> commit; Commit complete. 备库上查询 SQL> alter session set container=orclpdb; Session altered. SQL> select * from test; ID ---------- 1 至此oracle 12c DG搭建成功转载地址:http://rdhji.baihongyu.com/