源 SQL Server 数据库

此页面包含有关以下内容的信息:

  • Datastream 如何处理从来源 SQL Server 数据库中拉取的数据的行为。
  • Datastream 支持的 SQL Server 数据库版本。
  • 使用 SQL Server 数据库作为源的已知限制。

行为

Datastream 使用 API 来跟踪数据操纵语言 (DML) 变更 CDC 方法:

事务日志

使用此 CDC 方法时,Datastream 会读取来源中的更改 处理事务日志这种方法需要的资源较少, 可加快数据检索速度,但有更多限制

为防止数据丢失,请务必确保日志不会在 Datastream 读取之前被截断。另一方面,如果您保留 它们会占用存储空间,最终可能会导致 实例进入只读模式。

为了确保 CDC 读取器有足够的时间读取日志,同时允许日志截断以释放存储空间,您需要执行额外的配置步骤,例如更改轮询间隔和设置截断保护措施。这些步骤提供了一层额外的保护,可确保 Datastream 即使 Datastream 端停机或出现故障, 源数据库与 Datastream 之间的连接问题。

有关如何应用这些额外措施的详细说明,请参阅 配置源 SQL Server 数据库 页面并选择您的数据库类型。

变更表

通过更改表 CDC 方法,用户可以缩短日志保留时间,因此 可以节省存储空间,但支持的吞吐量低于事务 logs 方法。与事务日志相比,此方法的限制更少。例如: 它消除了因日志截断而导致数据流永久失败的风险, 并且支持复制加密表。如需了解详情,请参阅 已知限制

使用此 CDC 方法时,系统会使用专用更改表跟踪对源的更改。事务日志仍会被使用,但其使用范围会受到限制,并且 无需将其保留更长时间。当 DML 事件应用于 源表,因此这些更改会复制到相应的更改表。 更改表的结构与源表相同, 列中包含这些更改的元数据。只有已提交的事务会添加到更改表中,以及提交操作的日志序列号 (LSN)。

版本

Datastream 支持以下版本和版本的 SQL Server 数据库:

  • 自行管理(本地或云托管)的以下版本:
    • 企业:2008 年及之后
    • Standard:2016 SP1 及更高版本
    • 开发者:2008 年及之后
  • Amazon RDS for SQL Server
  • Azure SQL 数据库(第 S3 层级及更高级别)。

  • Cloud SQL for SQL Server

Datastream 不支持以下版本的 SQL Server 数据库:

  • SQL Server Standard 版本 2008 至 2014
  • SQL Server Express
  • SQL Server Web

已知限制

使用 SQL Server 数据库作为源的已知限制包括:

  • 数据流限 10,000 个表。
  • 无法回填包含超过 5 亿行的表,除非 满足以下条件:
    1. 表具有唯一索引。
    2. 所有索引列均不可为 null。
    3. 索引的所有列都包含在数据流中。
  • 启用了延迟耐用性或加速数据库恢复 (ADR) 的数据库 不受支持。
  • 不支持对系统表进行流式传输更改。
  • 不支持 Windows Active Directory (AD) 身份验证。
  • 以下数据类型不受支持,并且不会复制到目标位置:
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • Datastream 会复制用户定义的数据类型,但它是基础 您从中派生存储在 目标。例如,如果您根据USERNAME VARCHAR(50) 数据类型,数据将作为 VARCHAR(50) 存储在目标位置。
  • 对于没有唯一索引的表中的大型对象列 (TEXTNTEXTXMLIMAGE) 和最大可变长度列 (VARCHAR(MAX)VARBINARY(MAX)NVARCHAR(MAX)),Datastream 不支持 CDC。

    如果数据流中不包含大型对象列,则支持 CDC。

  • Datastream 不支持数据遮盖。无需复制数据, 遮盖。

  • Datastream 不支持复制应用于数据库的更改 使用数据层应用包 (DACPAC) 包。

  • Datastream 不会复制使用 WRITETEXTUPDATETEXT 语句。

  • Datastream 不支持复制计算列

  • Datastream 不支持 PAGECOLUMNSTORECOLUMNSTORE ARCHIVE 压缩类型。

使用事务日志方法时的其他限制

如果您使用事务日志 CDC 方法,则还存在以下额外限制 应用:

  • 不支持透明数据加密 (TDE)。
  • 不支持列级加密。这些列中的数据将替换为 NULL 值。
  • Datastream 不支持 ROLLBACK TO SAVEPOINT 语句。 此类回滚事件会被忽略,并且不会复制到目标位置。
  • Datastream 不支持对大小超过 8 KB 的行进行 CDC 以下类型的表:
    • 没有唯一索引的表
    • 仅包含具有一个或多个唯一非聚类索引的表 长度可变的列(VARCHARVARBINARYNVARCHAR
  • Datastream 不支持以下类型表中的大型对象列 (TEXTNTEXTXMLIMAGE) 的 CDC:

    • 没有唯一索引的表
    • 仅包含一个包含一个或多个可变长度列(VARCHARVARBINARYNVARCHAR)的唯一非分片索引的表

    如果数据流中不包含大型对象列,则仅支持 CDC (前提是这些表具有有效索引)。

后续步骤