(11)达梦DMHS技术原理及应用介绍

在上一篇博客里,我们对达梦数据库MPP大规模并行处理集群进行了动手部署实践。本篇技术分享文章是对达梦DMHS技术原理的学习。

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

达梦数据实时同步软件(DMHS)是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。产品通过采用秒级实时数据同步复制技术,可以有效避免传统备份系统导致的无法完全满足企业对于信息系统不中断服务的问题;通过变化日志捕捉可以有效降低传统ETL工具因创建触发器、影子表等对业务系统带来的性能影响;利用可读写的备机数据库系统可以解决传统备机系统仅作为后备而无法对外提供数据服务的问题。不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制。通过实时的数据同步,构建“双活”的主备系统,解决传统基于数据库自身的主备系统中备机只读而无法对外提供写服务的问题。

DMHS基于成熟的关系数据模型和标准接口,支持多种软硬件平台,能够灵活的配置出一对一、一对多、多对一、多对多以及级联等多种形式的复制拓扑结构,在应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发、多业务中心等业务领域得到了广泛应用。

2、DMHS系统的核心功能概念及技术原理

DMHS 的基础实现原理如下图所示。

(11)达梦DMHS技术原理及应用介绍_第1张图片

DMHS 组成原理框图

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

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

2.1 DMHS 系统组成及技术原理

DMHS 同步服务主要包括四个模块,分别是捕获模块(CPT)、装载模块(LOAD)、传输模块(NET)以及执行模块(EXEC),这些模块统一由管理模块(MGR)进行管理执行。

(11)达梦DMHS技术原理及应用介绍_第2张图片

DMHS 模块组成图

管理模块(MGR)是 DMHS 同步服务的启动框架,根据配置文件加载并启动相关的功能模块。

2.1.1 捕获模块(CPT)

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

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

CPT 模块部署在源端数据库,其作用是对源端数据库的增量数据进行抽取。CPT 模块通过解析源端数据库的交易日志,获取数据的增量变化,并将增量变化封装为 DMHS 消息。

CPT 模块在分析交易日志过程中,无需操作数据库,对源端数据库性能几乎没有影响。

CPT 模块是捕获器的主要组成部分,包含 NET 模块发送子模块,并由 MGR 模块调用。

你可能感兴趣的:(大数据)