搭建DM8至加密认证Kafka同步(dmhs)

2023-11-02 11:20

本文主要是介绍搭建DM8至加密认证Kafka同步(dmhs),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.前言

1.1 同步概述

DMHS支持将源端全量或者增量的表数据以json格式投递给消息队列Kafka,应用于基于Kafka订阅消费的数据同步场景。

Kafka同步总体架构包含源端和目标端;其中源端与常规的关系数据库之间的数据同步保持一致,主要由CPT模块进行增量数据捕获,然后将其投递给网络NET模块,通过TCP/IP网络发送至执行端。 Kafka执行端则与常规的数据库同步架构有所区别,DMHS的执行EXEC模块不再由MGR模块调用,以运行执行程序,而是由Java同步程序进行调用。执行模块获取到同步数据后,转换为json格式串。Java同步程序通过JNI接口调用DMHS内部相关接口获取json串后,发送至Kafka消息队列。

本文对DM8同步至加密认证Kafka消息队列的部署配置进行描述。

1.2环境说明

源端

DM8

DM Database 64 V8 05134283890-20220429-159891-10045

操作系统

4.19.90-17.ky10.aarch64

DMHS

V4.2.69_sp1-Build(2022.04.02-107338trunc_sp1)_D64

服务器IP

192.168.104.99

目标端

Kafka

kafka_2.12-1.1.1

操作系统

4.19.90-17.ky10.aarch64

DMHS

V4.2.69_sp1-Build(2022.04.02-107338trunc_sp1)_D64

服务器IP

192.168.104.100

2.DM8准备工作

2.1启用归档(数据实时同步时需要)

DMHS同步源端数据库需要开启归档模式,使用如下语句检查DM8归档是否开启:

SQL> select arch_mode from v$database;LINEID     ARCH_MODE
----------     ---------
1           Y
used time: 3.236(ms). Execute id is 123.

如果ARCH_MODE字段查询结果为“N”,则DM8数据库归档未开启,使用如下命令开启归档模式。

SQL> alter database mount;
executed successfully
used time: 00:00:01.144. Execute id is 0.
SQL> alter database add archivelog 'DEST=/opt/dm8_arch,TYPE=LOCAL,FILE_SIZE=256,SPACE_LIMIT=0';
executed successfully
used time: 7.437(ms). Execute id is 0.
SQL> alter database archivelog;
executed successfully
used time: 10.277(ms). Execute id is 0.
SQL> alter database open;
executed successfully
used time: 00:00:01.262. Execute id is 0.

注意:

在数据库运行过程中,若需要开启归档模式,需要与DBA进行沟通。

2.2启用附加日志(数据实时同步时需要)

sp_set_para_value(2, 'RLOG_APPEND_LOGIC', 1);

注意:

(1) 该参数取值说明如下:

取值为1:如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息;若没有主键列则包含所有列信息;

取值为2:不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息;

取值为3::记录UPDATE时包含更新列的信息以及ROWID,记录DELETE时只有ROWID。

在Kafka执行端,对于主键表,如果在更新和删除时需要显示全列信息,则需要设置该值为2,保证源端日志中记录有全列信息,否则无法显示全列。

(2)启用该参数后,源端DM8的归档日志量比不启用该参数会有所增加。

2.3创建同步辅助表及触发器(数据实时同步时需要)

执行位于DMHS安装目录的scripts子目录下,命名为:ddl_sql_dm8.sql脚本

3.DMHS源端准备工作

源端安装dmhs,DMHS安装及服务启动脚本可参考如下链接

https://blog.csdn.net/quorra111/article/details/122046715

4.Kafka执行端准备工作 

4.1 DMHS部署安装

Kafka执行端的安装与源端的安装类似。需要注意的是Kafka执行端还存在如下相关组件或脚本:

组件名称

功能

dmga-dmhs-kafka-service.jar

Java同步程序,负责将json串发送至Kafka

fastjson-1.2.21.jar

json格式校验包,进行json格式校验

dmhs_kafka.properties

Java同步程序的配置文件,进行Kafka发送相关参数设置

DmhsServiceexec_kafka

DMHS的Kafka执行端启动脚本

kafka_client_producer_jaas.conf

连接加密认证kafka需要的文件(若kafka无加密则可忽略此项)

4.2 JDK环境检查及安装 

Kafka执行端需要启动Java同步程序,因此执行端需要安装Java JDK环境。

4.3配置启动脚本

Kafka启动脚本为DmhsServiceexec_kafka,以下内容对比源端dmhs启动脚本,修改相关地方即可:

#set execute environment
#REPLACE DMHS_HOME path
DMHS_HOME=/opt/dmhs/INST_HS_KFEXEC5
#REPLACE program dir
PROG_DIR=/opt/dmhs/INST_HS_KFEXEC5
#REPLACE program config path
CONF_PATH=/opt/dmhs/INST_HS_KFE

这篇关于搭建DM8至加密认证Kafka同步(dmhs)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/330251

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Nacos集群数据同步方式

《Nacos集群数据同步方式》文章主要介绍了Nacos集群中服务注册信息的同步机制,涉及到负责节点和非负责节点之间的数据同步过程,以及DistroProtocol协议在同步中的应用... 目录引言负责节点(发起同步)DistroProtocolDistroSyncChangeTask获取同步数据getDis