Oracle实时同步大数据平台解决方案

点击上方“技术支持联盟”,选择“置顶公众号”

第一时间了解程序员大小事儿

作者:import,专注实时计算开发,热爱技术,热爱分享,会喊666

摘要:基于传统企业Oracle数据库实时增量数据同步到Kafka消息系统,供下游做实时分析/实时ETL等场景,引进Oracle GoldenGate组件提供不影响系统处理功能的实时数据集成和持续可用性解决方案,使企业能显著提高整个企业关键系统的可用性、可靠性和性能并同时降低IT成本。

01

企业现状篇

传统企业对信息化系统追求高稳定性和高可靠性,建立系统时期数据库方面大多数选择当时较为流行且稳定的Oracle数据库。随着DT时代到来,使得金融保险业对数据的依赖越发加强,传统Oracle已不能完全满足保险企业日益增多的全方位数据分析需求,传统企业整个IT架构和模式存在十年以上,完全推倒重来使用开源数据库替代,极其伤筋动骨,如何在现有架构不影响系统运行去实现数据对接大数据平台,利用大数据技术和能力提供更多价值的数据服务。

02

数据同步篇

传统关系型数据库数据同步到大数据平台的方式有很多。

1.全量同步

2.按时间戳增量同步

3.基于数据库归档日志的同步

全量同步和按时间戳增量同步工具如Sqoop,DataX,FlinX都可以完美解决离线批处理同步方案,但不能满足实时场景需求,基于数据库归档日志的同步属于实时数据同步,如开源mysql可使用Canal利用主从自动同步机制实时采集binlog,对于商业软件Oracle数据库的日志格式不是公开的,没有开源解决方案,选择引进Oracle数据集成产品组件Oracle GoldenGate(OGG)来实现,OGG可提供不影响系统处理功能的实时数据集成和持续可用性解决方案,使企业能显著提高整个企业关键系统的可用性、可靠性和性能并同时降低IT成本。OGG For BigData可支持对接Kafka/HDFS/HBase/Elasticsearch/Flume/JDBC/MongoDB 等大数据常用组件。链接:https://docs.oracle.com/en/middleware/goldengate/big-data/index.html

03

安装配置篇

下面主要介绍Oracle数据实时增量同步Kafka消息系统,供下游做实时处理场景。源端 oracle database + oracle goldengate for oracle,目标端oracle goldengate for bigdata +kafka。

环境准备

1.java环境变量(版本jdk1.8)

2.机器网络连通

3.机器时钟同步

4.源端oracle数据库(版本11.2.0.4以上)

环境背景

1.源端

机器IP: 192.168.72.3

服务:oracle, ogg的mgr(端口7809), ext_test, dpe_test

2.目标端

机器IP: 192.168.72.3

服务:ogg的mgr(端口7909), rep_test,zookeeper, kafka

3.版本

oracle 版本 11g release 2

kafka 版本 2.11-2.0.0

zookeeper 版本 3.4.13

JVM 版本,1.8(ogg for big data必须1.8 以上,否者无法启动)

ogg 源端安装包文件名,123010_fbo_ggs_Linux_x64_shiphome

ogg 目标端安装包文件名,123010_ggs_Adapters_Linux_x64

源端配置

1.解压安装

①设置response参数

[oracle@stream ~]$ cd /home/oracle/tmp/fbo_ggs_Linux_x64_shiphome/Disk1

[oracle@stream Disk1]$vi ./response/oggcore.rsp

INSTALL_OPTION=ORA11g

SOFTWARE_LOCATION=/home/oracle/software/oracle/goldengate

START_MANAGER=false

MANAGER_PORT=7809

DATABASE_LOCATION=$ORACLE_HOME

UNIX_GROUP_NAME=oracle

# INSTALL_OPTION 安装选项 oracle11g设置ORA11g;oracle12c设置ORA12c

# SOFTWARE_LOCATION OGG的安装目录

# START_MANAGER是否自动启动mgr管理进程 true,false

# MANAGER_PORT mgr启动端口,START_MANAGER=true时添加

# START_MANAGER 数据库地址 START_MANAGER=true时添加$ORACLE_HOME

# UNIX_GROUP_NAME 系统权限组

②运行安装程序

[oracle@ogg Disk1]$ ./runInstaller -silent -responseFile /home/oracle/tmp/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

2.环境变量

goldengate安装要配置JAVA_HOME、ORACLE_SID、ORACLE_HOME、SOGG_HOME 、LD_LIBRARY_PATH环境变量。

#jdk

export JAVA_HOME=/home/oracle/software/jdk/jdk1.8.0_162

export PATH=$JAVA_HOME/bin:$PATH

#oracle

export ORACLE_HOME=/home/oracle/software/oracle/database/oracle11g/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

#goldengate

export SOGG_HOME=/home/oracle/software/oracle/goldengate

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$SOGG_HOME

export PATH=$PATH:$SOGG_HOME

3.权限分配

①归档日志

源端数据库要开归档模式、置成force logging、开追加日志操作。

Archive logging

检查oracle 是否已经开启 Archive logging(日志自动归档)

方式一:

[oracle@stream ~]$ sqlplus / as sysdba

SQL> archive log list

Database log mode        No Archive Mode

Automatic archival        Disabled

Archive destination        USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     6

Current log sequence        8

SQL>

方式二:

SQL> select name,log_mode from v$database;

#LOG_MODE 显示NOARCHIVELOG则代表没有开启。

如果没有开启Archive logging,需要先停止数据库,执行以下命令:

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

forcelogging & minimal supplemental logging

#检查是否开启 forcelogging 和 minimal supplemental logging

SQL> SELECT supplemental_log_data_min,force_logging FROM v$database;

#环境没有开启屏幕输出NO、开启输出YES,所以还需要执行开启命令,执行完毕后,我们再来查看forcelogging和minimal supplemental logging 的开启情况

SQL> alter database add supplemental log data;

SQL> alter database force logging;

//TODO待验证

SQL> alter database add supplemental log data (primary key) columns;

SQL> alter database add supplemental log data (unique) columns;

SQL> alter database force logging;

SQL> alter system switch logfile;

#注意:如果不指定Primary key 和unique 属性,OGG将不会传送PK字段或Unique indiex字段信息。这样,下游的应用,在处理update数据时将失去依据

检查开启情况,显示如下则代表ok

#查看forcelogging和minimal supplemental logging 的开启情况

SQL> SELECT supplemental_log_data_min,force_logging FROM v$database;

SUPPLEME FOR

-------- ---

IMPLICIT YES

ENABLE_GOLDENGATE_REPLICATION参数

alter system set ENABLE_GOLDENGATE_REPLICATION=true scope=both;

②指定用户并授权

create user goldengate identified by ;

grant connect to goldengate;

grant alter session to goldengate;

grant create session to goldengate;

grant connect to goldengate;

grant resource to goldengate;

grant select any dictionary to goldengate;

grant select any table to goldengate;

grant insert any table to goldengate;

grant update any table to goldengate;

grant delete any table to goldengate;

grant create any table to goldengate;

grant alter any table to goldengate;

grant select any transaction to goldengate;

grant create any index to goldengate;

grant alter any index to goldengate;

grant create any sequence to goldengate;

grant unlimited tablespace to goldengate;

grant drop any table to goldengate;

grant drop any sequence to goldengate;

grant flashback any table to goldengate;

3.Register Extract Process

--这里是Enable integrated capture mode的关键步骤

[oracle@stream goldengate]$ ./ggsci

GGSCI (stream) 1> dblogin userid goldengate password

GGSCI (stream as goldengate@orcl) 2> register extract ext_test database

2020-04-02 18:30:01  ERROR   OGG-02062  User goldengate does not have the required privileges to use integrated capture.

---需要授权, 且注意用户名要大写

SQL> exec DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (grantee=>'GOLDENGATE', privilege_type=>'capture',grant_select_privileges=>true, do_grants=>TRUE);

PL/SQL procedure successfully completed.

SQL>

GGSCI (stream as goldengate@orcl) 2> register extract ext_test database

2020-04-02 19:14:47  INFO    OGG-02003  Extract EXT_TEST successfully registered with database at SCN 1067318.

GGSCI (stream as goldengate@orcl) 3>

//TODO其他异常

GGSCI (stream as goldengate@orcl) 3> register extract ext_test database

2020-04-02 19:14:50  WARNING OGG-02064  Oracle compatibility version 11.2.0.0.0 has limited datatype support for integrated capture. Version 11.2.0.3 required for full support.

ERROR: Cannot register or unregister EXTRACT EXT_TEST because of the following SQL error: OCI Error 6,550.

--上面错误是由于权限不够,授权,

SQL>exec DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (grantee=>'GOLDENGATE');

ERROR: Cannot register or unregister EXTRACT EXT_TEST because of the following SQL error: OCI Error 1,950.

--上面错误是由于权限不够,授权,

SQL>GRANT UNLIMITED TABLESPACE TO GOLDENGATE;

GGSCI (stream as goldengate@orcl) 3> register extract ep1 database

2020-04-02 19:14:50  WARNING OGG-02064  Oracle compatibility version 11.2.0.0.0 has limited datatype support for integrated capture. Version 11.2.0.3 required for full support.

Extract EXT_TEST successfully registered with database at SCN 224553.

--看到已经注册成功

4.Enable表的supplemental logging

GGSCI (stream) 1> dblogin userid goldengate password

GGSCI (stream) 2> add trandata STAT.PRPCMAIN

4.MGR

MGR进程管理启动Oracle GoldenGate进程、启动动态进程、分配端口给GoldenGate进程、管理trail file、创建事件,错误和诊断报告工作,必须在第一时间启动;当某些原因导致GoldenGate崩溃或重启机器时,默认情况MGR是没有启动。

①配置

GGSCI (stream) 1> edit params mgr

PORT 7809

DYNAMICPORTLIST 7810-7820

AUTOSTART EXTRACT *

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 10

Lagcriticalminutes 60

lagreportminutes 5

ACCESSRULE, PROG *, IPADDR 10.10.*.*, ALLOW

--参数说明

--PORT 表示MGR进程端口号

--DYNAMICPORTLIST 表示MGR进程动态为其它进程如Extract进程、Replicat进程分配的端口,可以是具体端口号或区间值

--AUTOSTART 当MGR启动时启动相应的EXTRACT和REPLICAT

--AUTORESTART 自动启动失败的OGG进程,上面指定了只重试一次

--PurgeMarkerHistory 定义了清理DDL复制数据策略

②streams_pool_size

配置streams_pool_size参数(每个节点都要执行),可调节

SQL> alter system set streams_pool_size=512M sid=’’;

5.EXTRACT

①创建

GGSCI (stream) 1> add extract ext_test integrated tranlog, begin now

GGSCI (stream) 1> ADD EXTTRAIL ./dirdat/ex , EXTRACT ext_test, MEGABYTES 200

②配置

GGSCI (stream) 1> edit params ext_test

extract ext_test

setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")

userid goldengate@, password

--TRANLOGOPTIONS DBLOGREADER

TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 100)

exttrail ./dirdat/ex

discardfile ./dirrpt/ext_test.dsc, append

GETUPDATES

GETDELETES

GETINSERTS

ddl include mapped objtype 'TABLE' include mapped objtype 'INDEX'

ddloptions addtrandata

ddloptions report

statoptions reportfetch

reportrollover at 08:30

TABLE STAT.PRPCMAIN;

--参数 说明

--GETUPDATES|IGNOREUPDATES 是否复制UPDATE操作,缺省复制

--GETDELETES|IGNOREDELETES 是否复制DELETE操作,缺省复制

--GETINSERTS|IGNOREINSERTS 是否复制INSERT操作,缺省复制

6.PUMP

①创建

GGSCI (stream) 1> ADD EXTRACT dpe_test, EXTTRAILSOURCE ./dirdat/ex

GGSCI (stream) 1> ADD RMTTRAIL ./dirdat/re, EXTRACT dpe_test, MEGABYTES 200

--红色字体./dirdat/ex是源端ext_test 的路径,绿色字体./dirdat/re是发送到远端服务rep_test的路径。

②配置

GGSCI (stream) 1> edit params dpe_test

extract dpe_test

rmthost 10.***, mgrport 7809

rmttrail ./dirdat/re

TABLE STAT.PRPCMAIN;

--参数 说明

--RMTHOST 指定目标端地址和端口等信息

--RMTTRAIL 指定目标端保存trail文件的目录和两个字符文件名

--TABLE 指定同步的表,配置的方式同在主抽取进程(Primary Extract)的配置一样

目标端配置

1.环境变量

goldengate for bigdata 安装要配置JAVA_HOME、TOGG_HOME 、LD_LIBRARY_PATH环境变量

#jdk

export JAVA_HOME=/home/hadoop/software/jdk/jdk1.8.0_162

export PATH=$JAVA_HOME/bin:$PATH

#zookeeper

export ZOOKEEPER_HOME=/home/hadoop/software/zookeeper/zookeeper-3.4.13

export PATH=$PATH:$ZOOKEEPER_HOME/bin

#kafka

export KAFKA_HOME=/home/hadoop/software/kafka/kafka_2.11-2.0.0

export PATH=$PATH:$KAFKA_HOME/bin

#goldengate

export TOGG_HOME=/home/hadoop/software/goldengate/ogg_bigdata_12.3.0.1

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TOGG_HOME:$JAVA_HOME/jre/lib/amd64/libjsig.so:$JAVA_HOME/jre/lib/amd64/server/libjvm.so:$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64

export PATH=$PATH:$TOGG_HOME

2.MGR

①配置

[hadoop@stream ogg_bigdata_12.3.0.1]$ ./ggsci

GGSCI (stream) 1> CREATE SUBDIRS

GGSCI (stream) 2> edit param mgr

PORT 7909

DYNAMICPORTLIST 7910-7920

AUTOSTART ER E*

AUTORESTART ER P*,RETRIES 4, WAITMINUTES 4

STARTUPVALIDATIONDELAY 5

3.REPLICAT

①创建

GGSCI (stream) 3> add replicat rep_test, exttrail ./dirdat/re

②配置

GGSCI (stream) 4> edit param rep_test

REPLICAT rep_test

TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props

REPORTCOUNT EVERY 1 MINUTES, RATE

MAP STAT.PRPCMAIN, TARGET STAT.PRPCMAIN;

3.KAFKA

[hadoop@stream ogg_bigdata_12.3.0.1]$ cd dirprm/

[hadoop@stream dirprm]$ vi kafka.props

[hadoop@stream dirprm]$ vi custom_kafka_producer.properties

详细参数说明见官网链接:

https://docs.oracle.com/goldengate/bd1221/gg-bd/GADBD/GUID-2561CA12-9BAC-454B-A2E3-2D36C5C60EE5.htm#GADBD449

常用命令

1.查看编辑进程参数

view param ext_test

edit param ext_test

2.查看进程异常

view report ext_test

3.修改进程按最新数据抽取

alter extract ext_test,begin now

异常问题

我摊牌了,本文重点避坑指南。

1.目标端和源端版本问题

ERROR OGG-01332 File ./dirdat/re000000000, with compatibility level 6, is not compatible with the current software version's compatibility level of 5.Modify the file writer's parameter file to generate the appropriate format using the FORMAT LEVEL 5 option

--EXTCART抽取进程在抽取队列后加FORMAT RELEASE 12.2

exttrail ./dirdat/ex,format RELEASE 12.2

--PUMP投递进程在投递队列后加format level 5

rmttrail ./dirdat/re,format level 5

--删除进程,删除dirdat文件夹源端的抽取文件和目标端的复制文件,重新添加进程。

END

oracle IF_Oracle实时同步大数据平台解决方案相关推荐

  1. 【推荐】智慧检察公益诉讼辅助快检AI人工智能大数据平台解决方案合集(共183份,928M)

    [推荐]智慧检察公益诉讼辅助快检AI人工智能大数据平台解决方案,检务保障系统,整体解决方案合集,公益诉讼方案,可视化检察管理,概要详细设计交付验收模板. 下载地址:https://download.c ...

  2. 国内跨云端平台应用的大数据平台供应商,基于Hadoop的互联网大数据平台解决方案,武汉数道云...

    跨云端大数据平台是什么?有何实质性的价值呢?如何去实现跨云端大数据平台技术呢?这是耐人深思的话题. 高速发展的信息技术,不断扩张的数据库容量,互联网作为信息传播和再生的平台,"信息泛滥&qu ...

  3. 智慧政务大数据平台解决方案

    作者:富扬信息 本期内容主要是关于建设智慧政务大数据平台的核心内容及运营的整体方案. 政务大数据建设意义 政务大数据的本质是指以政务服务平台为基础,以公共服务普惠化为主要内容,以实现智慧政府为目标,运 ...

  4. 华数大数据平台解决方案

    http://www.soft78.com/article/2016-03/8a2389fd5310d3e40153300fbe9901c0.html 第1章 华数大数据分析平台方案介绍 1.1 华数 ...

  5. 企业大数据平台解决方案

    近日,数智机器人科技发布了"数智大数据管理平台",融合了大数据.云计算.人工智能等先进技术,帮助企业实现数据快速接入,连接人员.业务.设备等,提供数据融合.数据分析.数据挖掘.数据 ...

  6. 118页4万字智慧检务大数据平台解决方案

    [版权声明]本资料来源网络,知识分享,仅供个人学习,请勿商用. [侵删致歉]如有侵权请联系小编,将在收到信息后第一时间删除! 完整资料领取见文末,部分资料内容: 目录 第1章 前言 1.1. 政策背景 ...

  7. 典型工业企业大数据平台解决方案(含数据治理)

    一.总体思路 当前,工业企业产生的数据日与俱增,如何利用大数据为企业产生驱动力.竞争力成为工业企业面临的重要问题.工业企业大数据平台建设的总体思路是将现有PLC.MES.ERP.CRM.SRM.SCM ...

  8. SkeyeIVMS实现陕西省宝鸡市反窃电稽查监控大数据平台解决方案

    一, 总体描述 1.1, 背景 在社会经济发展水平不断提高的同时,窃电问题也越来越严重,为了更好的避免违规违章用电现象的发生,保证电力系统的正常运行,我国供电公司不断进行技术升级与创新, 利用现代信息 ...

  9. 大数据-平台-解决方案-基础架构一览

    1.talkingdata  (数据平台) 2.明略数据(解决方案) 3.百融金服(金融大数据) 4.国双科技(营销大数据) 5.国信优易(媒体大数据) 6.百分点(营销大数据) 7.华院集团(解决方 ...

  10. 工业大数据平台解决方案的应用价值

    大数据经过多年的潜心发展,在当今可以说是进入到了一个快速发展期.各种围绕大数据的应用开发也迅速火热起来了.政务大数据解决方案.企业级大数据解决方案.智慧城市停车大数据解决方案等已经开始被应用.5月份一 ...

最新文章

  1. ORB-SLAM3 Initializer.cpp函数解读
  2. 公平锁与非公平锁源码对比
  3. TVS二极管,双向封装,如何选型?
  4. 8086PC读取和执行指令相关部件
  5. 新版 C# 高效率编程指南
  6. 去除字符串最后一位的几种方法
  7. 近期计算机视觉相关算法竞赛汇总—高额奖金等你来拿!
  8. centos7 重置root 密码
  9. javascript调用服务端验证控件
  10. .net的页面在大并发下偶尔出现503错误
  11. [Hadoop in China 2011] 淘宝OceanBase打造结构化NoSQL数据库
  12. redis memcache rabbitMQ
  13. 泛微oa系统手机服务器,泛微OA系统移动客服,把客户的所有事宜装入手机
  14. 硬链接(hard link)和符号连接(symbolic link)
  15. 航程门业:木门企业可搭上移动客户端班车 获得客户
  16. uni-app打包上架vivo应用市场踩坑
  17. Android 10 状态栏通知图标和下拉状态栏图标为白色问题
  18. CRC校验——以SHT30温湿度传感器为例(内附SHT30的驱动代码)
  19. 李宏毅机器学习特训营——regression课程笔记
  20. python-selenium自动爬取京东手机端全部类别数据----“从祖爬到孙”

热门文章

  1. 傅盛认知三部曲之三:战略就是格局+破局
  2. 解决fbreader从书架打开的是同一本书问题
  3. mybatis sql语句格式化 trim prefix suffix
  4. hp linux 禁用u盘启动不了,笔记本被禁用U盘启动功能的bios设置解除方法
  5. 某程序员:这辈子再也不想为谁拼刀刀了!
  6. 外汇EA真的有用吗?外汇EA如何设置
  7. 如何找出C#的dataGridView中某字段重复的行并将重复行标红(基于汉得MES系统)
  8. 微信小程序的APPID问题
  9. 金融分析与风险管理——期权BSM模型
  10. js从地址栏获取参数