DMHS介绍

1.  DMHS模块
  (1)日志分析(CPT):
      负责对源数据库进行解析,联合字典信息,提取其中数据的变化:比如DML操作,DDL操作,对这些操作进行包装后,投递给消息发送(NET)模块。

  (2)数据传输(NET)-CPT和EXEC之间的传输媒介:
NET消息发送子模块:分发CPT捕获到的日志操作,分发前可对操作进行过滤、对表进行过滤和映射。经过处理的消息通过网络(TCP/IP)发送给下一级,或者保存到本地文件。
NET消息接收子模块:接收NET发送子模块通过网络传输的消息,完成接收之后,通过网络(TCP/IP)发送给EXEC模块.。
  (3)数据入库(EXEC):
      接收NET接收子模块发送的消息,并对这些消息,按照事务分类,如果某一个事务上收到了提交消息,则构成相应的SQL,使用ODBC接口对这些数据进行入库;值得注意的是:EXEC模块在运行的过程中需要不断刷新检查点,以便推进入库的LSN。

2.  DMHS功能划分
      DMHS提供的功能可以细分为:捕获器功能、执行器功能、路由器功能、转发器功能。这里主要介绍捕获器和执行器的功能。

  (1)捕获器:
      捕获器将源端数据库日志读取解析后发送出去,它必须与源端数据库在同一台机器上,捕获器由MGR模块、CPT模块、NET发送子模块组成。XML配置文件中对应的元素为base、cpt、send。NET发送子模块不能单独存在,必须由CPT模块调用;在XML配置文件中也是一样的,send元素为cpt元素的子元素。

  (2)执行器:
      执行器将接收到的数据入库执行,可以和目标端数据库处于不同机器。执行器有MGR模块、EXEC模块、NET接收子模块组成。XML配置文件中对应的元素为base、exec、recv。recv元素是exec元素的子元素。执行器中主要的模块是EXEC模块,主要用来进行数据入库。

3.  DMHS技术优势
高可扩展性:适应各种异构数据平台
高可用性:基于日志的结构化数据同步技术
实时同步:采用并行处理体系,实时读取主机源数据库日志
高可靠性:DMHS数据同步以源数据库的事务为单位,且严格主机业务系统事务顺序实施数据同步。粒度为事务级粒度;为保障数据传输的无丢失,DMHS使用检查点机制实现断点续传
备机可读写:DMHS的备机数据库系统是一套独立的可读写数据库系统
同步内容可定
快捷部署
跨平台
4.   MGR管理模块-调度管理
      MGR是DMHS同步服务的启动框架,根据配置文件加载并启动:日志分析(CPT)、数据传输(NET)、数据入库(EXEC)三个模块。

当MGR启动捕获器功能时,MGR会调度CPT模块和NET模块(发送子模块)
当MGR启动执行器功能时,MGR会调度EXEC模块和NET模块(接收子模块)
当MGR启动转发器或路由器功能时,会调度NET模块(接收子模块和发送子模块)
        

5.  CPT模块-日志捕获
    

日志读取线程:负责读取交易日志数据,并按照数据库中定义的逻辑单元,对文件数据进行分割,将分割后的逻辑单元添加到日志分析链表中。当前交易日志读取完成后,该线程会自动获取下一个交易日志,进行数据读取。

日志分析线程:负责解析日志逻辑单元,解析完成后,会生成DMHS消息,并将DMHS消息添加到发送链表中。

日志发送线程:负责与NET模块进行交互。该线程从发送链表中获取DMHS消息,调用NET模块功能,将DMHS消息根据过滤规则发送到目标端或丢弃。

日志文件处理线程:负责交易日志信息的处理及物理文件的处理,CPT模块在运行过程中,根据最小的LSN对交易日志进行处理。

CPT模块基本配置:

      1)CPT模块对应配置文件中的XML元素为cpt,cpt模块的所有参数都是作为cpt元素的子元素存在,cpt模块需要调用NET发送子模块参数配置,对应的元素为send元素。

      2)CPT模块的日志读取与分析功能需要获取源端数据库信息,日志发送使用的网络发送功能(发送子模块<send>)需要获取目标端信息及过滤信息。

6.  NET-数据传输
NET模块主要分为两个部分:发送子模块(<SEND>)、接收子模块(<RECV>),在同步中承担节点之间数据的接发任务。

原理解析:

NET模块在各个功能模块之间,负责连接通信,信息交换和负责传输

1)表操作过滤:同步的过程中,NET模块根据配置,依照黑白名单的条件,将消息发送到目标端

2)列值转换及过滤

3)消息的本地存储:NET模块可将接收到的DMHS消息进行本地存储,可保证增量数据不丢失。

4)消息的本地读取:NET模块可从本地存储中读取DMHS消息,发送到目标端。

5)消息的FTP远程读取:NET模块可从远程FTP服务器中读取DMHS消息,发送到目标端。

6)消息的发送及接收:DMHS各站点之间数据的传递都是使用NET模块完成的。

过滤规则执行流程:

首先验证黑名单,如存在,则不允许同步
接着验证白名单,如存在,则允许同步
如果白名单也不存在,则不允许同步
 

操作过滤规则:

支持的操作包括:INSERT、DELETE、UPDATE、DROP、CREATE、TRUNCATE、ALTER、LOB

(2)接收子模块
    1)接收子模块可对网络、本地磁盘、FTP服务器获取数据,按照参数配置,将接收到的数据保存到本地文件或将数据提供给其他模块使用。

    2)接收子模块,对应着dmhs.hs配置文件中的<recv>元素。当NET模块接收的消息来源于NET网络数据时,NET接收子模块必须配置为网络接收方式。在NET接收子模块配置了data_port参数后,NET接收子模块。

7.  EXEC-数据入库
    (1)原理解析:
      DMHS在数据同步的时候,源端不同数据库的交易日志经过CPT的解析,封装成统一的数据格式,经过NET模块一级级投递,EXEC通过RECV模块接收到源端的数据以后,对接收到的数据提取进行事务归类。在明确收到提交操作后,再把提交的事务交由执行线程进行入库处理。
    

    EXEC模块在事务数据入库时,采用ODBC标准的接口操作数据库。

(3)EXEC基本配置
     EXEC在配置文件中对应的XML元素为<exec>,运行EXEC模块,必须设置NET接收子模块参数、目标端数据库连接信息,事务入库方式。

NET接收子模块参数
    用于获取源端数据,对应的元素为<recv>;MGR模块调度NET接收子模块进行数据接收,并将数据供给EXEC模块进行事务入库。

数据库连接信息
    EXEC模块在进行数据入库的时候,采用标准的ODBC驱动接口来访问数据库,使用的时候需要配置ODBC连接字符串所需要的相关参数。

数据入库方式
    执行端的事务入库方式设置参数包括:允许缓存事务的个数:exec_trx、是否启用事务合并功能:enable_merge、事务出错时的执行策略:exec_policy、事务入库的事务提交策略:commit_policy、数据入库的工作线程数:exec_thr、数据入库时允许的最大批量行数exec_rows。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值