ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DMHS路由功能体验

2022-01-31 13:31:26  阅读:226  来源: 互联网

标签:5566 192.168 siteid SEND DMHS 体验 SYSDBA 路由


1、DMHS架构

达梦的DMHS和Oracle的OGG原理相似,都是由CPT模块从数据库的日志中捕获变化,然后进行压缩后SEND模块发送到目的端,再在目的端EXEC模块执行相同操作的一个过程实现数据的同步,目前DMHS不仅支持达梦数据库之间的同步,也能支持常用的几个通用数据库的数据同步。

2、项目架构:

A段和B段的DMHS正常配置CPT和EXEC,C和D段的DMHS配置route模块;A的SEND 配置C,C的SEND配置A和D,D的SEND配置C和B,B的SEND配置D。

3、dmhs.hs配置:

A-192.168.216.137

<?xml version="1.0" encoding="GB2312"?><dmhs> <base> <lang>en</lang> <mgr_port>5345</mgr_port> <ckpt_interval>60</ckpt_interval> <siteid>1</siteid> <version>2.0</version></base> <exec><recv> <mgr_port>5345</mgr_port> <data_port>5346</data_port> </recv> <db_type>DM7</db_type> <db_server>127.0.0.1</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</db_pwd> <db_port>5236</db_port> <exec_thr>4</exec_thr> <exec_sql>1024</exec_sql> <affect_row>0</affect_row> <enable_rowid>0</enable_rowid> <exec_trx>5000</exec_trx> <exec_rows>1000</exec_rows> <case_sensitive>1</case_sensitive> <toggle_case>0</toggle_case> <exec_policy>0</exec_policy> </exec> <cpt> <db_type>DM7</db_type> <db_server>127.0.0.1</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</db_pwd> <db_port>5236</db_port> <idle_time>10</idle_time> <ddl_mask>op:obj:rec</ddl_mask> <arch> <clear_interval>600</clear_interval> <clear_flag>0</clear_flag> </arch> <send> <ip>192.168.216.138</ip> <mgr_port>5566</mgr_port> <data_port>5565</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> <filter> <enable><item>*.*</item> </enable> <disable/> </filter> <map> <item>*.* == *.*</item> </map> </send> </cpt></dmhs>

C-192.168.216.138

<?xml version="1.0" encoding="GB2312"?><dmhs>

<base><!-- 管理模块的基本配置 --><lang>ch</lang><!-- 语言选项,ch为中文,en为英文 --><version>2.0</version><mgr_port>5345</mgr_port><!-- 管理端口号,默认为5345,最小值1000,最大值65535 --><chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为3s,最小值1s,最大值60s --><siteid>2</siteid><!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 --></base><route><!-- 消息路由可以实现N==>1==>N的功能,主要是用来跨网关,路由是不会对消息进行拆解的,实现的是消息实现源和目的的映射关系 --><recv><mgr_port>5566</mgr_port><data_port>5565</data_port></recv><send><!-- 发送模块配置 --><siteid>1</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.139</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5566</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5565</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send><send><!-- 发送模块配置 --><siteid>4</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.137</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5345</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5346</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send></route></dmhs>

D-192.168.216.139

<?xml version="1.0" encoding="GB2312"?><dmhs>

<base><!-- 管理模块的基本配置 --><lang>ch</lang><!-- 语言选项,ch为中文,en为英文 --><version>2.0</version><mgr_port>5345</mgr_port><!-- 管理端口号,默认为5345,最小值1000,最大值65535 --><chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为3s,最小值1s,最大值60s --><siteid>3</siteid><!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 --></base><route><!-- 消息路由可以实现N==>1==>N的功能,主要是用来跨网关,路由是不会对消息进行拆解的,实现的是消息实现源和目的的映射关系 --><recv><mgr_port>5566</mgr_port><data_port>5565</data_port></recv><send><!-- 发送模块配置 --><siteid>1</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.140</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5345</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5346</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send><send><!-- 发送模块配置 --><siteid>4</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.138</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5566</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5565</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send></route></dmhs>

B-192.168.216.140

<?xml version="1.0" encoding="GB2312"?><dmhs>

 <base> <lang>en</lang> <mgr_port>5345</mgr_port> <ckpt_interval>60</ckpt_interval> <siteid>4</siteid> <version>2.0</version></base> <exec><recv> <mgr_port>5345</mgr_port> <data_port>5346</data_port> </recv> <db_type>DM7</db_type> <db_server>127.0.0.1</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</db_pwd> <db_port>5236</db_port> <exec_thr>4</exec_thr> <exec_sql>1024</exec_sql> <affect_row>0</affect_row> <enable_rowid>0</enable_rowid> <exec_trx>5000</exec_trx> <exec_rows>1000</exec_rows> <case_sensitive>1</case_sensitive> <toggle_case>0</toggle_case> <exec_policy>0</exec_policy> </exec> <cpt> <db_type>DM7</db_type> <db_server>127.0.0.1</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</db_pwd> <db_port>5236</db_port> <idle_time>10</idle_time> <ddl_mask>op:obj:rec</ddl_mask> <arch> <clear_interval>600</clear_interval> <clear_flag>0</clear_flag> </arch> <send> <ip>192.168.216.139</ip> <mgr_port>5566</mgr_port> <data_port>5565</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> <filter> <enable><item>*.*</item> </enable> <disable/> </filter> <map> <item>*.* == *.*</item> </map> </send> </cpt></dmhs>

 说明:

上述dmhs.hs中A的siteid是1,它向C投递包含siteid为1的日志,C再向D投递siteid为1的日志,最后D向B投递siteid为1的日志并执行,反之亦然,从下面的C的dmhs.hs片段配置中看recv指的是转发路由自身接收数据使用的端口,所以A的dmhs.hs中SEND发送的端口应该就是这里C的recv的端口,5566和5565。(下面端口颜色对应相同颜色)

A

<send> <ip>192.168.216.138</ip>

 <mgr_port>5566</mgr_port> <data_port>5565</data_port>

另外1指的是把siteid=1也就是A的数据投递到D上,所以下方SEND中的端口应该是D的recv端口,5566和5565。

C

<recv><mgr_port>5566</mgr_port>

<data_port>5565</data_port></recv><send><!-- 发送模块配置 --><siteid>1</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.139</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5566</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5565</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send>

D再把siteid=1的数据投递到B上执行,所以D上1下方SEND中的端口号应该就是B上的exec模块的端口5345和5346。

D

<recv><mgr_port>5566</mgr_port>

<data_port>5565</data_port></recv><send><!-- 发送模块配置 --><siteid>1</siteid><!-- 这个站点号跟源端的站点号要一致 --><ip>192.168.216.140</ip><!-- 目的端IP,默认127.0.0.1 --><mgr_port>5345</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 --><data_port>5346</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 --></send>

B

<exec><recv>

 <mgr_port>5345</mgr_port> <data_port>5346</data_port> </recv>

反向SITEID=4的时候一样的原理。

二、启动DMHS

启动每个节点的dmhs_server

1、ABCD正常安装DMHS;

2、CD的console执行:

connect

start recv

3、AB的console执行:

connect

start exec

clear exec lsn

copy 0 "sch.name is not null" dict

start cpt

 

标签:5566,192.168,siteid,SEND,DMHS,体验,SYSDBA,路由
来源: https://blog.csdn.net/robo23/article/details/122759384

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有