管理适用于 SQL Server 和 Azure SQL 数据库的 Azure Synapse Link

适用于: SQL Server 2022 (16.x) Azure SQL 数据库

本文提供有关使用 T-SQL 监视和管理 Azure Synapse Link for SQL 更改源的详细信息。

适用于 Azure SQL 数据库的 Azure Synapse Link 完全托管,包括预配登陆区域,并使用本文中所述的类似更改检测过程。 有关详细信息,请参阅适用于 Azure SQL 数据库的 Synapse Link

对于 SQL Server,登陆区域由客户管理且可见,但不建议或支持将其用于使用或修改登陆区域中的文件。

目前,只有 SQL Server 中的 sysadmin 服务器角色的成员或 db_owner 数据库角色才能执行这些过程。

SQL Server 或 Azure SQL 数据库将维护特定于每个表组的元数据。

备注

启用 Azure Synapse Link for SQL 将在源数据库的 changefeed 架构中创建一个 changefeed 数据库用户、一个 changefeed 架构和多个表。 请不要更改任何这些对象 - 它们是系统管理的。

以下系统对象允许从源数据库查询 Azure Synapse Link for SQL 功能的状态。

查看配置

若要查看链接的当前配置,请执行 sys.sp_help_change_feed 系统存储过程。

EXECUTE sys.sp_help_change_feed

查看更改源错误

若要查看 Azure Synapse Link 更改源中的错误,请使用动态管理视图 sys.dm_change_feed_errors。 此 DMV 将显示过去 32 个会话中的错误。 一个会话可能包括多个错误,例如尝试登陆区域失败。 此 DMV 还会显示快照和增量更改发布过程中遇到的错误。

SELECT * FROM sys.dm_change_feed_errors;

查看当前活动

若要查看当前活动,请使用动态管理视图 sys.dm_change_feed_log_scan_sessions,该视图会返回 Azure Synapse Link fo SQL 更改源的活动。

SELECT * FROM sys.dm_change_feed_log_scan_sessions;

启用更改源并创建更改源对象

系统存储过程 sys.sp_change_feed_enable_tablesys.sp_change_feed_enable_dbsys.sp_change_feed_create_table_group 未记录,仅供内部使用。 始终使用 Azure 门户中的 Synapse Studio 来创建和配置适用于 SQL Server 2022 (16.x) 和 Azure SQL 数据库的 Azure Synapse Link。 提供以下删除和禁用存储过程用于删除 Azure Synapse Link,以防删除或无法访问 Azure Synapse Studio。

禁用数据库的更改源

若要在数据库级别禁用更改源,并随后禁用所有关联表的元数据,请使用 sys.sp_change_feed_disable_db 系统存储过程。

当对活动表组禁用更改源时,所有连接和计划程序都将立即/强制停止,无需等待当前操作完成。 无法为数据库创建新的更改源表组,并且将删除描述表组的所有现有元数据。 重新启用更改源将导致对所有表组进行清洁初始化,并重设所有数据的种子。

EXECUTE sys.sp_change_feed_disable_db 
GO 

删除更改源表组

建议在 Azure 门户中使用 Azure Synapse Studio 来配置和管理 Azure Synapse Link。

若要删除表组的更改源元数据,请使用 sys.sp_change_feed_drop_table_group 系统存储过程。

如果表组的更改源在 SQL Server 或 Azure SQL 数据库端删除,则与此表组关联的单个更改源表的所有复制活动都将停止。 所有关联的元数据也会删除。

EXECUTE sys.sp_change_feed_drop_table_group
      @table_group_id uniqueidentifier 
GO

删除更改源表

建议在 Azure 门户中使用 Azure Synapse Studio 来配置和管理 Azure Synapse Link。

若要从更改源表组中删除更改源表,请使用 sys.sp_change_feed_disable_table 系统存储过程。

调用 sys.sp_change_feed_disable_table 时,对此表的更改发布将立即停止。 扫描但尚未发布的更改将被忽略。 无法保证发布并同步到 Azure Synapse 的最终更改。 要保证源和目标之间在特定时间内的同步,请在目标上验证“上次事务提交时间”,然后调用此过程。

EXECUTE sys.sp_change_feed_disable_table
    @table_group_id uniqueidentifier,
    @table_id uniqueidentifier
GO

另请参阅

后续步骤