一、功能特性
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。