Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2765832
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2014-11-27 17:14:43

                           Oracle DataGuard Far Sync Instance配置

    Far Sync Instance(以下简单FSI)是Oracle 12C DataGuard(以下简称DG)的一个新特性,FSI的作用是一个日志中转站.
在以前的版本中主库的日志直接转发到备库上,通过引入FSI后,主库转发日志到FSI上,再由FSI转发到备库上。通过该功
能可以实现减轻主库的压力,比如主库和FSI之间可以配置成sync affrim模式,再由FSI和备库配成async模式.而主库可以
和FSI位置很近,减少到远端的备库的延迟等等各种好处.FSI需要Active Dataguard的单独许可.

  在原来已经配置好的一个主备环境中,在加入一个FSI,使用FSI来转发日志.FSI只有控制文件和Standby Redolog,没有自
己的数据文件

1,  在主库上创建一个控制文件用来做为FSI的控制文件

SQL> alter database create far sync instance controlfile as '/home/oracle/controlfar.ctl';

Database altered.

SQL> create pfile='/home/oracle/far.ora' from spfile;

File created.

2,在FSI的机器上,定义一个far实例,该实例充当FSI

[oracle@fsi ~]$ export ORACLE_SID=far

[oracle@fsi ~]$ cd $ORACLE_HOME/dbs
[oracle@fsi dbs]$ cp orapwsys orapwfar --拷贝原主库的密码文件到FSI的机器上 

3,在fsi的机器上,对far实例进行静态注册

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = far)
      (ORACLE_HOME = /u01/app/oracle/product/12.1/db_1)
      (SID_NAME = far)
    )
  )

4,在主库上增加一个到far的TNS条目

far =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.245.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = far)
    )
  )

5,修改far的参数,启动mount实例,然后增加STANDBY LOGFILE
*.compatible='12.1.0.0.0'
enable_pluggable_database=true
*.control_files='/u01/app/oracle/far/controlfar.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=sysXDB)'
*.log_archive_dest_1='location=/u01/app/oracle/archfar valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=far'
*.log_archive_dest_2='service=dgtt valid_for=(standby_logfiles,standby_role) db_unique_name=dgtt'
*.sga_target=460m
*.open_cursors=300
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=555
db_unique_name=far
db_name=sys
fal_server='sys'
log_archive_config='DG_CONFIG=(dgtt,far,sys)'

SQL>  startup pfile='/home/oracle/far.ora' mount force;
ORACLE instance started.

Total System Global Area  480182272 bytes
Fixed Size                  2289784 bytes
Variable Size             373297032 bytes
Database Buffers           96468992 bytes
Redo Buffers                8126464 bytes
Database mounted.
SQL> create spfile from pfile='/home/oracle/far.ora';

File created.

SQL> startup mount force


SQL> alter database add standby logfile group 4 '/home/oracle/4.log' size 50m;
SQL> alter database add standby logfile group 5 '/home/oracle/5.log' size 50m;
仅测试目的放到/home/oracle目录下


6,修改主库参数设置


SQL> alter system set log_archive_config='DG_CONFIG=(far,sys,dgtt)';

SQL> alter system set log_archive_dest_2='service=far valid_for=(online_logfiles,primary_role) db_unique_name=far';

System altered.

 

7,在备库上修改参数

SQL> alter system set log_archive_config='DG_CONFIG=(far,sys,dgtt)';

System altered.


到此使用FSI来中继日志传输的配置已经完成,在主库上模拟日志切换,可以发现主,FSI,备库中的alert.log中都有反映。当我们
手动关闭FSI后,发现在主库和备库的alert.log报错,在主库上模拟日志切换,发现已经不能传到备库上去了,证明我们的FSI的配
置已经实现了。

 

阅读(4112) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~