文档章节

Oracle GoldenGate 快速安装配置实用指南

让往事随风
 让往事随风
发布于 2016/06/16 15:18
字数 2410
阅读 20
收藏 0
点赞 0
评论 0

GoldenGate作为Oracle公司大力发展的核心战略产品,在高可用、容灾、 数据抽取转换方面扮演着越来越重要的作用。goldengate可以做什么,说起来真的太多了, 高可用、容灾、Real-Time数据同步,如果你做过BI,一定知道ETL的工具(datastage、infomatica等), goldengate也可以做,而且,还有两个很关键的因素: 第一,goldengate支持异构的数据库,几乎囊括了所有的主流数据库,到底哪些呢? 去这里看看吧: http://edu.51cto.com/course/courseList/id-15.html 主流的DB2、mysql、sql server、sysbase都支持。 第二,是oracle大力发展的核心战略产品。 goldengate同步在源端捕获日志,extract日志信息发送到目标端,由目标端的replicat日志应用进程 应用事务,达到数据同步。同时,源端的extract抽取进程也可以选择性配置抽取的trail磁盘文件, 目标端的replicat应用进程也可以选择性配置抽取到的日志的trail文件,防止日志丢失。 本文精确的介绍了在64位linux环境下oracle对oracle的goldengate安装配置(不区分10g、11g), 本文同时配置了batch模式下的数据初始化过程和online模式的实时数据同步过程,按照本文安装配置 能让你快速的构建goldengate环境,不会有任何问题。 1、环境介绍及准备: 两台装有oracle 10g软件的centos(本文安装配置同样适用于oracle 11g). 源端: IP:192.168.1.201 ORACLE_SID=ggsource 目标端: IP:192.168.1.202 ORACLE_SID=ggtarget 1.配置环境变量: source: ORACLE_SID=ggsource ORACLE_BASE=/u01 ORACLE_HOME=$ORACLE_BASE/oracle PATH=$ORACLE_HOME/bin:$ORACLE_BASE/gg:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_BASE/gg11:$LD_LIBRARY_PATH export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH target: ORACLE_SID=ggtarget ORACLE_BASE=/u01 ORACLE_HOME=$ORACLE_BASE/oracle PATH=$ORACLE_HOME/bin:$ORACLE_BASE/gg:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_BASE/gg11:$LD_LIBRARY_PATH export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH 其他的没什么,搜索路劲加入了goldengate的安装目录$ORACLE_BASE/gg和LD_LIBRARY_PATH, (后面在安装goldengate时,我的goldengate产品解压安装在$ORACLE_BASE/gg目录下) LD_LIBRARY_PATH一定要配置,否则在create subdirs会报如下错误: [oracle@mycentos02 ~]$ ggsci ggsci: error while loading shared libraries: libnnz10.so: cannot open shared object file: No such file or directory

2.goldengate下载及安装(需要同时在source机器和target机器安装): 怎么安装?goldengate的安装简单到吓人,解压就是安装。将下载到的64位gg for oracle 10g,解压到/u01/gg目录下, /u01/gg及为我的goldengate安装目录。解压之后,cd到/u01/gg目录下,运行ggsci,在ggsci下面ggsci>create subdirs, 创建goldengate对应的目录,就算安装完成。 GGSCI (mycentos) 1> create subdirs Creating subdirectories under current directory /u01/gg Parameter files /u01/gg/dirprm: already exists Report files /u01/gg/dirrpt: created Checkpoint files /u01/gg/dirchk: created Process status files /u01/gg/dirpcs: created SQL script files /u01/gg/dirsql: created Database definitions files /u01/gg/dirdef: created Extract data files /u01/gg/dirdat: created Temporary files /u01/gg/dirtmp: created Stdout files /u01/gg/dirout: created

GGSCI (mycentos) 2> 我们看到,在gg的安装目录下面建立了一些目录,这些目录是goldengate运行过程中保存相关信息的目录。譬如, /u01/gg/dirrpt是report也就是goldengate的报表目录, /u01/gg/dirprm是parameter目录,也就是goldengate 进程的参数配置目录等等,其他的不再一一论述。 至此,goldengate安装完成。 3.在source端增加supplemental log支持: SQL> alter database add supplemental log data; Database altered. SQL> alter system switch logfile; System altered. SQL> select supplemental_log_data_min from v$database; SUPPLEME

YES SQL> 4.在source端和target端同时创建gguser及其对应的表空间: SQL> create user gguser identified by oracle default tablespace users quota unlimited on users; User created. SQL> grant dba to gguser; Grant succeeded. SQL> 5.在source端和target端数据库的gguser用户下创建测试表,并在source端插入初始数据: source端: SQL> create table ggtable(id number,name varchar2(50)); Table created. SQL> SQL> insert into ggtable values(1,'hunter01'); 1 row created. SQL> insert into ggtable values(2,'hunter02'); 1 row created. SQL> insert into ggtable values(3,'hunter03'); 1 row created. SQL> commit; Commit complete. SQL> target端: SQL> create table ggtable(id number,name varchar2(50)); Table created. SQL> 6.在source和target端配置mgr进程,并启动: manager是goldengate的管理进程,在goldengate运行时必须启动,所以source和target两端都要配置。 GGSCI (mycentos) 2> edit params mgr

GGSCI (mycentos) 3> start mgr Manager started.

GGSCI (mycentos) 4> info mgr Manager is running (IP port mycentos.7809).

GGSCI (mycentos) 5> 7.配置goldengate要同步的表: GGSCI (mycentos) 1> dblogin userid gguser,password oracle Successfully logged into database. GGSCI (mycentos) 2> add trandata gguser.ggtable 2014-07-20 15:37:47 WARNING OGG-00869 No unique key is defined for table 'GGTABLE'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key. Logging of supplemental redo data enabled for table GGUSER.GGTABLE.

GGSCI (mycentos) 3> info trandata gguser.* Logging of supplemental redo log data is enabled for table GGUSER.GGTABLE. Columns supplementally logged for table GGUSER.GGTABLE: ID, NAME. GGSCI (mycentos) 4> 这里有一个表没有unique key的warning,我们忽略,你也可以给表建立unique key. 8.完成initial load: goldengate有batch和online两种运行模式,在online模式同步source端的数据之前,需要 初始化target端的数据,当然,如果在goldengate启动运行同步之前你的源和 目标端的数据一致,此步骤可以省略。另外,就算你要在goldengate运行之前初始化两端的数据, 也可以用其他任何的数据复制和同步手段,例如exp/expdp等等。这里,是介绍goldengate的initial load过程,并且我这里用的是direct load模式,其他模式我不详细列举,有兴趣查阅goldengate的相关 文档: source端: 配置extract进程并配置该进程参数: GGSCI (mycentos) 2> add extract einikk,sourceistable EXTRACT added.

GGSCI (mycentos) 3>

GGSCI (mycentos) 3> edit params einikk 参数文件: EXTRACT EINIKK USERID gguser, PASSWORD "oracle" RMTHOST 192.168.1.202, MGRPORT 7809 RMTTASK REPLICAT, GROUP RINIKK TABLE gguser.ggtable; 其中einikk为抽取的组名称,sourceistable表示是一个initial load的task. 目标端: 配置replicat进程rinikk,并编辑该进程的参数: add replicat rinikk,specialrun edit params rinikk 参数文件: REPLICAT RINIKK ASSUMETARGETDEFS USERID gguser, PASSWORD oracle DISCARDFILE ./dirrpt/RINIKK.dsc, PURGE MAP gguser., TARGET gguser.; 开始initial load: 启动抽取进程einikk,及进行了initial load的过程: GGSCI (mycentos) 5> start extract einikk Sending START request to MANAGER ... EXTRACT EINIKK starting 我们view report einikk查看einikk的报告,可以看到已经完成了源端数据的初始化, 也就是在目标端插入了初始的三条数据: Processing table GGUSER.GGTABLE


  •               ** Run Time Statistics **                         *
    

Report at 2014-07-20 17:01:13 (activity since 2014-07-20 17:01:03) Output to RINIKK: From Table GGUSER.GGTABLE: # inserts: 3 # updates: 0 # deletes: 0 # discards: 0 至此,initial load过程完成。 9.配置online模式的数据同步: 此过程也就是配置源端的extract进程和目标端的replicat进程. 在源端配置抽取进程eorakk,并配置该进程参数: GGSCI (mycentos) 7> add extract eorakk,tranlog,begin now,threads 1 EXTRACT added.

GGSCI (mycentos) 8> info extract * EXTRACT EORAKK Initialized 2014-07-20 17:09 Status STOPPED Checkpoint Lag 00:00:00 (updated 00:00:13 ago) Log Read Checkpoint Oracle Redo Logs 2014-07-20 17:09:47 Thread 1, Seqno 0, RBA 0 SCN 0.0 (0)

GGSCI (mycentos) 9> GGSCI (mycentos) 9> edit params eorakk

EXTRACT EORAKK USERID system, PASSWORD oracle RMTHOST 192.168.1.202, MGRPORT 7809 RMTTRAIL ./dirdat/kk TABLE gguser.ggtable;

在source端增加目标端的trail文件: add rmttrail ./dirdat/kk,extract eorakk GGSCI (mycentos) 10> add rmttrail ./dirdat/kk,extract eorakk RMTTRAIL added.

GGSCI (mycentos) 11> info rmttrail * Extract Trail: ./dirdat/kk Extract: EORAKK Seqno: 0 RBA: 0 File Size: 100M

GGSCI (mycentos) 12> 然后,启动该抽取进程: GGSCI (mycentos) 12> start extract eorakk Sending START request to MANAGER ... EXTRACT EORAKK starting

GGSCI (mycentos) 13> info extract eorakk EXTRACT EORAKK Last Started 2014-07-20 17:18 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:09 ago) Log Read Checkpoint Oracle Redo Logs 2014-07-20 17:18:49 Thread 1, Seqno 4, RBA 2489344 SCN 0.578967 (578967)

GGSCI (mycentos) 14> 在目标端配置replicat进程,并启动: 首先,配置checkpoint表: edit params ./GLOBALS GGSCI (mycentos02) 1> edit params ./GLoBALS

CHECKPOINTTABLE system.ggchkptable 创建ggchkptable: GGSCI (mycentos02) 1>dblogin userid system,password oracle add checkpointtable 这样我们就建立了checkpointtable:system.ggchkptable,我们登陆到目标端的system用户下可以 看到该表: [oracle@mycentos02 ~]$ sqlplus system/oracle SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jul 20 05:27:58 2014 Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> desc ggchkptable Name Null? Type


GROUP_NAME NOT NULL VARCHAR2(8) GROUP_KEY NOT NULL NUMBER(19) SEQNO NUMBER(10) RBA NOT NULL NUMBER(19) AUDIT_TS VARCHAR2(29) CREATE_TS NOT NULL DATE LAST_UPDATE_TS NOT NULL DATE CURRENT_DIR NOT NULL VARCHAR2(255) LOG_CSN VARCHAR2(129) LOG_XID VARCHAR2(129) LOG_CMPLT_CSN VARCHAR2(129) LOG_CMPLT_XIDS VARCHAR2(2000) VERSION NUMBER(3) SQL> 配置replicat进程rorakk,并启动: GGSCI (mycentos02) 1> add replicat rorakk,exttrail ./dirdat/kk REPLICAT added.

GGSCI (mycentos02) 2> 参数: edit params rorakk REPLICAT RORAKK ASSUMETARGETDEFS USERID gguser, PASSWORD oracle DISCARDFILE ./dirrpt/RINIKK.dsc, PURGE MAP gguser., TARGET gguser.;

启动: start replicat rorakk 这样我们就在source端和target端完成了goldengate数据同步的进程,之后我们在 源端的gguser.ggtable表中插入数据时,可以在目标端的数据库中看到能达到数据同步, 同步有多快呢,oracle公司说sub-second。 补充说明: goldengate的命令可以在ggsci下面输入help进程查看,进程有stop、running和ABENDED状态, 正常运行时是running状态,我在配置过程中,给rorakk进程的参数文件中 USERID gguser, PASSWORD oracle刚开始写错了gguser的密码,并且,start之后,进程在ABENDED,当然也就无法同步数据, 通过查看该进程的report, view report rorakk: 2014-07-20 05:43:43 ERROR OGG-00664 OCI Error beginning session (status = 1017-ORA-01017: invalid username/password; logon denie d). 发现了该问题。 另外,在映射表这里,MAP gguser., TARGET gguser.;我也忘记写了TARGET,也可以在该进程的report里面检查到了错误原因: 2014-07-20 06:02:43 ERROR OGG-00212 Invalid option for MAP: gguser.ggtable. 改正了上述两处错误之后,我再次start rorakk,数据立即同步过来了。 总之,遇到错误,要学会查看相关日志和报告,所有的命令,都可以help来查看。 感谢网友hunterworld的内容分享,更多内容请查看: http://edu.51cto.com/lecturer/index/user_id-1850277.html

本文转载自:

共有 人打赏支持
让往事随风
粉丝 18
博文 100
码字总数 44322
作品 0
东城
Oracle RAC环境实时数据迁移

Oracle RAC环境实时数据迁移 ——————————————————————————————————————— 系统要求及安装前的说明 Oracle GoldenGate可以在Oracle不同版本间移动数据,...

晨曦之光
2012/03/09
0
0
Oracle 11G GoldenGate实现Windows与Windows之间的单向同步

Oracle GoldenGate实现Windows与Windows之间的单向同步 本次实验都是在win环境进行,目的通过GoldenGate实现Windows与Windows之间的单向同步进行对源库复制备份。 实验环境说明 操作系统:W...

pimg2005
06/28
0
0
oracle迁移到mysql分库分表方案之——ogg(goldengate)

之前文章主要介绍了oracle 迁移到mysql,主要是原表原结构迁移,但是实际运维中会发现,到mysql以后需要分库和分表的拆分操作,这个时候,用ogg来做,也是很强大好用的。 主要结合ogg的2个参...

xinxin9988
06/28
0
0
Oracle Golden Gate - 概念和机制

Oracle Golden Gate - 概念和机制 (ogg) Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉、变换、投递。 OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,...

李权翰
04/30
0
0
OGG安装之oracle2oracle

两台服务器都需要创建ogg操作系统用户(此步骤非必须,也可以使用ORACLE用户安装)。 useradd -u 1003 -g oinstall -G dba ogg passwd ogg su - ogg vi .bashprofile export ORACLEBASE=/u01/...

李权翰
04/30
0
0
利用ogg实现oracle到kafka的增量数据实时同步

转载请务必注明原创地址为:https://dongkelun.com/2018/05/23/oggOracle2Kafka/ 前言 ogg即Oracle GoldenGate是Oracle的同步工具,本文讲如何配置ogg以实现Oracle数据库增量数据实时同步到k...

dkl12
05/25
0
0
OGG logdump跳过某事物操作方法

某缴费充值系统,监控告警显示ogg进程异常。同事登录系统进行查看确认ogg进程异常停止。 查看ggserr.log发现有个undo表空间的告警,然后紧接着是异常停止ABENDING 2017-07-05 10:28:27 WARN...

yangjunfeng
06/29
0
0
使用Goldengate同步异构数据库Kafka中间件之一

收到业务部门需求,要求将Oracle数据库某表同步至Mysql数据库中,异构环境我们用kafka来实现,下面是具体的一些配置; 由于业务需要,现申请使用架构组数据同步服务同步以下数据到管家MySQL...

yangjunfeng
06/29
0
0
Oracle数据库集群容灾实施与维护2.0(RAC+DataGuard+GoldenGate)教程

Oracle数据库集群容灾实施与维护(RAC+DataGuard+GoldenGate)培训教程 套餐介绍: 风哥Oracle数据库集群容灾2.0(RAC+DataGuard+GoldenGate)实施与维护培训教程套餐)包括内容: 1、Oracl...

风哥Oracle
06/28
0
0
RMDB与hadoop的实时整合

一、MySQL的Hadoop Applier 实现原理是:把hadoop作为MYSQL 的slave,实时把数据同步到hadoop,支持apache hadoop 通过分析MYSQL的binlog日志,在hdfs产生一个目录(同表名),所有的表记录都存...

cloud-coder
2014/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
53分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部