代码改变世界

【转载】Oracle GoldenGate安装配置教程

2016-02-23 11:57  AlfredZhao  阅读(1899)  评论(0编辑  收藏  举报

原文地址:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html

1 简介

Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle Golden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,Oracle Golden Gate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构

2 GoldenGate安装

## 2.1 GoldenGate的获取 ## Oracle GoldenGate(下文简称ogg)软件可以通过ORACLE官方网站进行下载,根据ORACLE的版本及操作系统来下载对应版本的ogg,官方下载地址: http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html ## 2.2 GoldenGate的安装 ## ogg安装非常简单,但需在源数据库和目标数据库服务器上均安装ogg软件即可,具体请参考以下步骤: 1、 将压缩包解压到系统目录/oracle/ogg (该路径可以根据需要自行选择) 2、 进入/oracle/ogg目录,运行./ggsci,进入ogg管理控制台 3、 在ogg控制台输入命令: create subdirs ,让ogg创建其需要用到的目录 4、 手工在ogg目录下创建discard文件夹,mkdir discard 5、 配置操作系统环境变量(请确保环境变量配置了ORACLE_HOME和ORACLE_SID) ``` export LD_LIBRARY_PATH=/oradata/ogg:$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` 6、 在ORACLE中创建ogg专属用户 ``` [oracle@local ~]$ sqlplus /nolog SQL> conn / as sysdba SQL> create user ogg identified by ogg; (注:账号密码根据实际情况设置) SQL> grant connect,resource to ogg; SQL> grant unlimited tablespace to ogg; SQL> grant execute on utl_file to ogg; ``` 7、 为新创建的ogg用户执行配置脚本 在ogg的安装目录下登陆sqlplus,使用sys登陆sqlplus,然后执行如下配置 ``` [oracle@local ~]$ sqlplus /nolog SQL> conn / as sysdba SQL> @marker_setup.sql SQL> @ddl_setup.sql; SQL> @role_setup.sql; SQL> grant GGS_GGSUSER_ROLE to ogg; SQL> @ddl_enable.sql; ``` 进入ogg控制台,测试用户是否创建成功 ``` GGSCI (local) 1> dblogin userid ogg Password: ogg Successfully logged into database. ``` 通过上述步骤,ogg就安装成功了。

3 单项复制的配置

为了能让ogg成功的将源数据库及目标数据库进行同步,下面还需要对ogg及oracle进行一系列配置(ogg支持多种复制方式,比如单项复制、双向复制等等,因实际需要,本文仅介绍单项复制相关配置)。 首先说说ogg的一些概念: 1、 Manager:ogg所有服务必须依赖Manager,Manger如同ogg的总调度。 2、 Extract :ogg用来获取源数据库数据更新的,将变更的数据发送到目标数据库 3、 Replicat :ogg用来接收源数据库的更新,一旦源数据库Extract将数据发送过来后,Replicat会自动将更新脚本同步到目标数据库。 ## 3.1 源服务器配置 ## 1、开启ORACLE归档模式,设置日志模式 ``` [oracle@local ~]$ sqlplus /nolog SQL> conn / as sysdba SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database force logging; SQL> alter database add supplemental log data; SQL> alter database open; ``` 2、 回收站功能会影响同步,需要关闭回收站 ``` SQL>alter session set recyclebin=off; SQL>alter system set recyclebin=off; ``` 3、配置环境变量NLS_LANG(不配置中文同步会乱码) 首先在oracle中查询select userenv( 'language') from dual; 然后将查询的结果配置到linux环境变量中 如export NLS_LANG=” SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 4、登陆ogg控制台,设置需要进行同步的oracle表 ``` GGSCI (local) 1> dblogin userid ogg GGSCI (local) 1> add trandata dbuser.* ``` 5、配置ogg manager&启动manager(配置界面操作类似vi) ``` GGSCI (local) 1> edit param mgr PORT 7809 GGSCI (local) 1> info all(查看当前mgr状态) GGSCI (local) 1> start manager(启动manager,启动完后可以用info all再次查看状态) ``` 6、 添加一个ogg extract进程,用于抽取源服务器数据 ``` GGSCI (local) 1> add extract ext4,tranlog,begin now (增加一个抽取进程ext4,ext4名字可以根据需要修改) GGSCI (local) 1> add exttrail /oracle/ogg/dirdat/wf,extract ext4 (将ext4抽取的源数据变更数据写到该文件夹) GGSCI (local) 1> edit params ext4 (修改ext4的配置参数) extract ext4 userid ogg,password ogg rmthost xxxx.xxx.xxx.xxx,mgrport 7809 --目标服务器ip rmttrail /oracle/ogg/dirdat/wf --目标服务器文件夹 ddl include mapped objname dbuser.*; table dbuser.*; ``` 配置完成后可以通过info all查看到新添加的extract的状态 7、启动ogg extract命令 ``` GGSCI (local) 1> start extract ext4 (等目标服务器ogg配置成功后再启动ext) ``` ## 3.2 目标服务器配置 ## 1、登陆ogg控制台 ``` GGSCI (local) 1> dblogin userid ogg ``` 2、配置ogg manager&启动manager(配置界面操作类似vi) ``` GGSCI (local) 1> edit param mgr PORT 7809 DYNAMICPORTLIST 7840-7850 --远程队列端口范围 GGSCI (local) 1> info all(查看当前mgr状态) ``` 3、 添加一个ogg replicat进程,用于更新目标服务器数据 ``` GGSCI (local) 1> edit params ./GLOBAL GSSCHEMA ogg CHECKPOINTTABLE ogg.checkpoint GGSCI (local) 2> dblogin userid ogg Password: ogg Successfully logged into database. GGSCI (local) 3> add checkpointtable ogg.checkpoint Successfully created checkpoint table ogg.CHECKPOINT. GGSCI (local) 4> ADD replicat rep2 EXTTRAIL /hom/wangfan/ggs/dirdat/wf, checkpointtable ogg.checkpoint GGSCI (local) 5> edit param rep2 --Replicat group -- replicat rep2 --source and target definitions ASSUMETARGETDEFS --target database login -- userid ogg, password ogg --file for dicarded transaction -- discardfile /oracle/ogg/discard/rep2_discard.txt, append, megabytes 10 --ddl support DDL DDL INCLUDE MAPPED DDLERROR DEFAULT IGNORE RETRYOP --Specify table mapping --- map dbuser.*, target dbuser.*; ``` 配置完成后可以通过info all查看到新添加的extract的状态 4、启动ogg manager & replicat命令 ``` GGSCI (local) 1> start manager GGSCI (local) 1> start replicat rep2 ``` 最后参考源服务器配置,启动ext4

4 维护相关

## 4.1 OGG常用命令 ## ``` 1、 启动manager:start manager 2、 启动extract:start extract extn 3、 启动replicat:start replicat repn 4、 停止manager:stop manager 5、 停止 extract:stop extract extn 6、 停止replicat:stop replicat repn 7、 删除extract:delete extract extn 8、 删除replicat:delete extract repn 9、 查看ogg状态:info all 10、 修改manager参数:edit params mgr 11、 修改extract参数:edit params extn 12、 修改replicat参数:edit params repn 13、 修改全局参数:edit params ./GLOBAL ``` ## 4.2 OGG日志路径 ## ``` $OGG_HOME/ggserr.log ``` ## 4.3 OGG开机自启 ## 操作系统设置: ``` 1、用oracle用户建立/oracle/ogg/autostart/info.txt,文件内容如下: sh dat start mgr 2、chmod x info.txt 3、用oracle用户建立/oracle/ogg/autostart/startmgr.sh,文件内如下: /oracle/ogg/ggsci paramfile /oracle/ogg/autostart/info.txt >> /oracle/ogg/autostart/log.txt 4、chmod x startmgr.sh 5、用root用户编辑 /etc/rc.local ,添加如下信息: su - oracle -c "/oracle/ogg/autostart/startmgr.sh" ``` OGG设置: ``` 在ogg中主进程是manager进程,使用startmgr启动。可以在mgr进程中添加一些参数用来在启动mgr进程的同时启动extract和replicat进程。 1、以下是extract端的mgr参数配置 GGSCI (gg01) 130> edit params mgr PORT 7809 DYNAMICPORTLIST 7800-7909 --启动mgr进程启动启动extract进程 AUTOSTART EXTRACT * --extract异常终止时会自动启动,每5分钟尝试重新启动所有的extract进程,一共尝试3次,5分钟清零 AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 10

2、配置目标端replicat进程自启动,在mgr参数中添加如下
GGSCI (gg02) 140> edit params mgr
PORT 7809
--动态端口,当指定端口不可用时,会从以下列表中选择一个可用端口
DYNAMICPORTLIST 7800-7909
--自动启动replicat进程
AUTOSTART REPLICAT *
--当replicat进程异常终止时会自动启动,每5分钟尝试重新启动所有的replicat进程,一共尝试5次
AUTORESTART REPLICAT , WAITMINUTES 2, RETRIES 5
--mgr每隔1小时检查extract延时情况,超5分钟作为信息记录log中,超过7分钟作为警告记录log中
LAGREPORTHOURS 1
LAGINFOMINUTES 5
LAGCRITICALMINUTES 7
--删除10天前的trail文件
PURGEOLDEXTRACTS /oracle/ogg/dirdat/
, USECHECKPOINTS, MINKEEPDAYS 10