搭建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

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件