DMHS同步配置

1.1 系统环境
源端数据库 DM
目的端 kafka
同步软件 DMHS
1.2 同步规划
源端A机器
服务器IP:192.168.100.3
siteid:1
mgr_port:5345
目的端B机器
服务器IP:192.168.100.100
siteid:11
mgr_port:5345
data_port :5346
安装目录 /dmsoft/dmhs
注意:源端服务器为达梦数据库实例的主库或者备库,建议在备库安装dmhs同步软件,目的端的服务器可以安装在与kafka软件同一台服务器上,也可以单独部署前提是可以访问到kafak服务。
1.3 安装dmhs源端目的端软件
源端目的端安装dmhs软件
源端dm8安装包 dmhs_V4.1.59_dm8_rev102896_rh6_64_veri_20211021.bin
目的端kafka安装包 dmhs_V4.2.11_dm8-kafka_rev104232_rh6_64_veri_20211222.bin
安装过程:

1.4源端DMHS同步配置
1.4.1源端数据库开启归档日志打开逻辑日志
1)设置归档标记和逻辑日志标记。打开DM8 服务器配置文件“dm.ini”,设置如下值:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
2)添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位MB
ARCH_SPACE_LIMIT = 50000 #空间大小限制,0 表示不限制
3) 重启DM8 数据库,使配置参数生效
4) 验证配置的正确性
检查归档配置的正确性
SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE=‘LOCAL’ AND ARCH_IS_VALID=‘Y’;

检查逻辑日志配置的正确性

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = ‘RLOG_APPEND_LOGIC’;

如果归档已经打开可以登录数据库直接执行命令开启逻辑日志:
SQL>SP_SET_PARA_VALUE(1,’ RLOG_APPEND_LOGIC ',1);

1.4.2配置dmhs.hs配置文件

A机器:
[dmdba@bin]#vim /dmsoft/dmhs/bin/dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs><base><lang>en</lang><mgr_port>5345</mgr_port><chk_interval>3</chk_interval><ckpt_interval>60</ckpt_interval><siteid>1</siteid><version>2.0</version>     </base>        <cpt><db_type>DM8</db_type><db_server>192.168.100.3</db_server> <db_user>TEST</db_user>  <db_pwd>TEST123456</db_pwd><db_port>5236</db_port><idle_time>300</idle_time><update_fill_flag>2</update_fill_flag><char_code>PG_UTF8</char_code> <arch><clear_interval>6000</clear_interval><clear_flag>0</clear_flag></arch><send><ip>192.168.100.100</ip><mgr_port>5345</mgr_port><data_port>5346</data_port><net_pack_size>256</net_pack_size><net_turns>0</net_turns><crc_check>0</crc_check><trigger>0</trigger><constraint>0</constraint><identity>0</identity><case_sensitive>0</case_sensitive><filter><enable>
<item>TEST.MYTEST</item></enable><disable></disable></filter><map/></send></cpt>
</dmhs>

dmhs.hs文件说明:
配置标签:<mgr_port>5345</mgr_port>
说明:dmhs进程启动后监听端口
配置标签:<siteid>1</siteid>
说明:dmhs同步节点标识不能与其他dmhs节点相同
配置标签:

 <db_server>192.168.100.3</db_server> <db_user>TEST</db_user>  <db_pwd>TEST123456</db_pwd><db_port>5236</db_port>

说明:dmhs同步的源端数据库的连接IP、同步用户、密码、数据库端口
配置标签:

 <send><ip>192.168.100.100</ip><mgr_port>5345</mgr_port><data_port>5346</data_port>

说明:源端发送到目的端dmhs服务的IP,端口、数据端口
配置标签:

 <enable><item>TEST.MYTEST</item></enable>

说明:同步对象白名单

1.4.3DMHS启动脚本文件准备
在dmhs的bin目录下service_template目录中存放了 dmhs相关的所有脚本的模板,修改后即可使用
A机器:[dmdba@bin]# cd /dmsoft/dmhs/bin
A机器:[dmdba@bin]# cp -a DmhsService …/DmhsService

复制启动脚本模板:cp -a DmhsService …/DmhsService

修改dmhs启动脚本:
修改前:

修改后:

1.5目的端DMHS配置
1.5.1配置dmhs_kafka.properties文件

B机器:[dmdba@bin]#vim /dmsoft/dmhs/bin/dmhs_kafka.properties

# DMHS config file path
dmhs.conf.path=/dmsoft/dmhs/bin/dmhs.hs
# kafka broker list,such as ip1:port1,ip2:port2,...
bootstrap.servers=10.10.10.150:9092,10.10.10.151:9092
# kafka topic name
kafka.topic.name=DM_TOPIC
# whether to enable JSON format check
json.format.check=0
print.message.num=1000
# kafka serializer class
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
# kafka partitioner config
#partitioner.class=com.dameng.dmhs.dmga.service.impl.SimplePartitioner
partitioner.class=com.dameng.dmhs.dmga.service.impl.OnePartitioner
# kafka request acks config
acks=-1
#batch.size=16777216
#linger.ms=1000
max.request.size=5024000
dmhs.min.batch.size=3000
buffer.memory=268435456
retries=3
send.buffer.bytes=1048576
compression.type=none
metadate.max.age.ms=300000
max.in.flighr.requests.per.connection=1
producer.type=async
batch.size=524288
linger.ms=100

注意:根据实际情况替换标红处内容配置文件路径、topic地址及端口、topic名称(注意大小写区别与kafka端保持完全一致)
配置文件说明:
配置项:dmhs.conf.path=/dmsoft/dmhs/bin/dmhs.hs
说明:dmhs配置文件全目录
配置项:bootstrap.servers=10.10.10.150:9092,10.10.10.151:9092
说明:目的端kafka的连接IP及端口
配置项:kafka.topic.name=DM_TOPIC
说明:需要同步到目的端的kafka下的topic名称,此处区分大小写,注意与kafak中topic名称保持一致。
配置项:dmhs.min.batch.size=3000
说明:批量提交大小,可以根据kafka的同步业务量调整,同步压力大可以调高

1.5.2配置目的端dmhs.hs文件

B机器:
[dmdba@bin]#vim /dmsoft/dmhs/bin/dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs><base><lang>en</lang><version>2.0</version><mgr_port>5345</mgr_port><chk_interval>3</chk_interval><ckpt_interval>60</ckpt_interval><siteid>11</siteid></base><exec><recv><data_port>5346</data_port></recv><name>DM_TOPIC</name><enable>1</enable><char_code>PG_UTF8</char_code><level>0</level><exec_thr>16</exec_thr><exec_sql>1024</exec_sql><exec_trx>5000</exec_trx><exec_rows>250</exec_rows><recv_caches>8</recv_caches><trxid_tables>1</trxid_tables><exec_policy>2</exec_policy><is_kafka>1</is_kafka><json_format>file</json_format><max_packet_size>16</max_packet_size></exec>
</dmhs>

配置文件dmhs.hs说明:
配置标签:<mgr_port>5345</mgr_port>
说明:dmhs进程启动后监听端口
配置标签:<siteid>11</siteid>
说明:dmhs同步节点唯一标识,不能与其他dmhs的siteid相同
配置标签:<data_port>5346</data_port>
说明:dmhs目标端数据接收端口
配置标签:<name>DM_TOPIC</name>
说明:同步名称可以自定义

1.5.3启动脚本start_kafka_dmhs.sh文件配置
B机器:
[dmdba@bin]#vim /dmsoft/dmhs/bin/start_kafka_dmhs.sh

#!/bin/bash
ulimit -c unlimited
export LANG=zh_CN.UTF-8
java -Djava.ext.dirs=“/dmsoft/dmhs/bin/lib:.” com.dameng.dmhs.dmga.service.impl.ExecDMHSKafkaService /dmsoft/dmhs/bin/dmhs_kafka.properties

配置文件start_kafka_dmhs.sh说明:
配置项:java -Djava.ext.dirs
说明:指定dmhs连接kafka依赖包位置,依赖包是kafak安装后的lib目录下的所有文件,复制到目的端的该目录下,dmhs通过这些依赖文件连接kafka
配置项:/dmsoft/dmhs/bin/dmhs_kafka.properties
说明:dmhs同步配置文件位置

1.5.4目的端json_format.xml配置

B机器:[dmdba@bin]#vim /dmsoft/dmhs/bin/json_format.xml

char_replace=(",\"),(\,\\)
batch_commit=1
gs_flag=1
cur_time_format=(yyyy-mm-ddThh:mi:ss)
commit_time_format=(yyyy-mm-ddThh:mi:ss)
lob_piece=false
clob_format=char
set_null=1
opcmd_len=3
SET_QUOTA=1
need_crlf=false
json_format={"meta":{"time":"#COMMIT_TIME","userid":"#USERID","op":"#OP_TYPE","scn":"#LSN","rowid":"#ROWID","trans":"#TRXID","seq":#MSG_SEQ,"size":#MSG_NUM,"table":"#SCHEMA.#TABLE","idx":"#IDX","posttime":"#TIME"},"data":{#NEW_VALUES},"key":{#OLD_VALUES}}

参数说明:
char_replace=(“,”),(,\):该参数用于定义同步数据如果出现特殊字符‘\’需要通过该参数准换后同步输出为’',否则该特殊字符会丢失。
json_format:该参数用于配置同步后数据输出的格式,可以自定义设置输出格式。
1.5.5准备kafka依赖文件
将kafka软件安装目录下的lib目录下的全部文件打包复制到dmhs目的端的安装目录的bin目录下作为dmhs的依赖文件:
目录结构为:/dmsoft/dmhs/bin/lib/{kafka依赖文件}

1.6运行同步程序
1.6.1启动源端DMHS

A机器:[dmdba@bin]#/dmsoft/dmhs/bin/DmhsService start

1.6.2启动目的端DMHS
1.启动目的端dmhs服务

B机器:
[dmdba@bin]#cd /dmsoft/dmhs/bin/
[dmdba@bin]#nohup ./start_kafka_dmhs.sh &

2.启动目的端EXEC模块
B机器:
[dmdba@bin]#cd /dmsoft/dmhs/bin/
[dmdba@bin]#./dmhs_console
DMHS>start EXEC

1.6.3在源端配置数据库字典
在源端配置数据库字典并启动同步
A机器:
[dmdba@bin]#cd /dmsoft/dmhs/bin/
[dmdba@bin]#./dmhs_console
DMHS>clear exec lsn
DMHS> copy 0 “sch.name=‘TEST’ and tab.name=‘MYTEST’” dict
DMHS>start cpt
DMHS>

装载字典命令:
装载模式下全部表:
DMHS> copy 0 “sch.name=‘TEST’” dict
装载模式下某张表:
DMHS> copy 0 “sch.name=‘TEST’ and tab.name = ‘TEST_01’” dict
装载模式下某几张表:
DMHS> copy 0 “sch.name=‘TEST’ and tab.name in(‘TEST_01’,‘TEST_02’,‘TEST_03’)” dict

注意:首次配置dmhs同步链路可以在装载字典前使用命令:clear exec lsn,来清理同步历史信息,重源端数据库当前lsn开始同步。

达梦同步工具dmhs同步kafka配置相关推荐

  1. 达梦数据库-搭建DMHS双向同步

    作为一个达梦的初学者,写这篇文章的目的是为了把学到的新知识做个总结梳理,在整理中查缺补漏,也希望大家看了我的文章能有收获,如有错误的地方欢迎指出. 数据同步工具 (DMHS),可实现同构.异构数据库间 ...

  2. 达梦客户端工具的使用

    达梦客户端工具的使用 达梦客户端工具的使用 达梦客户端工具的使用 1.前言 2.Manager的使用(最常使用) 1.2界面 1.2 功能 1.2.1 3.Analyzer的使用 3.1界面 3.2功 ...

  3. 达梦数据库管理工具使用

    DM管理工具使用 1.打开DM管理工具 Linux服务器达梦管理工具在数据库安装目录下的tool/manager 2.连接数据库 选择localhost,双击连接 3.验证口令 输入主机名,端口,用户 ...

  4. 达梦的异构数据库同步软件DMHS的简单安装

    DM公司除了DM数据库之外,还做了一些数据周边的产品,今天尝试安装一下DM的异构数据库同步软件DMHS 有图形界面,安装起来挺简单的,直接执行安装文件: 然后一步步的点下去就行了,咱没key,无视无视 ...

  5. mysql定时同步数据库|mysql数据库实时同步工具|mysql 同步数据库

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  6. LINUX 系统:部署达梦企业管理工具-DEM

    1 DEM配置 1.1 修改dm.ini 创建一个数据库作为DEM后台数据库, 并对数据库参数文件dm.ini参数配置进行优化, 推荐配置: MEMORY_POOL = 200 BUFFER = 10 ...

  7. getjsonobject字符串解析出错_【干货分享】达梦DISQL工具使用解析之 DISQL环境变量设置...

    在众多使用达梦数据库的朋友中,大部分人已经习惯了DM图形化管理工具.但在有些环境下无法调出DM数据库的图形化管理工具这个"神器",只能使用DISQL来进行操作.那么如何让DISQL ...

  8. 谨慎使用达梦manger工具

    全文中心思想一句话:不要用root用户打开达梦的manager工具!!!! 晚上七点左右突然接到测试人员的电话,报数据库无法连接.我表示,拒绝,震惊,不可能,我刚刚看还是好的,是不是你端口或者密码错了 ...

  9. 达梦数据库开启sql日志及配置

    达梦数据库sql日志开启之后可以抓取数据库中运行的sql语句,并且包含了sql执行的耗时,sql日志还包括参数信息,错误信息等,对于排除数据库执行过的SQL语句或者批量优化SQL语句时此功能尤为重要. ...

最新文章

  1. GitHub接连封杀开源项目惹众怒,CEO亲自道歉
  2. catia圆柱转化为圆台_浅析actran气动噪声仿真技术,以圆柱绕流气动噪声仿真为例...
  3. Django 一些 简单 配置
  4. OC仿支付宝输入UITextField输入车牌号
  5. python管道通信_Python进程通信之匿名管道实例讲解
  6. Linux服务器安全策略配置-PAM身份验证模块(二)
  7. Java中七个潜在的内存泄露风险,你知道几个?
  8. 我的世界java8u101_jre8下载 Java SE Runtime Environment 8 9.0u101 多语言安装版 下载-脚本之家...
  9. 服务器主机防护系统有哪些,什么是DDoS防护主机?
  10. 赚钱鬼才:即使开放外部支付,苹果App Store仍坚持收取佣金
  11. 高斯日记python实现
  12. mastercam9.1按alt键卡机,mastercam输入参数卡机需要win10输入法兼容性设置
  13. wishbone bus
  14. 接口测试常见面试题(含答案)
  15. 2023年全国最新二级建造师精选真题及答案27
  16. 人机界面和组态软件有什么区别?
  17. pytorch笔记(四)nn.Conv1d、nn.Conv2d、nn.Conv3d
  18. Java实现抢红包程序
  19. ICIP2020:VVC帧内编码复杂度分析
  20. 3ds max 2020贴图通道

热门文章

  1. Makefile -fPIC 选项
  2. 五大常用算法——分治算法详解及经典例题
  3. Oracle Synonym and Grant
  4. B端产品运营:获客渠道和方法
  5. 欧拉图与半欧拉图的基本概念以及判定方法
  6. Java学习星球,Java学习路线
  7. 【WINDOWS / DOS 批处理】for命令详解(一)
  8. SECS连接模式中active与passive
  9. 三:OpenCV图片颜色通道数据转换
  10. android 监听图库变化,Android ContentObserver 监听图库变化