故障排除:Azure Synapse Link for SQL 初始快照问题

本文是有关排查 Azure SQL 数据库和 SQL Server 的 Azure Synapse Link 初始快照问题的指南。

首先检查配置。 有关详细信息,请参阅配置源 Azure SQL 数据库

症状

用户可以按照以下解决步骤调查以下情况:

  • 确定链接连接快照状态是否为停滞。
  • 确定在启动链接连接后是否观察到与快照相关的错误。
  • 了解各个表的初始快照进度。

解决方法

使用 SQL Server Management StudioAzure Data Studio 连接到为 Azure Synapse Link 启用的源数据库。

在源数据库中运行以下 T-SQL 命令,列出 changefeed.change_feed_tables 中所有启用了更改源的表及其快照相关的列。 在查询结果中,检查 snapshot_phase 列。

SELECT table_group_id, table_id, state, version, snapshot_phase, 
 snapshot_current_phase_time, snapshot_retry_count, snapshot_start_time,
 snapshot_end_time, snapshot_row_count 
FROM changefeed.change_feed_tables;

示例输出:

SQL Server Management Studio 中 changefeed.change_feed_tables 系统表的表和列示例结果集屏幕截图。

  • 如果所需表的 snapshot_phase 列值为 6 (EMIT_SNAPSHOT_ENDENTRY),则表示表的快照已完成,无需进一步调查。
  • 快照的步骤可能比其他步骤更耗时。 阶段 5 (EXPORT_DATA_FILE) 可能是一个耗时的步骤。 当表大小较大时,EXPORT_DATA_FILE 阶段预计需要更长的时间才能完成。 有关快照阶段的详细信息,请参阅 changefeed.change_feed_tables

如果给定表的快照尚未完成,可以根据 changefeed.change_feed_tables 的输出考虑两种可能的情况:

  • Snapshot_phase< 6 且 snapshot_retry_count = 0 时,快照操作正在进行中,没有错误。 在这种情况下,无需执行任何操作,请等待快照完成。
  • Snapshot_phase< 6 且 snapshot_retry_count> 0 时,快照操作失败,正在重试。 继续执行步骤 2。 例如,如下图所示:

SQL Server Management Studio 的屏幕截图,其中显示了 changefeed.change_feed_tables 系统表中的表和列的示例结果集,指示重试。

步骤 2:快照重试

如果由于出错而被迫重试快照,请在 sys.dm_change_feed_errors 动态管理视图中找到详细信息。 在源数据库中运行以下 T-SQL 命令:

SELECT * FROM sys.dm_change_feed_errors;

例如:

sys.dm_change_feed_errors 动态管理视图的结果的屏幕截图,其中包括要调查的可能快照错误。

  1. 如果在 source_task= 5 时在快照组件中观察到任何错误,请参阅 Azure Synapse Link for SQL 的已知限制和问题中的特定于错误的缓解详细信息。
  2. 如果在已知限制文章中未找到该错误,请提交 Azure 支持请求