DM数据库_DMHS介绍

目录

1 数据实时同步软件(DMHS)简介

2 DMHS系统组成原理及功能概述

2.1 总体架构

2.2 DMHS系统组成

 2.2.1 捕获模块(CPT)

2.2.2 装载模块(LOAD)

2.2.3 传输模块(NET)

2.2.4 执行模块(EXEC)

2.3 DMHS系统功能

2.3.1 捕获器

2.3.2 执行器

2.3.3 路由器

2.3.4 转发器

3 系统特性

3.1 高扩展性

3.2 高可用性

3.3 实时同步

3.4 高可靠性

3.5 备机可读写

3.6 同步内容可定制

3.7 快捷部署

3.8 跨平台


数据实时同步软件(DMHS)简介

达梦数据实时同步软件 DMHS 是支持异构环境的高性能、高可靠和高可扩展的数据库实时同步系统其基于成熟的关系数据模型和标准接口,跨越多种软硬件平台实现秒级数据实时同步。可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发和多业务中心等业务领域。

在大数据、云计算时代,面对日趋复杂的计算环境,DMHS 具有较好的平台适应性,支持主流的硬件平台架构如 x86_64、arm64、SPARC、POWER 以及国产飞腾、龙芯等;支持主流的操作系统平台如 Windows、Linux、AIX、HP-UX、Kylin 等。

2 DMHS系统组成原理及功能概述

2.1 总体架构

图2.1 DMHS组成原理框图

DMHS 的组成原理框图中包含源端数据库、目标端数据库、源端 DMHS 服务以及目标端 DMHS 服务,其中源端 DMHS 服务主要由装载模块(LOAD)、日志捕获分析模块(CPT)以及管理服务模块(MGR)组成;目标端 DMHS 服务则由执行模块(EXEC)和管理服务模块(MGR)组成。

在源端,DMHS 的 CPT 模块采用优化的日志扫描算法实现增量日志数据的快速捕获分析,并将分析完成后的日志数据转换为内部的消息格式,然后通过网络将消息发送至目标端DMHS 服务;在目标端, DMHS 服务接收到源端的日志消息后,对消息进行处理,通过多线程并行执行的方式将同步数据应用至目标端数据库,实现数据实时同步。

2.2 DMHS系统组成

DMHS 同步服务主要包括四个模块,分别是捕获模块(CPT)、装载模块(LOAD)、传输模块(NET)以及执行模块(EXEC),这些模块统一由管理模块(MGR)进行管理执行。管理模块(MGR)是 DMHS 同步服务的启动框架,根据配置文件加载并启动相关的功能模块。

图2.2 DMHS 模块组成图

 2.2.1 捕获模块(CPT)

对源数据库增量日志进行捕获并完成解析,结合数据字典信息提取其中数据的变化如插入(INSERT)、删除(DELETE)、修改(UPDATE)和对象操作(DDL),然后将这些操作及数据转换为内部的消息格式投递给网络(NET)模块。DMHS 源端针对每一种支持的关系型数据库系统,均提供有相应的日志捕获分析模块,用以识别和解析不同的关系型数据库系统的日志数据。

在启动日志分析模块时,首先要进行数据字典装载操作,生成同步表的字典目录,保存完字典信息后才能启动日志捕获分析模块。DDL 操作的捕获分析同步有 2 种方式,分别是基于系统事件触发器的捕获分析和基于数据库日志的捕获分析。

2.2.2 装载模块(LOAD)

DMHS 在进行增量数据同步之前,需完成同步表的字典装载和表数据的初始装载。表字典装载将所有同步表的数据字典信息从源库中抽取出来,保存为本地的数据字典文件,用于数据同步过程中提供准确表定义信息。

数据初始装载用于将源端数据库的初始数据同步至目标数据库,使得源库和目标库的初始数据保持一致。数据初始装载的有两种方式:直接的数据装载方式和备份文件装载方式。

1)直接的数据装载方式基于源数据库数据的直接查询抽取装载;

2)备份文件装载方式则是基于数据库自身的数据备份还原,将源库初始数据备份后在目标库进行还原达到初始数据一致。要求源库和目标库为同一类型的数据库系统,目前 DMHS 仅支持 DM 数据库的备份文件装载方式。

初始装载使用 LOAD/COPY 控制台命令,该命令可以在不中断源数据库服务的情况下把源表初始基础数据装载到目的库上,同时配合日志分析模块完成该表后续的增量数据同步。

初始装载模块不能跟日志分析模块同时运行,在执行 COPY 命令时,必须首先使用 STOP CPT 命令停止日志捕获分析模块的运行。

2.2.3 传输模块(NET)

1)NET 消息发送子模块(SEND)

经过 CPT 捕获到的日志操作,在这里进行分发,分发前可以对操作进行过滤,或者对表进行过滤和映射,还可以对消息中的列进行映射(改名、剔除和函数计算)。经过处理的消息通过网络(TCP/IP)发送给下一级,或者保存到本地文件。

2)NET 消息接收子模块(RECV)

经上一级 NET 消息发送子模块通过网络传输的消息,在这里由 NET 消息接收子模块通过网络(TCP/IP)接收并发送给 EXEC 模块。而上一级 NET 消息发送子模块保存消息的本地文件目录,既可以是一般的本地文件目录,也可以是提供 FTP 服务的 FTP 文件目录。当上一级 NET 消息发送子模块将消息保存在一般本地文件目录时,NET 消息接收子模块读取本地文件并发送给 EXEC 模块;当上一级 NET 消息发送子模块将消息保存在 FTP 文件目录时,NET 消息接收子模块可通过 FTP 服务器下载数据,并发送给 EXEC 模块。

除了作为 CPT 模块和 EXEC 模块的传输媒介外,NET 模块还能够单独实现转发和路由功能,这两个功能需要在配置文件中独立配置,通过转发和路由功能实现多对多、一对多、文件中转和 FTP 中转的高级功能。

2.2.4 执行模块(EXEC)

DMHS 目标端通过 NET 模块接收源端发送过来的日志消息,然后把这些消息按事务分类,如果某个事务上收到了提交消息,则通过 SQL 逆向生成的技术构造还原相应的事务 SQL语句,使用 ODBC 驱动接口对这些数据进行入库执行,完成数据同步;如果某个事务在源端回滚,则直接丢弃不执行。

EXEC 模块使用多线程并行执行的方式,对多个提交事务同时进行入库执行,以提高入库执行的效率。由于事务之间的关联关系以及事务提交策略的影响,多个执行线程之间可能存在一定的等待关系,以满足事务的逻辑要求。EXEC 模块还可以通过事务合并、事务分裂等事务重组技术,以及 rowid 映射、批量绑定执行等技术加快同步执行的效率。

2.3 DMHS系统功能

为适应不同的应用场景,DMHS 提供的功能可以细分为捕获器功能、执行器功能、路由器功能、转发器功能。

2.3.1 捕获器

捕获器将源端数据库日志读取解析后发送出去,它必须与源端数据库在同一台机器上。

捕获器由 MGR 模块、CPT 模块、NET 发送子模块组成,XML 配置文件中对应元素为 base、cpt、send。NET 发送子模块不能单独存在,必须由 CPT 模块调用;在 XML 配置文件中也是一样的,send 元素为 cpt 元素的子元素。

捕获器中包含日志分析模块 CPT,由于日志分析需要用到数据库中的表信息,所以捕获器在首次启动时,要进行初始化加载需要同步的表的字典信息,把这些信息存放到本地。即使源数据库中断了服务,也不会影响日志分析。因此需要在捕获器中配置源数据库连接相关的信息,包括连接数据库的用户名和口令。

2.3.2 执行器

执行器将接收到的数据入库执行,它可以与目标端数据库处于不同机器。

执行器由 MGR模块、EXEC 模块、NET 接收子模块组成,XML 配置文件中对应元素为 base、exec、recv。NET 接收子模块不能单独存在,必须由 EXEC 模块调用;在 XML 配置文件中也是一样的,recv 元素为 exec 元素的子元素。

执行器中的主要模块 EXEC 模块,主要用来进行数据入库,为了兼容大多数的数据库,它采用了标准的 ODBC 驱动接口和符合 SQL92 标准的 SQL 语句来访问数据库。此处需要配置的参数有数据库连接信息、事务缓存信息以及事务入库的方式等。数据入库往往是DMHS 数据同步的性能瓶颈所在,所以这块参数配置非常的重要,需要结合实际的运行环境,源端应用事务的特点来针对性的配置,实现入库性能的最大化。

2.3.3 路由器

路由器一般配置在第三台机器上,对捕获器中 CPT 模块和执行器中的 EXEC 模块进行映射,从而实现跨网关同步,并且一个路由服务可以实现 N 对 N 的映射。

路由器由 MGR模块、NET 接收子模块、NET 发送子模块组成,XML 配置文件中对应元素为 base、route、recv、send。NET 接收子模块和 NET 发送子模块由 MGR 模块调度,从而实现路由功能;在XML 配置文件中 recv 元素和 send 元素均为 route 元素的子元素。

路由器适用在捕获器和执行器被网关隔断的环境,捕获器中的 CPT 模块和执行器中的EXEC 模块无法通过 NET(捕获器的 NET 发送子模块及执行器的 NET 接收子模块)实现网络直连,需要经过第三台机器中转的情况。

2.3.4 转发器

转发器将接收到的数据通过网络进行转发或是直接落地成本地文件。网络转发可以实现异步的一对多的需求,而落地成本地文件可以实现 FTP 的同步模式或者穿透网闸的需求。

转发器由 MGR 模块、NET 接收子模块、NET 发送子模块组成,XML 配置文件中对应元素为 base、transfer、recv、send。NET 接收子模块和 NET 发送子模块由 MGR 模块调度,从而实现转发功能;在 XML 配置文件中 recv 元素和 send 元素均为 transfer 元素的子元素。

转发器适用在一个捕获器需要对应多个执行器的环境,或者捕获器和执行器之间存在物理隔离网闸,无法通过网络直连需要通过文件中转的情况。

转发和路由的不同在于,路由是 N 对 N 网络链路的映射,它不能对链路中的数据进行修改,而转发功能则可以针对每个下一级配置不同的过滤和映射。

3 系统特性

3.1 高扩展性

DMHS 的开放式体系结构使其能够适应各种异构数据平台。系统安装部署简单但功能强大,可以根据用户需求采用非常灵活的方式配置出各种拓扑结构,包括一对一同步、一对多广播型同步、多对一聚合型同步、多对多同步以及级联同步等多种数据同步形式,满足用户的各种复杂数据同步需求。

3.2 高可用性

DMHS 采用基于日志的结构化数据同步技术,实时数据同步不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响。DMHS 提供业务连续性支持,备机数据库系统始终出于活动状态。在非计划性停机导致主机业务系统无法工作时,可在 DMHS 的备机数据库系统上及时接管业务,实现业务系统快速切换和恢复,保持业务连续并使数据损失最小化。

3.3 实时同步

DMHS 采用并行处理体系,能够实时读取主机源数据库日志,以较低的资源占用实现大批量的数据实时同步。传输过程中,DMHS 直接通过 TCP/IP 进行网络传输,无需依赖于数据库自身的传递方式,通过对传输对数据进行筛选和压缩,还可以进一步降低带宽需求。

3.4 高可靠性

数据在传输过程中可能因为网络故障而导致传输中止。为保障数据传输的无丢失,DMHS 使用检查点机制实现断点续传。

3.5 备机可读写

与传统仅作为后备而无法对外提供数据服务的备机系统不同,DMHS 的备机数据库系统是一套独立的可读写数据库系统。通过高可靠的数据传输,DMHS 备机数据库系统中的数据可以在业务处理逻辑上与主机系统完全保持一致。应用系统通过简单配置,就可以使用 DMHS 的备机系统分担主机业务系统上的负载,提高业务系统效率。

3.6 同步内容可定制

DMHS 支持同步数据可筛选、数据过滤和简单的数据转换,实现满足业务需求的按需同步,有效的降低网络通信代价和存储成本。DMHS 数据筛选通过用户在需要同步的表上定义过滤和转换规则来实现。

3.7 快捷部署

DMHS 支持初次数据装载全同步功能,能够在不中断业务的情况下,将主机数据库中的当前数据平滑的装载到备机数据库中。

3.8 跨平台

目前主机源数据库支持 DM6、DM7、Oracle9i、Oracle10g、Oracle11g、DB2、MySQL、PostgreSQL、 SQLServer。备机目的数据库支持可通过 ODBC接口连接的各种主流关系数据库管理系统。

更多内容可前往达梦学习社区了解:https://eco.dameng.com/

​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值