oracle12c存在pdb情况下的data guard 详细搭建

之前搭建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
[email protected]'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/
[email protected]'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搭建成功



猜你喜欢

转载自blog.csdn.net/shiyu1157758655/article/details/79867838
今日推荐