ITPub博客

首页 > 数据库 > Oracle > 容灾方案之级联DG的搭建

容灾方案之级联DG的搭建

原创 Oracle 作者:jiage_Daniel 时间:2016-08-30 19:25:47 0 删除 编辑

在生产中为了保证Oracle数据库数据的安全性,也为了防止不可抗拒的外在因素对数据库安全产生的影响,都会采取一些容灾的技术。特别地,对于一些重要数据会做多种容灾的方案保证数据的安全,本文就介绍一种容灾方案级联DG的搭建,级联DG是备库的备库,也就是主库将日志传输给备库之后,备库再将日志传输给级联库。主库的操作产生的日志可以实时传输给备库,但是级联库需要备库归档时才能同步,当主库切换日志时,级联库也能及时同步。

具体搭建步骤:

一、 主库配置
         IP              主机名  db_name  db_unique_name
主库       192.168.253.50      ora1      ora           ora1
备库       192.168.253.51      ora2      ora           ora2
级联库    192.168.253.50      ora3      ora           ora3


1.1 开启归档、force logging
[oracle@ora1 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 24 15:39:12 2016


Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to an idle instance.


SYS@ora>startup
ORACLE instance started.


Total System Global Area  830930944 bytes
Fixed Size                  2257800 bytes
Variable Size             536874104 bytes
Database Buffers          285212672 bytes
Redo Buffers                6586368 bytes
Database mounted.
Database opened.
SYS@ora>alter database force logging;


Database altered.


SYS@ora>select force_logging from v$database;


FOR
---
YES
1.2 增加日志组
SYS@ora>select member from v$logfile;


MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ora/redo03.log
/u01/app/oracle/oradata/ora/redo02.log
/u01/app/oracle/oradata/ora/redo01.log


SYS@ora>select bytes/1024/1024 from v$log;


BYTES/1024/1024
---------------
             50
             50
             50


SYS@ora>alter database add standby logfile group 4
 ('/u01/app/oracle/oradata/ora/sredo04.log') size 50m;


Database altered.


SYS@ora>alter database add standby logfile group 5
 ('/u01/app/oracle/oradata/ora/sredo05.log') size 50m;


Database altered.
SYS@ora>alter database add standby logfile group 6
 ('/u01/app/oracle/oradata/ora/sredo06.log') size 50m;


Database altered.


SYS@ora>alter database add standby logfile group 7
 ('/u01/app/oracle/oradata/ora/sredo07.log') size 50m;


Database altered.


SYS@ora>select member from v$logfile;


MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ora/redo03.log
/u01/app/oracle/oradata/ora/redo02.log
/u01/app/oracle/oradata/ora/redo01.log
/u01/app/oracle/oradata/ora/sredo04.log
/u01/app/oracle/oradata/ora/sredo05.log
/u01/app/oracle/oradata/ora/sredo06.log
/u01/app/oracle/oradata/ora/sredo07.log


7 rows selected.
1.3 生成pfile关闭数据库
SYS@ora>create pfile from spfile;
File created.


SYS@ora>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
1.4 修改主库参数文件
添加如下内容:
db_unique_name=ora1
log_archive_format=%t_%s_%r.arc
log_archive_config='DG_CONFIG=(ora1,ora2)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/fast_recovery_area/ora/ 
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ora1'
LOG_ARCHIVE_DEST_2='SERVICE=ora2 LGWR SYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora2'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ENABLE
LOG_ARCHIVE_MAX_PROCESSES=4
## Parameters which using for switch over from Primary to Standby.
fal_server=ora2
##fal_client=SBDB
standby_file_management=AUTO
#db_file_name_convert='ora2','ora1'
#log_file_name_convert='ora2','ora1'
1.5 主库配置监听与TNS
[oracle@ora1 admin]$ vi listener.ora 
# listener.ora Network Configuration File:
 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle


[oracle@ora1 admin]$ vi tnsnames.ora 
# tnsnames.ora Network Configuration File:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.


ora1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.50)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora1)
    )
  )


ora2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.51)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora2)
    )
  )
"tnsnames.ora" 20L, 515C written                                                                                                  
1.6 注册监听
[oracle@ora1 admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-AUG-2016 15:18:16


Copyright (c) 1991, 2013, Oracle.  All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                24-AUG-2016 14:31:56
Uptime                    0 days 0 hr. 46 min. 20 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File
   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ora1" has 1 instance(s).
  Instance "ora", status READY, has 1 handler(s) for this service...
Service "oraXDB" has 1 instance(s).
  Instance "ora", status READY, has 1 handler(s) for this service...
The command completed successfully
二、备库配置相关参数
2.1 修改参数
[oracle@ora1 dbs]$ scp orapwora 
oracle@192.168.253.51:$ORACLE_HOME/dbs/orapwora2
[oracle@ora1 dbs]$ scp initora.ora 
oracle@192.168.253.51:$ORACLE_HOME/dbs/initora2.ora
[oracle@ora2 dbs]$ ls
initora2.ora  init.ora  orapwora2
参数文件中添加如下内容:
db_unique_name=ora2
log_archive_format=%t_%s_%r.arc
log_archive_config='DG_CONFIG=(ora1,ora2)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/fast_recovery_area/ora/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ora2'
LOG_ARCHIVE_DEST_2='SERVICE=ora1 LGWR SYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora1'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ENABLE
LOG_ARCHIVE_MAX_PROCESSES=4
## Parameters which using for switch over from Primary to Standby.
fal_server=ora1
##fal_client=SBDB
standby_file_management=AUTO
#db_file_name_convert='ora1','ora2'
#log_file_name_convert='ora1','ora2'
2.2 备库配置静态监听及TNS
[oracle@ora2 admin]$ ls
listener.ora  samples  shrept.lst  tnsnames.ora
[oracle@ora2 admin]$ vi listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.51)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle


SID_LIST_LISTENER =
  (sid_list=
    (sid_desc=
      (sid_name=ora2)
      (oracle_home= /u01/app/oracle/product/11.2.0/dbhome_1)
      (global_dbname=ora2)
    )
  )
[oracle@ora2 admin]$ vi tnsnames.ora 


ora1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.50)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora1)
    )
  )


ora2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.51)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora2)
    )
  )
2.3 备库启动到nomount状态
[oracle@ora2 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 24 16:23:33 2016


Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to an idle instance.


SYS@ora2>create spfile from pfile;


File created.


SYS@ora2>startup nomount;
ORACLE instance started.


Total System Global Area  830930944 bytes
Fixed Size                  2257800 bytes
Variable Size             536874104 bytes
Database Buffers          285212672 bytes
Redo Buffers                6586368 bytes
2.4 用RMAN恢复备库(在主库、备库中执行均可)
[oracle@ora1 ~]$ rman target sys/oracle@ora1 auxiliary sys/oracle@ora2


Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 24 17:35:57 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.


connected to target database: ora (DBID=762083517)
connected to auxiliary database: ora (DBID=762083517, not omounted)


RMAN>duplicate target database for standby from active database dorecover nofilenamecheck;
。RMAN过程略去
。
。
。
。
三、级联库配置
3.1 修改级联库参数
[oracle@ora2 dbs]$ ls
hc_ora2.dat  initora2.ora  init.ora  lkora2  orapwora2
  spfileora2.ora
[oracle@ora2 dbs]$ scp orapwora2
 192.168.253.52:$ORACLE_HOME/dbs/orapwora3
oracle@192.168.253.52's password: 
orapwora2                   100% 1536     1.5KB/s   00:00    
[oracle@ora2 dbs]$ scp initora2.ora 
192.168.253.52:$ORACLE_HOME/dbs/initora3.ora
oracle@192.168.253.52's password: 
initora2.ora                  100% 1254     1.2KB/s   00:00    
参数文件中添加如下内容:
db_unique_name=ora3
log_archive_format=%t_%s_%r.arc
log_archive_config='DG_CONFIG=(ora3,ora2)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/fast_recovery_area/ora/ 
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ora3'
LOG_ARCHIVE_DEST_2='SERVICE=ora2 LGWR SYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora2'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ENABLE
LOG_ARCHIVE_MAX_PROCESSES=4
## Parameters which using for switch over from Primary to Standby.
fal_server=ora2
##fal_client=SBDB
standby_file_management=AUTO
#db_file_name_convert='ora1','ora2'
#log_file_name_convert='ora1','ora2'
3.2 创建相关目录
[oracle@ora3 ~]$ mkdir -p /u01/app/oracle/admin/ora/adump
[oracle@ora3 ~]$ mkdir -p /u01/app/oracle/oradata/ora/
[oracle@ora3 ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/ora
3.3 级联库配置静态监听
[oracle@ora3 admin]$ ls
samples  shrept.lst  tnsnames.ora
[oracle@ora3 admin]$ vi listener.ora


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.52)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle


SID_LIST_LISTENER =
  (sid_list=
    (sid_desc=
      (sid_name=ora3)
      (oracle_home= /u01/app/oracle/product/11.2.0/dbhome_1)
      (global_dbname=ora3)
    )
  )


"listener.ora" [New] 18L, 342C written                                                                                            
[oracle@ora3 admin]$ vi tnsnames.ora 


ora1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.50)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora1)
    )
  )


ora2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.51)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora2)
    )
  )
ora3 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora3)
    )
  )
3.4 级联库启动到nomount状态
[oracle@ora3 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 24 19:10:20 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.


SYS@ora3>create spfile from pfile;


File created.


SYS@ora3>startup nomount;
ORACLE instance started.


Total System Global Area  830930944 bytes
Fixed Size                  2257800 bytes
Variable Size             536874104 bytes
Database Buffers          285212672 bytes
Redo Buffers                6586368 bytes
3.5 备库中TNS添加如下内容
ora3 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora3)
    )
  )
3.6 级联库启动监听
[oracle@ora3 admin]$ lsnrctl start


LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-AUG-2016 19:06:37


Copyright (c) 1991, 2013, Oracle.  All rights reserved.


Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...


TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is
 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ora3/listener/alert/log.xml
Listening on:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.253.52)(PORT=1521)))


Connecting to
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.253.52)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                24-AUG-2016 19:06:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File
   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora3/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.253.52)(PORT=1521)))
Services Summary...
Service "ora3" has 1 instance(s).
  Instance "ora3", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
3.7 验证备库与级联库互通情况
[oracle@ora3 admin]$ sqlplus sys/oracle@ora2 as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 24 19:07:32 2016


Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


[oracle@ora2 ~]$ sqlplus sys/oracle@ora3 as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 24 19:15:35 2016


Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
3.8 备库在mount状态下修改参数
SYS@ora2>show parameter log_archive_config


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      DG_CONFIG=(ora1,ora2)


SYS@ora2>alter system set
 log_archive_config='dg_config=(ora1,ora2,ora3)';


System altered.


SYS@ora2>show parameter log_archive_config


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
      dg_config=(ora1,ora2,ora3)
3.9 RMAN备库到级联库
[oracle@ora2 ~]$ rman target sys/oracle@ora2 auxiliary sys/oracle@ora3


Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 24 19:16:31 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.


connected to target database: ora (DBID=762083517, not open)
connected to auxiliary database: ora (not mounted)


RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;


Starting Duplicate Db at 24-AUG-16
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=10 device type=DISK


contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwora2' auxiliary format 
 '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwora3'   ;
}
executing Memory Script


Starting backup at 24-AUG-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=141 device type=DISK
Finished backup at 24-AUG-16


contents of Memory Script:
{
   backup as copy current controlfile for standby auxiliary format  '/u01/app/oracle/oradata/ora/control01.ctl';
   restore clone controlfile to  '/u01/app/oracle/fast_recovery_area/ora/control02.ctl' from 
 '/u01/app/oracle/oradata/ora/control01.ctl';
}
executing Memory Script


Starting backup at 24-AUG-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_ora2.f tag=TAG20160824T191657 RECID=7 STAMP=920747818
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 24-AUG-16


Starting restore at 24-AUG-16
using channel ORA_AUX_DISK_1


channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 24-AUG-16


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 
 "/u01/app/oracle/oradata/ora/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/ora/system01.dbf";
   set newname for datafile  2 to 
 "/u01/app/oracle/oradata/ora/sysaux01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/ora/undotbs01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/ora/users01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/ora/example01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/ora/ts_users01.dbf";
   backup as copy reuse
   datafile  1 auxiliary format 
 "/u01/app/oracle/oradata/ora/system01.dbf"   datafile 
 2 auxiliary format 
 "/u01/app/oracle/oradata/ora/sysaux01.dbf"   datafile 
 3 auxiliary format 
 "/u01/app/oracle/oradata/ora/undotbs01.dbf"   datafile 
 4 auxiliary format 
 "/u01/app/oracle/oradata/ora/users01.dbf"   datafile 
 5 auxiliary format 
 "/u01/app/oracle/oradata/ora/example01.dbf"   datafile 
 6 auxiliary format 
 "/u01/app/oracle/oradata/ora/ts_users01.dbf"   ;
}
executing Memory Script


executing command: SET NEWNAME


renamed tempfile 1 to /u01/app/oracle/oradata/ora/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


Starting backup at 24-AUG-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/ora/system01.dbf
output file name=/u01/app/oracle/oradata/ora/system01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/ora/sysaux01.dbf
output file name=/u01/app/oracle/oradata/ora/sysaux01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/ora/example01.dbf
output file name=/u01/app/oracle/oradata/ora/example01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/ora/undotbs01.dbf
output file name=/u01/app/oracle/oradata/ora/undotbs01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/oradata/ora/ts_users01.dbf
output file name=/u01/app/oracle/oradata/ora/ts_users01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/ora/users01.dbf
output file name=/u01/app/oracle/oradata/ora/users01.dbf tag=TAG20160824T191708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 24-AUG-16


contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script


datafile 1 switched to datafile copy
input datafile copy RECID=7 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=8 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=9 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=10 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=11 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/example01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=12 STAMP=920747871 file name=/u01/app/oracle/oradata/ora/ts_users01.dbf


contents of Memory Script:
{
   set until scn  982673;
   recover
   standby
   clone database
   noredo
    delete archivelog
   ;
}
executing Memory Script


executing command: SET until clause


Starting recover at 24-AUG-16
using channel ORA_AUX_DISK_1


Finished recover at 24-AUG-16
Finished Duplicate Db at 24-AUG-16
3.10 RMAN成功之后修改备库log_archive_dest_3参数
SYS@ora2>alter system set log_archive_dest_3='service=ora3 lgwr async
 valid_for=(all_logfiles,all_roles) db_unique_name=ora3';


System altered.
3.11 查看级联库状态
SYS@ora3>select open_mode from v$database;


OPEN_MODE
--------------------
MOUNTED


SYS@ora3>select database_role,open_mode from v$database;


DATABASE_ROLE    OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY MOUNTED
四、测试主库、备库、级联库
4.1查看主库、备库、级联库状态
1)主库
SYS@ora>select protection_mode,database_role,protection_level,open_mode from
 v$database;


PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL
     OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  PRIMARY          MAXIMUM PERFORMANCE  READ
 WRITE


2)备库
SYS@ora2>select protection_mode,database_role,protection_level,open_mode
 from v$database;


PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL
     OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  PHYSICAL STANDBY MAXIMUM PERFORMANCE
  MOUNTED


3)级联库
SYS@ora3>select protection_mode,database_role,protection_level,open_mode
 from v$database;


PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL
     OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  PHYSICAL STANDBY MAXIMUM PERFORMANCE
  MOUNTED
4.2 备库、级联库应用日志
SYS@ora2>alter database recover managed standby database using current logfile
 disconnect from session;


Database altered.


SYS@ora3>alter database open;


Database altered.


SYS@ora3>alter database recover managed standby database using current logfile
 disconnect from session;


Database altered.
4.3 主库创建测试表空间测试
SYS@ora>create tablespace ts_test datafile '/u01/app/oracle/oradata/ora/ts_test01.dbf' size 20M;


Tablespace created.
4.5 查看三库的alert日志
1)主库
Wed Aug 24 18:55:41 2016
create tablespace ts_test datafile '/u01/app/oracle/oradata/ora/ts_test01.dbf' size
 20M
Completed: create tablespace ts_test datafile
 '/u01/app/oracle/oradata/ora/ts_test01.dbf' size 20M
2)备库:
Wed Aug 24 19:35:45 2016
WARNING: File being created with same name as in Primary
Existing file may be overwritten
Recovery created file /u01/app/oracle/oradata/ora/ts_test01.dbf
Successfully added datafile 7 to media recovery
Datafile #7: '/u01/app/oracle/oradata/ora/ts_test01.dbf'
4.6 主库切换日志:
SYS@ora>alter system switch logfile;


System altered.
主库
Wed Aug 24 18:55:41 2016
create tablespace ts_test datafile '/u01/app/oracle/oradata/ora/ts_test01.dbf' size
 20M
Completed: create tablespace ts_test datafile
 '/u01/app/oracle/oradata/ora/ts_test01.dbf' size 20M
Wed Aug 24 18:58:47 2016
Thread 1 cannot allocate new log, sequence 15
Private strand flush not complete
  Current log# 2 seq# 14 mem# 0: /u01/app/oracle/oradata/ora/redo02.log
LGWR: Standby redo logfile selected for thread 1 sequence 15 for destination
 LOG_ARCHIVE_DEST_2
Thread 1 advanced to log sequence 15 (LGWR switch)
  Current log# 3 seq# 15 mem# 0: /u01/app/oracle/oradata/ora/redo03.log
Wed Aug 24 18:58:48 2016
Archived Log entry 18 added for thread 1 sequence 14 ID 0x2d6d16bd dest 1:
2)备库:
Wed Aug 24 19:38:51 2016
RFS[2]: Selected log 4 for thread 1 sequence 14 dbid 762083517 branch 920730879
Wed Aug 24 19:38:51 2016
Archived Log entry 5 added for thread 1 sequence 14 ID 0x2d6d16bd dest 1:
Wed Aug 24 19:38:52 2016
Media Recovery Log /u01/app/oracle/fast_recovery_area/ora/1_14_920730879.arc
WARNING: File being created with same name as in Primary
Existing file may be overwritten
Recovery created file /u01/app/oracle/oradata/ora/ts_test01.dbf
Successfully added datafile 7 to media recovery
Datafile #7: '/u01/app/oracle/oradata/ora/ts_test01.dbf'
Recovery deleting file #7:'/u01/app/oracle/oradata/ora/ts_test01.dbf' from
 controlfile.
Deleted file /u01/app/oracle/oradata/ora/ts_test01.dbf
Recovery dropped tablespace 'TS_TEST'
WARNING: File being created with same name as in Primary
Existing file may be overwritten
Recovery created file /u01/app/oracle/oradata/ora/ts_test01.dbf
Successfully added datafile 7 to media recovery
Datafile #7: '/u01/app/oracle/oradata/ora/ts_test01.dbf'
Media Recovery Waiting for thread 1 sequence 15
3)级联库:
Wed Aug 24 19:38:51 2016
RFS[2]: Selected log 4 for thread 1 sequence 14 dbid 762083517 branch 920730879
Wed Aug 24 19:38:51 2016
Archived Log entry 5 added for thread 1 sequence 14 ID 0x2d6d16bd dest 1:
Wed Aug 24 19:38:52 2016
Media Recovery Log /u01/app/oracle/fast_recovery_area/ora/1_14_920730879.arc
WARNING: File being created with same name as in Primary
Existing file may be overwritten
Recovery created file /u01/app/oracle/oradata/ora/ts_test01.dbf
Successfully added datafile 7 to media recovery
Datafile #7: '/u01/app/oracle/oradata/ora/ts_test01.dbf'
Recovery deleting file #7:'/u01/app/oracle/oradata/ora/ts_test01.dbf' from
 controlfile.
Deleted file /u01/app/oracle/oradata/ora/ts_test01.dbf
Recovery dropped tablespace 'TS_TEST'
WARNING: File being created with same name as in Primary
Existing file may be overwritten
Recovery created file /u01/app/oracle/oradata/ora/ts_test01.dbf
Successfully added datafile 7 to media recovery
Datafile #7: '/u01/app/oracle/oradata/ora/ts_test01.dbf'
Media Recovery Waiting for thread 1 sequence 15

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31362743/viewspace-2124232/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Oracle锁机制
请登录后发表评论 登录
全部评论

注册时间:2016-06-16

  • 博文量
    17
  • 访问量
    20439