适用于: SQL Server 2022 (16.x)
Azure SQL 数据库
本文提供有关使用 T-SQL 监视和管理 Azure Synapse Link for SQL 更改源的详细信息。
重要
现在可用与 Microsoft Fabric 的同步功能。 将数据镜像到 Fabric 提供 Azure Synapse Link 的所有功能,拥有更佳的分析性能,能够在 Fabric 中使用 OneLake 统一您的数据资产,并能以 Delta Parquet 格式开放数据访问权限。 使用 Fabric 镜像,而不是 Azure Synapse Link。
通过镜像到 Microsoft Fabric,您可以将现有数据资产直接复制到 Fabric 中的 OneLake,包括来自 SQL Server 2016+、Azure SQL 数据库、Azure SQL 托管实例、Oracle、Snowflake、Cosmos DB 等的数据。
有关详细信息,请参阅 Microsoft Fabric 镜像数据库。
适用于 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 架构和多个表。 请不要更改任何这些对象 - 它们是系统管理的。
监控适用于 SQL Server 和 Azure SQL 数据库的 Azure Synapse Link
以下系统对象允许从源数据库查询 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_table、sys.sp_change_feed_enable_db、sys.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