达梦数据实时同步软件DMHS介绍和原理

1、产品介绍

        达梦数据实时同步软件(以下简称 DMHS)是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制。

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

2、产品特点

  • 高通用性
    • 跨平台软硬件支持:面对日趋复杂的计算机环境具有极好的适应性。
  • 灵活可配置
    • 体系结构高可扩展:开放式的体系结构可以实现多种复制拓扑结构。
    • 数据同步内容可定制:支持数据筛选、过滤、转换、压缩和加密。
    • 轻量级设计实现快捷部署:能够在不中断业务的情况下,将主机数据库中的当前数据平滑地装载到备机数据库中。
  • 性能良好
    • 确保业务系统高可用:复制对主机源数据库系统几乎无影响,备机可实现业务系统快速切换和恢复。
    • 高效的数据实时同步:采用并行处理技术实现大批量数据的实时复制。
    • 可读写的备机系统:可以实现生产型业务与分析型业务相隔离的多业务中心。
  • 传输可靠
    • 高可靠的数据传输:严格按照主机业务系统事务顺序实施数据复制,保障备机数据库与主机数据库的事务级完整性和一致性。

3、支持多种异构数据平台

  1. DMHS 可以支持多种异构数据平台,可以根据用户需求采用非常灵活的方式配置出各种拓扑结构。 目前,源数据库可支持 DM 各系列、Oracle9i、Oracle10g、Oracle11g、Oracle12c、Oracle19c、ORACLE RAC 集群、DB2、PostgreSQL、MySQL 等。目的数据库支持具有 ODBC 标准接口实现的各种主流关系数据库管理系统,目前适配过的数据库有 DM 各系列、DM 集群、Oracle9i、Oracle10g、Oracle11g、Oracle12c、Oracle19c、ORACLE RAC 集群、DB2、Sybase、SQLServer、PostgreSQL、MySQL 等。
  2. DMHS 支持多种计算机操作系统平台,支持 Windows 系列、Linux 系列、IBM AIX、HP-UNIX 系列、Solaris 系列、国产操作系统 Kylin、Rocky 等 32 位和 64 位操作系统。
  3. DMHS 支持多种复制结构,支持不同厂商硬件(主机、存储)之间数据库的数据复制。DMHS 的开放式体系结构使其能够适应各种异构数据平台。DMHS 支持一对一同步 、一对多广播型同步 、多对一聚合型同步 、双向同步、多对多同步、多级中转级联同步等多种数据同步形式,支持组合多种同步形式以搭建复杂的拓扑结构。DMHS 支持主流厂商的硬件(主机、存储)之间数据库的数据复制,例如 IBM、HP、联想、华为、浪潮、曙光等硬件厂商,兼容多种硬件体系,可运行于于 X86、SPARC、POWER 等硬件平台之上,还支持龙芯、鲲鹏、飞腾、海光、兆芯、神威等国产 CPU 硬件平台,产品实现了平台无关性。DMHS 能够在目前流行的各种软硬件平台和数据库环境下传输数据,在同一解决方案架构下,实现企业不同平台上的多个信息系统的统一复制的支持。

4、高可靠的数据复制能力

        为保障数据传输内容的正确性,DMHS 对复制的数据内容做了 CRC 校验,保证收到的数据是可靠无误的,DMHS 对复制数据先后顺序也做了严格的一致性验证,保证数据复制传递过程是有序的。为保障数据传输的无丢失,DMHS 使用检查点机制实现断点续传。断点包括两个部分,即 DMHS 前置的变化数据捕捉模块数据抽取位置检查点和 DMHS 主程序的数据装载模块的已装载位置检查点。DMHS 的前置模块与主程序模块采取完备的消息应答机制来保障数据传输的可靠性和数据完整性。前置模块只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据。

        DMHS 支持初次数据装载全同步功能,能够在不中断业务的情况下,将源数据库中的当前数据平滑的装载到目标数据库中。DMHS 提供快速装载方式可针对源数据库历史的大量数据做到高效快速的初始化装载到目标数据库中。DMHS 提供丰富的装载选项可满足多种场景下的需求,用户可灵活组合使用。

        DMHS 的数据复制是通过分析源数据库的日志后以源端事务为单位发送给目标数据库的,源数据库日志中记录的事务是严格有序的,目标数据库严格按照源数据库上的事务顺序在目标数据库上实施数据复制同步,目标数据库上所执行的事务一定是源数据库已经提交完成的事务,DMHS 可保障目标数据库与源数据库的事务级完整性和一致性,确保目标数据库数据复制事务的业务逻辑符合源数据库上事务的业务逻辑。

5、支持数据库的所有主流类型字段

        DMHS 是目前业内成熟的数据复制和数据实时同步软件,支持目前主流所有数据库的数据类型字段同步,支持数值类型 (NUMBER、NUMERIC、DECIMAL、DEC、INTEGER、INT、SMALLINT、FLOAT、REAL、DOUBLE PRECISION、BINARY_FLOAT、BINARY_DOUBLE)、字符类型 (CHAR、VARCHAR、NCHAR、NVARCHAR2)、二进制数据类型 (BINARY、VARBINARY)、时间日期类型 (DATE、TIME、DATETIME、INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND)、大对象类型 (CLOB、BLOB、NCLOB、LONG、LONG RAW) 等主流类型字段的同步。

6、实现原理

达梦数据实时同步软件 DMHS,通过秒级数据实时同步可以有效避免传统备份系统导致的无法完全满足企业对于信息系统不中断服务的问题;通过变化日志捕捉可以有效降低传统 ETL 工具因创建触发器、影子表等对业务系统带来的性能影响;通过实时的数据同步,构建“双活”的主备系统,解决传统基于数据库自身的主备系统中备机只读而无法对外提供写服务的问题。
DMHS 的基础实现原理如下图所示。

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

在源端,DMHS的 CPT 模块采用优化的日志扫描算法实现增量日志数据的快速捕获分析,并将分析完成后的日志数据转换为内部的消息格式,然后通过网络将消息发送至目标端DMHS服务;

在目标端,DMHS服务接收到源端的日志消息后,对消息进行处理,通过多线程并行执行的方式将同步数据应用至目标端数据库,实现数据实时同步。

7、dmhs系统组成

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

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

1. 捕获模块(CPT)

        对源数据库增量日志进行捕获并完成解析,结合数据字典信息提取其中数据的变化如插入(INSERT)、删除(DELETE)、修改(UPDATE)和对象操作(DDL),然后将这些
操作及数据转换为内部的消息格式投递给网络(NET)模块。

        不同的源数据库管理系统具有不同的日志格式,但是在日志文件中通常都会记录操作的类型、操作的时间戳、事务 ID、操作数据等信息。DMHS 源端针对每一种支持的关系型数据库系统,均提供有相应的日志捕获分析模块,用以识别和解析不同的关系型数据库系统的日志数据。管理服务(MGR)中提供有通用的调用接口,通过配置的数据库类型,调用相应的日志分析模块。

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

2. 装载模块(LOAD)

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

        数据初始装载的有两种方式:直接的数据装载方式和备份文件装载方式。直接的数据装载方式基于源数据库数据的直接查询抽取装载;备份文件装载方式则是基于数据库自身的数据备份还原,将源库初始数据备份后在目标库进行还原达到初始数据一致。备份文件装载方式要求源库和目标库为同一类型的数据库系统,目前 DMHS 仅支持 DM 数据库的备份文件装载方式。

        初始装载使用 LOAD/COPY 控制台命令,该命令可以在不中断源数据库服务的情况下把源表初始基础数据装载到目的库上,同时配合日志分析模块完成该表后续的增量数据同步。初始装载模块不能跟日志分析模块同时运行,在执行 COPY 命令时,必须首先使用 STOP CPT 命令停止日志捕获分析模块的运行。

3. 传输模块(NET)

(1) NET 消息发送子模块

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

(2) NET 消息接收子模块

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

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

4. 执行模块(EXEC)

        DMHS 目标端通过 NET 模块接收源端发送过来的日志消息,然后把这些消息按事务分类,如果某个事务上收到了提交消息,则通过 SQL 逆向生成的技术构造还原相应的事务 SQL语句,使用 ODBC 驱动接口对这些数据进行入库执行,完成数据同步;如果某个事务在源端回滚,则直接丢弃不执行。
        EXEC 模块使用多线程并行执行的方式,对多个提交事务同时进行入库执行,以提高入库执行的效率。由于事务之间的关联关系以及事务提交策略的影响,多个执行线程之间可能存在一定的等待关系,以满足事务的逻辑要求。EXEC 模块还可以通过事务合并、事务分裂等事务重组技术,以及 rowid 映射、批量绑定执行等技术加快同步执行的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机msvcp140.dll丢失如何解决,分享3个简单有效的方法

在计算机系统运行过程中,用户有时会遇到一个常见的错误提示——msvcp140.dll文件缺失,这一问题的发生往往会导致部分软件无法正常启动或运行。“针对计算机系统中出现的msvcp140.dll缺失问题,小编将详尽阐述并探讨5种有效的解决策略。每一种方…

Linux的SSH服务

一.SSH服务简介 1.什么是SSH SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应…

java大学生宿舍共享厨房系统宿舍自习室宿舍洗衣房系统源码包含技术文档

主要功能:学生可注册登录,预约自己宿舍楼栋的共享厨房和评价,也可以使用该楼栋的洗衣房,查看洗衣机吹风机的使用情况和报修,还可以进入该楼栋自习室打卡和评价。管理员可管理所有的学生和宿管,分配宿舍&…

【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】

前言 大家好吖,欢迎来到 YY 滴C考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《…

【MATLAB源码-第110期】基于matlab的哈里斯鹰优化算发(HHO)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 哈里斯鹰优化算法(Harris Hawk Optimization, HHO)是一种受自然界捕食行为启发的优化算法。它基于哈里斯鹰的捕猎策略和行为模式,主要用于解决各种复杂的优化问题。这个算法的核心特征在于…

神经辐射场(NeRFs)的研究进展

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读:神经辐射场(NeRFs)的研究进展1、研究背景2、方法发展3、相关方法3.1、Pixel NeRF3.2、RegNeRF3.3、Mip-Ne…

全链路追踪关键技术-TraceId、SpanId生成规则

链路追踪的traceid原理梳理 如何追踪微服务调用? ● traceId,用于标识某一次具体的请求ID。当用户的请求进入系统后,会在RPC调用网络的第一层生成一个全局唯一的traceId,并且会随着每一层的RPC调用,不断往后传递&…

FFmpeg 的使用与Docker安装流媒体服务器

本文阐述的均为命令行的使用方式,并不牵扯FFmpeg 的 C音视频开发内容,补充一句,C的资料真的少,能把C学好的人,我真的是觉得巨佬。 我主要是使用FFmpeg 推流方面的知识,案例大都是靠近这方面。 一、FFmpeg…

leetcode 125. 验证回文串

题目: 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true &…

【开源项目】深圳智慧城市~超经典CIM/BIM数字孪生可视化项目

飞渡科技数字孪生城市运行管理平台,以数字孪生为核心底层系统,将实景三维、大数据、云计算、人工智能等新一代技术,与城市管理服务相融合,构建高速率、高可靠和低延时的应用场景,打造全程全时、全模式全响应的数字孪生…

跨境电商必备:好用的邮箱推荐与实用指南

对于跨境电商企业而言,一封精炼、高效的邮件往往成为与国外买家或供应商沟通的利器。因此挑选一个得心应手的邮箱供应商,对于确保业务畅通无阻至关重要。本文将深入浅出地探讨跨境电商如何挑选邮箱,并推荐一些备受青睐的邮箱服务供应商。 一、…

LeNet-5(fashion-mnist)

文章目录 前言LeNet模型训练 前言 LeNet是最早发布的卷积神经网络之一。该模型被提出用于识别图像中的手写数字。 LeNet LeNet-5由以下两个部分组成 卷积编码器(2)全连接层(3) 卷积块由一个卷积层、一个sigmoid激活函数和一个…

GitHub项目推荐-incubator

项目地址 Github地址:GitHub - apache/incubator-anser 官网:Apache Answer | Free Open-source Q&A Platform 项目简述 这是Apache的一个开源在线论坛,也可以部署成为一个自有的QA知识库。项目主要使用了Go和Typescript来开发&#…

微服务治理:微服务断路器(微服务故障隔离模式)详解

微服务断路器是一种设计模式,可以保护系统免于级联故障,通过限制对故障服务的调用来实现。它的工作原理类似于电气断路器:当服务遇到问题时,它会切断请求流,使其有机会恢复,并防止其他服务被压垮。 工作原…

短视频抖音文案策划创作运营手册资料大全

【干货资料持续更新,以防走丢】 短视频抖音文案策划创作运营手册资料大全 部分资料预览 资料部分是网络整理,仅供学习参考。 抖音运营资料合集(完整资料包含以下内容) 目录 制作短视频的四部曲 主题 主题是短视频脚本的基调…

(学习日记)2024.01.13:一份关于自行车定位的调研 2

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Springboot读取配置文件

多种配置文件格式 springboot项目中不同配置文件的优先加载顺序 为:properties> yml >yaml>自定义核心类配置 自定义配置文件的加载 一般系统会加载默认的application.properties或者application.yml,但如果使用自定义配置文件,可使用下面方…

计算机毕业设计-----SpringBoot招聘网站项目

项目介绍 SpringBoot招聘网站项目。主要功能说明: 管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历等功能。 用户角色包含以下功能:用户首页,登录注册,职位查看,职位详情,投递简历,查看我的申请,管理个人简历,附件简历管理…

【Linux】应用与驱动交互及应用间数据交换

一、应用程序与 Linux 驱动交互主要通过以下几种方式: 1. 系统调用接口(System Calls): 应用程序可以通过系统调用,如 open(), read(), write(), ioctl(), 等来与设备驱动进行交互。这些调用最终会通过内核转发到相应的驱动函数…

AI剪辑助手:轻松剪辑专注创意,视频批量AI智剪的方法

随着科技的飞速发展,人工智能(AI)在许多领域都展现出了强大的能力。在视频剪辑领域,AI剪辑助手的出现,给内容创作者带来了前所未有的便利。它不仅能快速、高效地完成视频剪辑工作,还能释放创造力。今天一起…