签到成功

知道了

CNDBA社区CNDBA社区

Orcle 12c DG 新特性---Far Sync

2017-08-17 17:54 3329 0 原创 Oracle 12c DG
作者: Expect-乐

说明

An Oracle Data Guard far sync instance is a remote Oracle Data Guard destination that accepts redo from the primary database and then ships that redo to other members of the Oracle Data Guard configuration. A far sync instance manages a control file, receives redo into standby redo logs (SRLs), and archives those SRLs to local archived redo logs, but that is where the similarity with standbys ends. A far sync instance does not have user data files, cannot be opened for access, cannot run redo apply, and can never function in the primary role or be converted to any type of standby database.

Active Data Guard Far SyncOracle 12c的新特性(也称为Far Sync Standby),Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 同步(synchronous)传输redoFar Sync实例,然后Far Sync实例再将redo异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync实例只有密码文件,init参数文件和控制文件,而没有数据文件。所以无法打开用于访问。

Far Sync配置对于Data Guard 角色转换(role transitions)是透明的,即switchover/failover命令方式与12c之前相同。

实验-Far Sync安装配置

创建Far Sync实例类似于创建物理备库,但数据文件在Far Sync实例中不存在。因此不需要拷贝数据文件并还原数据文件。一旦Far Sync实例创建了,那么就默认运行在Maximum Availability模式,那么REDO是实时同步传输的。

2.1   主库配置和操作

2.1.1  创建Far Sync实例的控制文件

SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/control01.ctl';
Database altered.

将上面生成的Far Sync的控制文件拷贝到Far Sync所在的主机上。

SQL> !scp /tmp/control01.ctl 192.168.1.173://u01/app/oracle/oradata/cndba_far/

[Expect-le@ www.cndba.cn]$ pwd
/u01/app/oracle/oradata/cndba_far

http://www.cndba.cn/Expect-le/article/2137

2.1.2  修改配置,指向Far Sync实例

SQL> alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)' scope=both;
System altered.


SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=cndba_far_sync ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cndba_far_sync' scope=both;
System altered.

2.2   备库修改配置

SQL> alter system set LOG_ARCHIVE_CONFIG ='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)' scope=both;
System altered.

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=cndba_p ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cndba_p' scope=both;
System altered.

2.3   Far Sync实例配置

2.3.1  修改PFILE

cndba_s是物理备库,cndba_far_syncFar Sync实例的DB_UNIQUE_NAME。如果日志文件路径需要修改,也要修改DB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT

DB_UNIQUE_NAME=cndba_far_sync
CONTROL_FILES='/u01/app/oracle/oradata/cndba_far/control01.ctl'
FAL_SERVER=cndba_p
LOG_ARCHIVE_CONFIG='DG_CONFIG=(cndba_p,cndba_far_sync,cndba_s)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=cndba_far_sync'
LOG_ARCHIVE_DEST_2='SERVICE=cndba_s ASYNC
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=cndba_s’

http://www.cndba.cn/Expect-le/article/2137

2.3.2  Far Sync实例启动到mount

http://www.cndba.cn/Expect-le/article/2137

SQL> create spfile from pfile='/u01/app/oracle/product/12.1.0.2/db_1/dbs/initcndba_far.ora';
File created.

SQL> startup mount;
ORACLE instance started.
Total System Global Area 2348810240 bytes
Fixed Size	    2927048 bytes
Variable Size	 1409287736 bytes
Database Buffers	  922746880 bytes
Redo Buffers	   13848576 bytes
Database mounted.

2.3.3  查看Far Sync实例状态

SQL> select protection_mode,database_role,protection_level,open_mode from v$database;
PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL	   OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  FAR SYNC	      MAXIMUM PERFORMANCE  MOUNTED

http://www.cndba.cn/Expect-le/article/2137
http://www.cndba.cn/Expect-le/article/2137

2.3.4  创建standby redo log(可选,最好创建)

语法:

http://www.cndba.cn/Expect-le/article/2137

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4('/u01/app/oracle/oradata/cndba_far/standbyredo11.log') SIZE 52428800;

2.4   主备库和Far Sync添加TNSNAME

CNDBA_FAR_SYNC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.173)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = cndba)
    )
  )

2.5   检查配置

SQL> select * from V$DATAGUARD_CONFIG;
DB_UNIQUE_NAME	       PARENT_DBUN	      DEST_ROLE CURRENT_SCN	CON_ID
------------------------------ ------------------------------ ----------------- ----------- ----------
cndba_p        NONE	      PRIMARY DATABASE	    2154617	     0
cndba_far_sync	       cndba_p	      FAR SYNC INSTANCE     2151372	     0
cndba_s        cndba_far_sync	      PHYSICAL STANDBY	    2151372	     0

从上面可以看出,配置没有问题。

http://www.cndba.cn/Expect-le/article/2137

Cndba_p -> cndba_far_sync -> cndba_s

2.6   测试日志是否正常传输

--查看当前日志序列号

主库:

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

Far Sync实例:

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

备库:

SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
    56

--手动切换日志

http://www.cndba.cn/Expect-le/article/2137

SQL> alter system switch logfile;
System altered.

--再次查看备库和Far Sync实例的日志序列号

SQL> select max(sequence#) from v$archived_log;                                          
MAX(SEQUENCE#)
--------------
    57

至此搭建Far Sync结束了。

总结

1.  由于Far Sync存在单点故障,所以建议搭建两个及以上的Far Sync实例。默认只启用其中一个,只有当一个挂掉了,才会自动启用另一个。http://www.cndba.cn/Expect-le/article/2137

2.  主库建议配置一个备用的LOG_ARCHIVE_DEST_3,直接指向备库。在LOG_ARCHIVE_DEST_2不可用时,会启用LOG_ARCHIVE_DEST_3直接传输redo到备库。http://www.cndba.cn/Expect-le/article/2137

3.  Far Sync可大大减少主库的压力,特别是在一主多备的情况下。

4.  switchover/failover对于Far Sync是透明的,不需要特殊配置,按正常切换即可。

更多详细信息,请参考:http://docs.oracle.com/database/121/SBYDB/create_fs.htm#SBYDB5437

版权声明:本文为博主原创文章,未经博主允许不得转载。

Far Sync

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1367375次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ