首页 >数据库 >mysql教程 >如何在11gR2 RAC上配置GoldenGate

如何在11gR2 RAC上配置GoldenGate

WBOY
WBOY原创
2016-06-07 17:16:451094浏览

Oracle 11gR2 RAC和GoldenGate都是Oracle比较热门的产品,经过简单的学习和阅读文档,配置单节点的GoldenGate进行数据的复制相信

Oracle 11gR2 RAC和GoldenGate都是Oracle比较热门的产品,经过简单的学习和阅读文档,配置单节点的GoldenGate进行数据的复制相信不是什么太有难度的事情,但是对于利用GoldenGate进行RAC系统到RAC系统的复制,还是有些配置的技巧和策略设置的,前阵子就遇到一个这样一个问题:假设源和目标分别是两节点的RAC系统,如何保证目标部分节点失效的时候replicate会自动切换? 其实如果了解GG的工作机制和RAC的资源管理,问题的解决就十分清晰了。

今天就从系统的介绍下11gR2 RAC上OGG (Oracle GoldenGate的简称,下同)的完整配置步骤,,并简单谈谈如何解决上面这个场景的问题。

第一阶段:下载OGG(可以参考之前的单节点的复制例子,不再赘述)
OGG的下载地址

第二阶段:OGG的安装

1)登录源端的RAC系统中的任一个节点,并在ACFS上建立一个供OGG使用的共享目录,比如叫/cloudfs/goldengate

2)解压OGG的安装包到/cloudfs/goldengate目录

3) 设置好OGG工作的环境变量,比如

export LIBRARY_PATH=/cloudfs/goldengate:$ORACLE_HOME/lib:$LD_LIBRARY_PATH

4)启动ggsci并创建目录,然后进行必要的设置,启动manager

$ ggsci
 
GGSCI > create subdirs
 
(optional, support for DDL/Sequence)
Create and edit the parameter file for GLOBALS:
 
GGSCI > EDIT PARAMS ./GLOBALS
Add this line to GLOBALS parameter file:
 
GGSCHEMA ggs
 
NOTE: 'ggs' is the example OGG user and will be used in the rest of this document.
 
GGSCI > EDIT PARAMS mgr
 
Add the following lines to Manager parameter file:
 
PORT 7809
AUTOSTART ER *
AUTORESTART ER *
 
GGSCI > START mgr

5)在目标端重复上面的步骤1-4,注意目录名的使用,我们在目标端使用/mycloudfs/goldengate以示区分。

第三阶段:源和目标RAC数据库准备步骤


1) Create OGG user 'ggs' on both the source and target database, connect to database using SQL*Plus as SYSDBA:
 
SQL> CREATE USER ggs IDENTIFIED BY ggs;
SQL> GRANT CONNECT,RESOURCE,DBA TO ggs;
 
2)(optional, add Oracle sequence replication support) On both source and target database, go to OGG directory and run this SQL, enter OGG user 'ggs' as prompted:
SQL> @sequence.sql
 
3) Enable supplemental logging on source ODA database:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER SYSTEM SWITCH LOGFILE;
 
(Optional) Add Oracle DDL replication support
4) On the source system, go to OGG directory, connect to database using SQL*Plus as SYSDBA.
 
SQL> GRANT EXECUTE ON utl_file TO ggs;
 
5 On the source system, run the following script, provide OGG user 'ggs' as prompted.
 
SQL> @marker_setup.sql
SQL> @ddl_setup.sql
 
NOTE: enter 'INITIALSETUP' when prompted for the mode of installation.
 
SQL> @role_setup.sql
SQL> @ddl_enable.sql
SQL> @ddl_pin ggs
 
NOTE: 'ggs' here is the OGG user.

第四阶段:配置源端的extract group


1)发出以下命令登录数据库。
GGSCI> DBLOGIN USERID ggs, PASSWORD ggs
 
2) 创建主提取组 'myext':
 
GGSCI > ADD EXTRACT myext、TRANLOG、BEGIN NOW、THREADS 2
注意:THREADS 值是 RAC 实例的数量。
 
3)创建本地路径。主 Extract 写入该路径,数据泵 Extract 读取它。
 
GGSCI > ADD EXTTRAIL /cloudfs/goldengate/dirdat/et, EXTRACT myext
注意:“et”是提取“myext”的示例跟踪标识符。
 
4)创建并编辑Extract 'myext'的参数文件:
 
GGSCI >编辑 PARAMS myext
将以下行添加到此参数文件:
 
EXTRACT myext
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggs@ggdb,密码 ggs
TRANLOGOPTIONS DBLOGREADER
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 20000
EXTTRAIL /cloudfs/goldengate/dirdat/et
动态分辨率
DDL 包括所有
表 hr.*;
 
注 1:确保 SQL*Net 连接字符串“ggdb”有效。
注 2:“hr”是将同步到目标系统的示例架构。

第五阶段:在源端配置数据泵提取组


1)创建数据泵组“mypump”:
GGSCI > ADD EXTRACT mypump, EXTTRAILSOURCE /cloudfs/goldengate/dirdat/et, BEGIN now
 
2)指定将在目标系统上创建的远程跟踪。
 
GGSCI > ADD RMTTRAIL /mycloudfs/goldengate/dirdat/rt, EXTRACT mypump
注意:“rt”是提取“mypump”的示例跟踪标识符,并在此处使用目标 OGG 目录“/mycloudfs/goldengate”。
 
3)创建并编辑Extract 'mypump'的参数文件:
GGSCI >编辑参数 mypump
 
将以下行添加到此参数文件:
 
EXTRACT mypump
RMTHOST rac12box-scan, MGRPORT 7809
RMTTRAIL /mycloudfs/goldengate/dirdat/rt
PASSTHRU
表 hr.*;
 
注意:RMTHOST 是目标主机。如果您还希望在目标系统上设置 HA,请将目标系统的 VIP 指定为 RMTHOST,
否则只需使用目标系统的 IP 地址/主机名。
 
4)开始提取'myext'和'mypump':
 
GGSCI >开始我的ext
GGSCI>启动mypump
 
5)检查OGG进程的状态:
GGSCI >全部信息

第六阶段:在目标端配置复制组


1) 创建一个 Replicat 组 'rept',从 Extract 'mypump' 读取路径:
 
GGSCI > ADD REPLICAT rept, EXTTRAIL /mycloudfs/goldengate/dirdat/rt, nodbcheckpoint
 
2)创建并编辑 Replicat 'rept' 的参数文件:
 
GGSCI >编辑参数rept
将以下行添加到此参数文件,假设与源ODA环境中相同的ORACLE_HOME和目标数据库'ggdb':
 
REPLICATrept
SETENV (ORACLE_HOME = "/u01/app /oracle/product/11.2.0/dbhome_1")
用户 ID ggs@ggdb,密码 ggs
ASSUMETARGETDEFS
HANDLECOLLISIONS
重复错误(默认,丢弃)
DDLERROR 默认丢弃
DDLOPTIONS 报告
DISCARDFILE /mycloudfs/goldengate/repsz.dsc,append,兆字节 100
地图 hr.*,目标 hr.*;
 
注意:确保 SQL*Net 连接字符串“ggdb”有效。
 
3)开始复制 'rept':
 
GGSCI >开始rept
 
4)检查OGG进程的状态:
GGSCI >全部信息

第七阶段:验证Goldengate功能

1) 以hr用户登录源数据库,进行一些简单的DDL和DML操作。

2)检查源系统上的Extract是否已捕获数据更改:

  

GGSCI>统计 myext

GGSCI>统计 mypump

  

3)以oracle用户登录目标系统,检查Replicat 'rept'的状态:

  

GGSCI>统计报告

  

4)比较输出并确保数据变化同步。

5)(可选,用于进一步的 HA 设置)在源系统上停止 OGG:

  

GGSCI>停止我的分机

GGSCI>停止我的泵

GGSCI>停止经理

  

6)(可选,用于进一步的 HA 设置)在目标系统上停止 OGG:

  

GGSCI>停止报告

GGSCI>停止经理

 

关于HA的设置,请继续关注下篇。

如何在11gR2 RAC上配置GoldenGate

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn