阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。

作者:洪鹏飞(鸿冥)



阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。

点击立即体验DTS SQL Server迁移、同步链路




一、导读

SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。


二、DTS SQL Server逻辑增量能力介绍

为了满足各种数据源和数据结构要求和限制,DTS 提供了如下三种模式来实现逻辑增量能力:

1)基于原生日志解析模式。

2)混合式日志解析模式。

3)轮询查询CDC模式。

基于原生日志解析模式

架构

基于原生日志解析模式中,主要包含四大组件,详细架构设计如下:

1)meta引擎:通过系统基表初始化和实时跟新结构信息。

2)日志抓取引擎:使用 fn_dblog、fn_dump_dblog 抓取日志。

3)事务引擎:聚合相同事务变更,对提交事务进行预处理。

4)日志解析引擎:对 DML 事务解析成通用增量记录;对DDL事务通过meta引擎更新结构信息。

image.png

限制

1)需要借助 fn_dblog、fn_dump_dblog 函数抓取日志。

2)需要 sysadmin 角色执行 fn_dblog 函数。

3)不支持堆表、压缩表、计算列表等等属性表。


混合式日志解析模式

在基于原生日志解析模式基础上,混合式日志解析模式增加了 CDC 反差引擎。DTS对抓取到的增量变更和对应变更表结构,自适应选择日志解析引擎和 CDC 反差引擎,实现增量数据捕获,详细设计架构如下:

image.png

限制

1)需要源库支持开启 CDC 能力。

2)需要提供 fn_dblog、 fn_dump_dblog函数。

2)需要 sysadmin 角色执行 fn_dblog 函数和开启库级别CDC。


轮询查询CDC模式

轮询查询 CDC 模式中,主要包含三大组件:

1)增量事件驱动:捕获源库变更事务信息来驱动 CDC Instance 获取增量变更。

2)增量数据获取:CDC Instance 反差获取指定表的范围增量数据。

3)事务引擎:CDC Instance 反差结果进行事务聚合和事务排序。

限制

1)需要源库支持开启 CDC 的能力。

2)待迁移表不建议超过 1000 张表。

3)增量延迟在10秒左右波动,数据同步实时性较差。


三、常见问题解答

  1. SQL Server中基于原生日志解析、混合式日志解析、轮询查询CDC三种获取增量的模式有什么区别?

基于原生日志解析模式:使用 fn_dblog 抓取、解析原生日志实现增量数据捕获。该模式不依赖源库CDC能力,对源库侵入较小,但是不支持堆表、计算列表等属性表。

混合式日志解析模式:使用 fn_dblog 抓取原生日志作为增量数据捕获驱动,根据表属性不同,自适应驱动日志解析引擎和 CDC 反差引擎。该模式需要开启源库库级 CDC 和部分表 CDC,对源库有一定侵入。

轮询查询CDC模式:该模式需要开启 DTS 待同步所有表的 CDC,通过轮询查询的方式获取源库增量数据。该模式依赖原生 CDC 组件能力,对源库有较大侵入,但是能移除对原生日志解析和混合式日志解析模式对 sysadmin 角色要求和对 fn_dblog 函数依赖等问题,能支持 Azure SQL 和 AWS RDS SQL Server数据库的增量数据捕获。


  1. DTS是否支持 Azure SQL DB、Azure SQL MI、Azure SQL VM、AWS RDS SQL Server 等数据源?

DTS 提供了轮询查询 CDC 模式来获取增量,它通过源库 CDC 组件能力来实现增量数据捕获,能支持Azure SQL DB、Azure SQL MI、Azure SQL VM、AWS RDS SQL Server 等数据源接入。


  1. SQL Server 到 PolarDB-MySQL、ADB-MySQL、ADB-PG 等异构数据库是否支持DDL?

DTS增量支持异构数据库常见 DDL 同步。如上三种增量模式,DTS都会在源库创建 trigger 来捕获原生 DDL,通过语法文件解析原始 DDL语句并映射到目标语法结构,实现异构数据库的 DDL 同步。详细支持语法类型见:

  1. SQL Server -> PolarDB-MySQL:https://help.aliyun.com/zh/dts/user-guide/synchronize-data-from-a-self-managed-sql-server-database-to-a-polardb-for-mysql-cluster
  2. SQL Server -> ADB-MySQL:https://help.aliyun.com/zh/dts/user-guide/synchronize-data-from-an-apsaradb-rds-for-sql-server-instance-to-an-analyticdb-for-mysql-v3-0-cluster


  1. DTS是否支持 AlwaysOn 架构只读节点接入?

仅基于原生日志解析模式支持 AlwaysOn 架构主节点和只读节点接入。但是针对只读节点,DTS无法在源库创建 trigger 和维护心跳表。其中无法创建 trigger 可能会影响 DDL 同步的准确性,无法维护心跳表会影响 DTS 位点汇报。建议使用可写节点接入。


  1. 如果源库 VLF 备份截断了,DTS是否支持通过抓取备份日志实现断点续传?
  1. 针对自建SQL Server,如果备份日志在源实例本地有保存,DTS支持使用 fn_dump_dblog 函数抓取、解析备份日志。
  2. 针对阿里云 RDS SQL Server,DTS 支持从阿里云 OSS 上抓取、解析备份日志。
  3. 其他数据源不支持备份日志抓取和解析。


  1. DTS什么时间在源库创建的资源?什么时间释放这些资源?

客户配置任务,预检查启动任务通过后,DTS 会启动前置模块在源库创建资源。等待客户完成或释放该任务,且没有同源在运行的任务,DTS会启动后置模块来释放资源。


四、快来关注

  1. 数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅、实时同步、校验功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久,是一款沉淀了丰富实践经验的可靠产品。点击了解更多DTS相关信息
  2. 欢迎加入钉群讨论交流:

相关文章
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
777 9
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
494 4
|
SQL 机器学习/深度学习 自然语言处理
Text-to-SQL技术演进 - 阿里云OpenSearch-SQL在BIRD榜单夺冠方法剖析
本文主要介绍了阿里云OpenSearch在Text-to-SQL任务中的最新进展和技术细节。
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
622 0
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
240 0
|
SQL 数据库 索引
SQL Server的六种数据移动方法
1.通过工具DTS的设计器进行导入或导出           DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL   Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动。
1075 0
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1247 152
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
925 156
|
7月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
628 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。

热门文章

最新文章

下一篇
开通oss服务