OGG安装配置

news/2024/11/28 20:50:27/

OGG简介GoldenGate
OGG 是一种基于日志的结构化数据复制软件
OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。

OGG安装

1. 使用Oracle用户,且加入oinstall用户组,GoldenGate安装在Oracle用户所在/home/oracle/app/OGG_linux/ggs目录下。
2. 源端:修改oracle日志模式:

   查看日志模式:SQL>select log_mode,supplemental_log_data_min,force_logging from v$database;
   修改归档模式:
       1)关闭数据库:shutdown immediate;
       2)启动数据库实例到mount状态:startup mount;
       3)切换数据库日志模式:
          alter database archivelog;(设置数据库为归档日志模式)
          alter database noarchivelog;(设置数据库为非归档日志模式)
       4)打开数据库:alter database open;
       5)确认数据库处于归档模式:archive log list;
   打开最小附加日志:alter database add supplemental log data;
   打开强制日志:alter database force logging;
3. 创建ogg用户
  源端:
  1)、/**创建表空间**/
      create tablespace goldengate datafile '/home/oracle/app/oradata/orcl/goldengate01.dbf' size 100m autoextend on;
  2)、/**OGG专属用户goldengate,必须为goldengate用户指定表空间并分配空间**/
     create user goldengate identified by goldengate default tablespace goldengate
     temporary tablespace temp quota unlimited on goldengate;
  3)、/**ogg数据库用户权限,sqlplus下执行**/

     grant create session to goldengate;grant alter session,alter system to goldengate;grant connect,resource to goldengate;grant select any dictionary,select any table,select any transaction to goldengate;grant flashback any table to goldengate;grant insert any table,update any table,drop any table,create table to goldengate;grant select on dba_clusters to goldengate;grant select on V_$DATABASE to goldengate;grant select on sys.logmnr_buildlog to ogg_role;grant execute on utl_file to goldengate;grant unlimited tablespace to goldengate;grant create table,create sequence to goldengate;//否则安装ogg @ddl_setup.sql时会报错

  目标端:
  1)、/**创建表空间**/
    create tablespace ogg datafile '/home/oracle/app/oradata/orcl/ogg01.dbf' size 100m autoextend on;
  2)、/**创建OGG专属用户ogg,必须为ogg用户指定表空间并分配空间**/
     create user ogg identified by ogg default tablespace ogg temporary tablespace temp quota unlimited on ogg;
  3)、授予ogg用户源端goldengate用户相同权限
4.  GoldenGate软件安装(源端和目标端)
  1)、上传安装文件至任意目录,解压
  2)、./runinstall
  3)、在ggs目录下新建一个终端:输入 ./ggsci 进入ogg管理控制台,如下图表示安装成功
  4)、配置源端和目标端的管理进程:
  GGSCI(localhost.localdomain 2)>create subdirs
  该命令会在ggs安装目录下建立若干子目录,其中几个主要目录说明如下:
    (1)dirprm:存放GG的参数文件,这些参数文件可以通过文本编辑器直接编辑,也可以在ggsci命令下edit params +文件名来编辑,用于保存启动相关manager、extract、replicat等进程时读取的参数;
    (2)dirrpt:存放各个进程的报告文件,内容为manager、extract、replicat进程相关的统计报告信息,当进程出现ABENDED挂起或STOPED意外终止时,可以查看相关错误信息;
    (3)dirchk:存放由extract抽取进程和replicat复制进程创建的checkpoint文件,checkpoint文件保存当前读写时间戳信息,通过这些信息保证了数据的准确性和数据容错性功能;
    (4)dirpcs:存放各个进程的状态信息;
    (5)dirdat:存放GG跟踪文件和有extract抽取进程创建的抽取文件,这些文件将被replicat复制进程进一步使用。文件名为人为指定两位字符,加上系统自动生成的六位序列号;
    (6)dirdef:存放由defgen组件创建的定义文件,包含在异构环境同步中的源或者目标端的数据定义;
    (7)dirtmp:用于执行大事务处理过程,不要对此文件下的内容进行编辑;
    (8)dirout:废弃,不再使用。
  5)、为新创建的OGG用户goldengate(源端)、ogg(目标端)执行配置脚本:
     sqlplus / as sysdba
     SQL>@marker_setup.sql; 提示输入schema name
     SQL>@ddl_setup.sql; 提示输入schema name
     SQL>@role_setup.sql; 提示输入schema name;提示为<logged user>授予权限
          grant GGS_GGSUSER_ROLE to goldengate;--源端
          grant GGS_GGSUSER_ROLE to ogg;--目标端
     SQL>@ddl_enable.sql; --启动ddl触发器
  6)、测试用户是否创建成功:
     源端:GGSCI(localhost.localdomain 3)>dblogin userid goldengate,password goldengate;
     目标端:GGSCI(localhost.localdomain 3)>dblogin userid ogg,password ogg;
5. GoldenGate进程配置-manager管理进程配置(源端和目标端)
        以oracle用户登录,在goldengate软件安装目录ggs下,执行./ggsci进入ogg管理控制台为manager进程配置参数,可以直接在dirdat目录下新建mgr参数文件。
        (1) 通过命令方式:
         GGSCI(localhost.localdomain 4)>edit param mgr;进行编辑,默认保存在dirdat目录下,文件名为mgr,在打开的编辑窗口中,根据需要输入以下内容:

           port 7809  --本例中源端port指定7809,目标端指定7839DYNAMICPORTLIST 7840-7850AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints,minkeepdays 7

     MANAGER进程参数说明:
     port:指定服务监听端口,默认端口7809。
     DYNAMICPORTLIST:动态端口列表,最大可指定256个动态端口,当指定port不可用时,管理进程会从列表中选择一个可用的端口。
     AUTORESTART:由于网络等原因造成抽取进程中止,每3分钟尝试重启所有extract进程,共尝试5次,建议配置。
     PURGEOLDEXTRACTS:自动删除过期队列,凡超过7天且已完成同步的所有./dirdat文件下的文件将被删除,建议配置。
     (2) 保存退出
         GGSCI(localhost.localdomain 5)>start mgr;
         GGSCI(localhost.localdomain 6)>info mgr;

     表示manager管理进程正常运行了。如果是stop状态可以去dirrpt文件夹下找到相应的MGR.rpt为最近一次启动的状态报告,一般检查参数关键词是否拼写错误。

6. GoldenGate进程配置-extract抽取进程配置(源端)
    (1) 在源端为要复制的数据表添加附加日志(此处以同步scott用户下两张表数据为例):
        GGSCI(localhost.localdomain 7)>dblogin userid goldendate,password goldengate;
        GGSCI(localhost.localdomain 8)>add trandata scott.emp;
        GGSCI(localhost.localdomain 9)>add trandata scott.dept;
    (2) 添加抽取进程:
        GGSCI(localhost.localdomain 10)>add extract extra,tranlog,begin now;
        参数说明:
        extra为添加的extract进程名,tranlog为要抽取数据库的日志,从当前时间开始抽取
    (3) 添加到配置队列:
        GGSCI(localhost.localdomain 11)>add exttrail ./dirdat/ra, extract extra;
        参数说明:
        将抽取到的trail文件添加到extra进程中。
    (4) 编辑extra进程对应的extra.prm参数文件(--后为注释):
        GGSCI(localhost.localdomain 12)>edit param extra;//会在dirrpm文件下自动生成配置文件
           

EXTRACT extraSETENV (ORACLE_SID="orcl")SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) --与数据库字符集一致USERID goldengate,PASSWORD goldengateREPORT AT 01:59 --定义自动定时报告REPORTROLLOVER AT 02:00 --防止report文件写满,每天2:00做一次文件过期设定exttrail ./dirdat/ra --指定写入本地哪个队列--NUMFILES 3000 --控制OGG给多少张table和map进行初始化内存分配,默认1000GETTRUNCATES   --复制truncate操作TRANLOGOPTIONS DBLOGREADERDYNAMICRESOLUTION  --动态解析表名NOCOMPRESSDELETESWARNLONGTRANS 3H,CHECKINTERVAL 3M --每隔3分钟检查,对于超过2小时的警告--TABLEEXCLUDE scott.BONUS;  --如果在下面table参数中使用了*通配符,此处可以--使用该参数单独指定不需要同步的表table scott.emp; --必须以;结尾table scott.dept; --必须以;结尾


    (4) 保存退出
        GGSCI(localhost.localdomain 13)>start extra;
        GGSCI(localhost.localdomain 14)>info extra;

      表示extract抽取进程正常运行了。如果是stop状态可以去dirrpt文件夹下找到相应的extra.rpt为最近一次启动的状态报告。      datapump投递进程配置
7. GoldenGate进程配置-datapump投递进程配置(源端)
    pump进程是extract进程的特殊形式,用于异地复制或网络不稳定的环境下,一般先通过extract将数据库增量数据抽取到本地,再单独配一个进程传输到目标端,建议使用。
    (1) 添加投递进程:
        GGSCI(localhost.localdomain 15)>add extract dpea, exttrailsource ./dirdat/ra;
    (2) 配置远程队列:
        GGSCI(localhost.localdomain 16)>add rmttrail ./dirdat/ra, extract dpea;
        参数说明:
        这里的ra是投递到目标端的trail文件名,不是源端的trail文件名。
    (3) 编辑dpea进程对应的dpea.prm参数文件(--后为注释):
        GGSCI(localhost.localdomain 17)>edit param dpea;//会在dirrpm文件下自动生成配置文件           

EXTRACT dpeaSETENV (ORACLE_SID="orcl")SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) --与数据库字符集一致REPORT AT 01:59 --定义自动定时报告REPORTROLLOVER AT 02:00 --防止report文件写满,每天2:00做一次文件过期设定RMTHOST 192.168.203.134,mgrport 7839 --端口号要与目标端得mgr定义的port对应RMTTRAIL ./dirdat/raGETTRUNCATES   --复制truncate操作TRANLOGOPTIONS DBLOGREADERDYNAMICRESOLUTION  --动态解析表名NOCOMPRESSDELETESPASSTHRU --表示本进程是一个投递进程,无需跟数据库交互table scott.emp;table scott.dept;

    (4) 保存退出
        GGSCI(localhost.localdomain 18)>start dpea;
        GGSCI(localhost.localdomain 19)>info dpea;        表示extract投递进程正常运行了。如果是stop状态可以去dirrpt文件夹下找到相应的dpea.rpt为最近一次启动的状态报告。
      以上源端的GoldenGate进程基本配置完成了,如果有什么错误,可以在ggs安装目录下查看ggserror.log日志文件。
8. GoldenGate进程配置-replicat复制进程配置(目标端)
     (1) 为replicat进程创建checkpoint表:
         GGSCI(localhost.localdomain 20)>edit param ./GLOBAL;
         在参数文件中输入:
                GGSCHEMA ogg
                CHECKPOINTTABLE ogg.checkpoint
         保存退出。
         GGSCI(localhost.localdomain 21)>dblogin userid ogg,password ogg;
         GGSCI(localhost.localdomain 22)>add checkpointtable ogg.checkpoint;
         复制进程需要用到checkpoint表,通过ggsic控制平台下的add checkpointtable命令会自动在ogg用户下创建checkpoint表,用于异常中止的数据恢复。
     (2) 添加复制进程:
         GGSCI(localhost.localdomain 23)>add replicat repa, exttrail ./dirdat/ra,checkpointtable     ogg.checkpoint;
     (3) 投递进程参数配置:
        编辑repa进程对应的repa.prm参数文件(--后为注释):
     GGSCI(localhost.localdomain 24)>edit param repa;//会在dirrpm文件下自动生成配置文件         

REPLICAT repaSETENV (ORACLE_SID="orcl")SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) --与数据库字符集一致REPORT AT 01:59 --定义自动定时报告REPORTROLLOVER AT 02:00 --防止report文件写满,每天2:00做一次文件过期设定USERID ogg,PASSWORD oggREPERROR DEFAULT,ABEND  --出现错误后的处理模式DISCARDFILE ./dirrpt/repa.dsc,append,megabytes 1024ASSUMETARGETDEFSALLOWNOOPUPDATESGETTRUNCATES   --复制truncate操作DYNAMICRESOLUTION  --动态解析表名NOCOMPRESSDELETESMAP scott.emp, TARGET scott.emp; --源表和目标表的映射,target前要有空格MAP scott.dept, TARGET scott.dept;

     (4) 保存退出
         GGSCI(localhost.localdomain 25)>start mgr;
         GGSCI(localhost.localdomain 27)>start repa;
         GGSCI(localhost.localdomain 28)>info all;

         发现源端的manager和replicat进程都启动了,如果是stop或abended状态可以去dirrpt文件夹下找到相应的报告文件查看原因。
9. 验证数据同步
     更改源端 scott用户下的dept和emp表中的数据,commit后查看目标端 scott用户下的表,发现数据已同步过来。
 

同步到Kafka

安装big data for ogg

添加环境变量

export OGG_HOME=/app/ogg
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64/libjsig.so:$JAVA_HOME/jre/lib/amd64/server/libjvm.so:$OGG_HOME/lib
export PATH=$OGG_HOME:$PATH

源端配置define文件

Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:

edit param kafka
defsfile /app/ogg/dirdef/ogg.emp_dept 
userid ggs,password ggs 
table scott.emp;
table scott.dept;执行./defgen paramfile dirprm/kafka.prm
然后scp /app/ogg/dirdef/ogg.emp_dept 目标端:/app/ogg/dirdef/ogg.emp_dept

目标端

目标端复制进程
REPLICAT rekafka
sourcedefs /app/ogg/dirdef/ogg.test_ogg
TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props
REPORTCOUNT EVERY 1 MINUTES, RATE 
GROUPTRANSOPS 10000
MAP scott.emp, TARGET ogg.emp;
MAP scott.dept, TARGET ogg.dept;vi dirprm/kafka.props
gg.handlerlist=kafkahandler
gg.handler.kafkahandler.type=kafka
gg.handler.kafkahandler.KafkaProducerConfigFile=custom_kafka_producer.properties
gg.handler.kafkahandler.topicMappingTemplate=test_ogg
gg.handler.kafkahandler.format=json
gg.handler.kafkahandler.mode=op
gg.classpath=dirprm/:/opt/kafka_2.11-0.11.0.0/libs/*:/app/ogg/:/app/ogg/lib/*vi dirprm/custom_kafka_producer.properties
bootstrap.servers=hadoop-senior03.zhangbk.com:9092
acks=1
compression.type=gzip
reconnect.backoff.ms=1000
value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
batch.size=102400
linger.ms=10000add replicat rekafka,exttrail /app/ogg/dirdat/ra,checkpointtable ogg.checkpoint

 

 


http://www.ppmy.cn/news/181358.html

相关文章

【GD32】GD32设置看门狗

芯片:GD32F350 运行在8M 目标:启动芯片看门狗,定时喂狗 流程 1.初始化看门狗时钟 2.配置看门狗 3.定时喂狗 1.初始化看门狗时钟 启动用于给看门狗的内部40KHz的时钟 static void irc40k_config(void) {/* enable IRC40K */rcu_osci_on(RCU_IRC40K);/* wait till IRC40K is …

Intel SGX

最近Intel推出的SGX技术对云计算安全保护有重要意义&#xff0c;SGX技术是Intel于2013年在ISCA会议的Workshop HASP中提出的&#xff0c;但只是提出了这一概念和原理&#xff0c;2015年10月第一代支持SGX技术的CPU问世。在这两年间&#xff0c;微软基于SGX模拟器提出了SGX技术两…

windows安装G++编译器

1.验证有无安装gcc winr 调出Run&#xff0c;输入cmd&#xff0c;调出cmd窗口 输入 g -v 2安装 在https://sourceforge.net/projects/mingw/ 下载MinGW,minimalist GUN for windows GUN-Gun’s not unix GCC-GNU Compiler Collection 在MinGW的列表中&#xff0c;勾选希望安装的…

振芯GM7123C:功能RGB转VGA芯片方案简介

1. 概述GM7123是一款频率330MHz的3通道10位高速视频DAC芯片&#xff0c;兼容RS-343A/RS-170标准差分输出&#xff0c;输出电流范围是2mA&#xff5e;26mA。输入兼容TTL电平&#xff0c;内部基准1.23V&#xff0c;单电源3.3V供电&#xff0c;采用LQFP48封装。该芯片可应用于&…

Cygwin安装

Cygwin是一个在Windows平台上运行的类UNIX模拟环境&#xff0c;在其提供的命令行界面中完美地兼容了Windows和Linux的命令行指令&#xff0c;安装和使用教程很容易百度到&#xff0c;可从官网下载安装包&#xff1a;Cygwin官网。安装步骤如下所示&#xff0c;也可自行百度安装方…

linux 64位操作系统环境下用gcc、g++编译32位程序

在linux 64位操作系统环境下&#xff0c;默认编译生成的可执行文件是64位的。今天由于测试验证需要&#xff0c;需要将程序编译成32位的可执行文件&#xff0c;碰到了一些问题&#xff0c;下面做一下记录。 gcc、g编译时&#xff0c;增加下列参数之一&#xff1a; -m32 :将int…

Cygwin+OSgeo4w安装

CygwinOSGeo4W安装 一、Cygwin和OSGeo4W介绍 二、Cygwin安装 三、OSGeo4W安装 几乎所有的开源GIS项目都在某种程度上使用GDAL来读写数据&#xff0c;但是因为Windows是一个封闭的平台&#xff0c;所以它没有像基于Unix的操作系统那样开发软件包管理器。鉴于此&#xff0c;在Uni…

GD32硬件IIC

GD32E230硬件IIC 我们熟悉IIC都是使用软件代码的形式模拟时序图来编程 现在使用GD32E230中的HAL库中硬件IIC模式IIC。的总线机制都是一种两线接口、简单、双向二线制同步的串行总线&#xff0c;二线制就是时钟线(SCL)和数据线(SDA)两个信号线。IIC寻址时分为主从设备之分&#…