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

Oracle GoldenGate常用配置端口的更多相关文章

  1. Oracle GoldenGate常用参数详解

    Oracle GoldenGate常用参数详解http://blog.itpub.net/28389881/viewspace-2564461/

  2. [转]Oracle GoldenGate安装配置

    ref:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html 1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软 ...

  3. Oracle GoldenGate常用参数

    OGG(Oracle GoldenGate)参数介绍 所有的GoldenGate进程均有参数文件 Manager Extract Replicat Utilities 所有参数均有缺省配置 实际应用只 ...

  4. Oracle GoldenGate理论

    1Oracle GoldenGate处理方法和支持的数据库Oracle GoldenGate在多样和异构的基础IT平台中,可以在事务级别上进行数据交换和数据操作.在保证交易完整性和最小的开销的条件下, ...

  5. ORACLE GoldenGate在Windows与AIX平台ORACLE的单向、双向数据传输配置及其测试

    第1章...... GoldenGate概述 1.1         GoldenGate技术原理 1.2         GoldenGate可靠的复制 1.3         GoldenGate ...

  6. Oracle GoldenGate 二、配置和使用

    Oracle GoldenGate 二.配置和使用 配置和使用GoldenGate的步骤 1 在源端和目标端配置数据库支持GoldenGate 2 在源端和目标端创建和配置GoldenGate实例 3 ...

  7. 『OGG 03』Win7 配置 Oracle GoldenGate 一次性成功(包括Adapter Java)

    安装Oracle: 安装 Oracle_11g 32位[Oracle 32位的话,OGG 也必须是 32位,否则会有0xc000007b无法正常启动 错误] 安装目录为 D:\oracle\produ ...

  8. 『OGG 02』Win7 配置 Oracle GoldenGate Adapter Java 踩坑指南

    上一文章 <__Win7 配置OGG(Oracle GoldenGate).docx>定下了 两个目标: 目标1: 给安装的Oracle_11g 创建 两个用户 admin 和 root ...

  9. 配置Oracle GoldenGate安全性

    本章介绍如何配置Oracle GoldenGate安全性. 本章包括以下部分: Overview of Oracle GoldenGate Security Options Encrypting Da ...

随机推荐

  1. ruby pluck用法,可以快速从数据库获取 对象的 指定字段的集合数组

    可以快速从数据库获取 对象的 指定字段的集合数组 比如有一个users表,要等到user的id数组: select id from users where age > 20; 要实现在如上sql ...

  2. 第k个素数

    题目描述 Output the k-th prime number. 输入描述: k≤10000 输出描述: The k-th prime number. #include <iostream& ...

  3. 【BZOJ4827】【HNOI2017】礼物

    强省HN弱省HA……(读作强省湖南弱省蛤 原题: 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她.每个手环上各有 n 个装饰物,并且每个 ...

  4. MFC中添加了一个dialog,并创建了相应的类,初始化函数没有怎么办?

    1.在头文件中添加  virtual BOOL OnInitDialog();2.在对于的CPP文件中添加  BOOL CXXDlg::OnInitDialog()  {      return TR ...

  5. Linux - 系统资源

    查看剩余内存 free -m #-/+ buffers/cache: #6458M为真实使用内存 1649M为真实剩余内存(剩余内存+缓存+缓冲器) #linux会利用所有的剩余内存作为缓存,所以要保 ...

  6. 定时器QTimer

    import sys from PyQt5.QtCore import QTimer, Qt from PyQt5.QtWidgets import QApplication, QWidget, QP ...

  7. string字符串js操作

    String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt() ...

  8. 第16月第9天 opengl glCltDispatchTable

    1.glCltDispatchTable typedef struct _GLTEBINFO { // glCltDispatchTable must be the first field for t ...

  9. D - 文理分科 (网络流->最小割)

    题目链接:https://cn.vjudge.net/contest/281959#problem/D 题目大意:中文题目 具体思路:我们需要求出最大的满意值,从另一方面想,我们可以求出总的满意值,然 ...

  10. try 、catch 、finally 、throw 测试js错误

    try语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. finally 语句在 try 和 catch 之后无论有无异常都会执 ...