暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据复制软件DMDRS功能特性及常用概念

学以致用 2024-06-27
280

一、功能特性

1.1 数据迁移

功能特性说明
迁移对象支持表、索引、序列、主键、外键、约束、注释、视图、触发器、函数、存储过程、包、类、同义词和自定义类型数据库对象的迁移。
数据装载分组装载装载表数据时,可以使用分组装载功能对表数据进行快速装载。支持将基表切分成多个部分以便多任务并行装载,并在目标数据库上利用表分组LSN过滤已装载数据日志,以实现表的并发快速装载。
交换分区装载装载分区表数据时,可以使用交换分区功能对分区表数据进行快速装载。根据被装载表的分区分别装载多个基表,并在目标数据库上利用交换分区功能将这些基表合并为同一张表。每个分区都启用一个独立的线程来装载该分区的数据,从而实现多线程并行地装载分区表。
断点续传装载表数据时,根据表数据量的大小采用不同的装载方式,数据量小的表会整表装载,数据量大的表会将数据分割为多个小数据集后再装载。在装载过程中,DMDRS会记录每个数据集的装载状态。根据装载状态进行不同处理,对未开始装载的数据集继续装载,对装载错误的数据集进行重装,对已成功装载的数据集则不处理,从而实现表数据的装载断点续传功能。
快速装载如果目标数据库支持快速装载接口(如Oracle 、DM),装载表数据时,可以使用快速装载功能,目标DMDRS接收到装载数据后,会使用数据库提供的快速装载接口进行数据入库,加快装载效率。

1.2 数据同步

功能特性说明
数据装载分组装载装载表数据时,可以使用分组装载功能对表数据进行快速装载。支持将基表切分成多个部分以便多任务并行装载,并在目标数据库上利用表分组LSN过滤已装载数据日志,以实现表的并发快速装载。
交换分区装载装载分区表数据时,可以使用交换分区功能对分区表数据进行快速装载。根据被装载表的分区分别装载多个基表,并在目标数据库上利用交换分区功能将这些基表合并为同一张表。每个分区都启用一个独立的线程来装载该分区的数据,从而实现多线程并行地装载分区表。
断点续传装载表数据时,根据表数据量的大小采用不同的装载方式,数据量小的表会整表装载,数据量大的表会将数据分割为多个小数据集后再装载。在装载过程中,DMDRS会记录每个数据集的装载状态。根据装载状态进行不同处理,对未开始装载的数据集继续装载,对装载错误的数据集进行重装,对已成功装载的数据集则不处理,从而实现表数据的装载断点续传功能。
快速装载如果目标数据库支持快速装载接口(如Oracle 、DM),装载表数据时,可以使用快速装载功能,目标DMDRS接收到装载数据后,会使用数据库提供的快速装载接口进行数据入库,加快装载效率。
添加增量同步表支持动态添加或删除增量同步表,在已有同步链路中,添加增量同步表后,源DMDRS会自动进行表的增量数据的同步。
添加同步表支持动态添加或删除同步表,在已有同步链路中,添加同步表后,源DMDRS会自动进行表的全量数据的装载,装载完成后自动进行增量数据的同步。
离线日志解析当只有数据库归档文件和离线字典文件时,DMDRS支持在不连接数据库的情况下,通过指定过滤条件以及LSN范围将数据库归档文件解析成SQL语句存放在文件中。
远程日志读适用于源数据库为DSC、Oracle RAC和MySQL数据库,源DMDRS无需部署在源数据库服务器本地,可以部署在其他服务器通过远程日志读功能,实现远程归档日志实时读取捕获解析,完成数据实时同步。当源数据库为DSC时,DSC必须处于ASM模式。
数据库归档删除支持将源DMDRS已经同步的归档文件删除或者备份到指定目录,防止归档文件对数据库服务器空间的过度占用。
DMDRS主备支持DMDRS主备功能,支持一主一备。DMDRS主备节点分别部署在数据库集群节点或主备集群节点上,当DMDRS主节点所在的数据库节点故障后,能自动切换到DMDRS备节点所在的数据库上继续同步,避免同步中断。
对象映射支持对象名的映射,包括数据库名/容器名、表空间名、模式名和表名。
数据类型映射支持数据类型映射以及映射类型的自定义修改。
分组执行支持在数据执行时,将同步表进行分组,不同分组的事务执行策略、事务合并策略和执行优先级等不相同,用于满足不同场景需求。若一个事务涉及多个表,并且这些表归属不同的分组,会将事务按照表拆分为多个子事务,子事务将作为独立的事务去执行。

1.3 数据订阅

功能特性说明
DML订阅支持通过DSSA API接口订阅同步的DML操作,获取同步数据,包括操作类型、操作事务ID、操作LSN和同步数据等。
DDL订阅支持通过DSSA API接口订阅同步的DDL操作,获取DDL操作的SQL语句。
指定LSN订阅支持指定LSN订阅特定位置的同步消息。
删除流存储文件支持通过DSSA API接口删除指定DSSA LSN所在文件之前的所有DSSA流存储文件。

1.4 数据分发

功能特性说明
高性能、高吞吐量的持久化存储DMDRS与DMDSS服务共同构建高性能的同步分发服务,将源DMDRS的数据进行持久化存储,实现大规模数据量分发,适用一对多的同步场景。
基于映射规则的数据分发目标DMDRS获取分发数据时,支持配置数据映射规则,只获取需要的数据。
基于DMDSS主备的数据分发数据分发支持部署配置为DMDSS主备分发,避免DMDSS单点故障问题。

1.5 数据转换

功能特性说明
实时转换CVT模块与CPT模块或者EXEC模块共同使用,以数据库日志中单个操作作为最小单元进行数据清洗转换,将CPT模块或EXEC模块获取的数据进行实时转换。
可编程提供表名定义、变量定义和转换定义等流程定义语句,支持循环语句、条件语句和返回语句等语法,支持+,-,*,/,not,and,or,like等运算符,支持丰富的转换函数,可实现自定义编程式的转换逻辑编写。
支持转换函数支持自定义系统函数包、支持数据函数、字符串函数、日期时间函数和类型转换函数等。
支持键值对存储提供容器类型的结构支持,容器是指能够存储key-value等键值对,可以保存流程转换过程中的一些信息。例如需要关联查询过滤的情况,可以将关联表的同步操作捕获并存储在容器中,需要时直接在容器中查找,减少与数据库的交互。
支持联机查询提供对数据库的联机查询功能,DMDRS在数据实时转换时,可以联机查询数据库中与转换数据相关的结果集并保存,便于数据转换时关联。

1.6 其他功能特性

功能特性说明
定时调度提供定时调度工具定时自动执行功能调度任务,实现定时执行CVT脚本、定时删除多CPT归档、定时服务守护、定时数据装载、定时数据同步、定时静态数据校验和定时动态数据校验等调度功能。
自动化生成配置文件提供自动化生成XML配置文件功能,以方便用户快速地配置DMDRS服务。
添加跟踪支持对指定对象添加跟踪,查看在运行中与跟踪对象相关操作的信息。一般用于故障的排查。如果DMDRS在日志解析和数据同步等过程中出现故障时,通过查看跟踪信息能快速定位故障点和发生原因,从而排除故障。
查看统计信息提供查看CPT模块、DSS模块、DSSA模块和EXEC模块的运行状态和相关统计信息的功能。
  • CPT模块:支持查看总体装载状态、装载的字典信息、装载的表信息;支持查看统计信息、归档/在线日志文件、离线字典文件、读取/解析/发送/排序/拆分日志信息、表的操作统计信息、事务信息和检查点信息等。
  • DSS模块:支持查看生产者/消费者信息列表、表操作监控开关信息、表的操作统计信息和主备集群信息等。
  • DSSA模块:支持查看统计信息、消费信息、检查点信息、活动事务、分组信息、活动大对象、工作线程信息、生产者/消费者信息列表、表操作监控开关信息和表的操作统计信息等。
  • EXEC模块:支持查看统计信息、消费信息、检查点信息、活动事务、分组信息、活动大对象、工作线程信息、同步表的延迟和字典信息等。
检查点功能检查点是一个数据库LSN值,表示数据同步的断点位置。源DMDRS检查点表示源DMDRS启动分析后的起始分析位置,目标DMDRS检查点表示目标DMDRS启动运行后需要同步执行的断点位置。检查点功能线程会根据同步情况,对源DMDRS和目标DMDRS的检查点数值维护更新,以便能够正确地进行故障恢复和断点续传。
解析DSS日志流并打印到本地支持指定表以及LSN范围将日志流文件解析为SQL语句存放在文件中,以便对DSS的数据流进行监控。

二、常用概念

名称说明
数据装载数据装载是指通过DMDRS的装载功能将源数据库的表数据查询抽取后,传输到下一级DMDRS服务。
对象装载对象装载是指通过DMDRS的装载功能将源数据库的对象查询抽取后,传输到下一级DMDRS服务。
离线字典离线字典是指通过字典装载操作保存在本地磁盘的字典文件。DMDRS在启动运行时,会将这些字典文件中记录的同步表字典信息加载进内存,在数据捕获分析时使用。在产生新的同步对象时,DMDRS会自动创建同步表的字典文件。离线字典也适用于离线日志解析的功能。离线字典由DMDRS自动维护。
Topic主题DMDSS服务按照相应的Topic主题接收并保存源DMDRS发送的同步数据。目标DMDRS可根据指定的Topic主题消费相应的同步数据。
模块名称由于DMDRS服务可以配置多个功能模块,因此在部署源DMDRS服务、目标DMDRS服务、DMDSS服务或者DMDSSA服务时,需要指定模块名称,用于功能模块的启动、停止和维护。
装载分组EXEC模块的一种分组缓存,用于存储源DMDRS发送的全量装载数据。
等待分组EXEC模块的一种分组缓存,用于存储源DMDRS发送的增量同步数据,且受限于数据复制的逻辑关系,这些增量同步数据不能立即应用到目标数据库中,需要存储在该缓存中,在合适时机,才会转移到执行分组,进行执行。
执行分组EXEC模块的一种分组缓存,用于存储源DMDRS发送的增量同步数据,且这些增量同步数据已不受复制事务的逻辑等待限制,可以立即执行,完成数据同步。
DMDSS主备DMDSS服务支持主、备服务,用于保障流存储服务的高可靠性,避免单点故障。当主节点宕机后,源DMDRS与连接至主节点的目标DMDRS将自动连入备节点进行工作。备节点宕机后,连接至该备节点的目标DMDRS将自动连入集群内其他可用节点进行工作。
DMDRS主备源DMDRS服务和目标DMDRS服务支持主、备服务,保障DMDRS数据同步的高可靠性。当主节点服务正常工作时,备节点服务处于就绪等待状态,当出现故障时,备节点接管主节点同步服务,并成为新的主节点,保障数据同步服务的连续性。
检查点检查点是一个数据库LSN值(Oracle数据库为SCN值),表示数据同步的断点位置。CPT可以通过LSN检查点设置日志解析的起始位置。
EXEC可以通过LSN检查点设置同步源数据库的起始位置,也可以通过设置该值实现断点重连。
同步延时同步延时是指目标DMDRS获取同步表的同步延时时间,单位为秒。计算方法为目标DMDRS系统时间减去同步表事务提交时间,其中事务提交时间记录在源数据库日志中,由源DMDRS捕获解析后发送至目标DMDRS。计算同步延时,要求源DMDRS服务器和目标DMDRS服务器系统时间一致,否则会产生计算偏差。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论