需要帮助以在 SQL Server 上启用变更数据捕获 (CDC)

Posted

技术标签:

【中文标题】需要帮助以在 SQL Server 上启用变更数据捕获 (CDC)【英文标题】:Need help to enable Change Data Capture (CDC) on SQL Server 【发布时间】:2020-09-12 18:29:55 【问题描述】:

我希望在 SQL Server 数据库上启用变更数据捕获。

版本:Microsoft SQL Azure (RTM) - 12.0.2000.8 Apr 9 2020 16:39:55 版权所有 (C) 2019 Microsoft Corporation

使用下面的命令来检查 CDC 是否在 db 上启用并返回 '0'

SELECT is_cdc_enabled FROM sys.databases WHERE 名称 = 'XXXX';

尝试通过发出以下命令在数据库级别启用 CDC ..

EXEC sys.sp_cdc_enable_db

它返回下面的错误信息 消息 22830,级别 16,状态 1,过程 sys.sp_cdc_enable_db_internal,第 198 行 [批处理开始第 4 行] 无法更新指示数据库 XXXX 已启用变更数据捕获的元数据。执行命令“SetCDCTracked(Value = 1)”时发生故障。返回的错误为 22845:“无法在此版本的 SQL Server 中启用更改数据捕获。”。使用操作和错误来确定失败的原因并重新提交请求。

现在我的问题是 - 我需要管理员权限才能启用 CDC,还是 Azure SQL 服务器版本不提供此功能?感谢您的阅读,感谢您的帮助。

【问题讨论】:

docs.microsoft.com/en-us/azure/sql-database/… 根据该链接,仅“托管实例和实例池”支持 CDC 嗨 Mohan,如果答案对您有帮助,您可以将其标记为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。 【参考方案1】:

请参考此文档:Enable and Disable Change Data Capture (SQL Server)

该功能仅支持 Azure SQL 托管实例。对于 Azure SQL 数据库,无法启用和禁用更改数据捕获。

希望这会有所帮助。

【讨论】:

这不是我在上面评论中所说的吗? 您提供的页面截图与该网站上当前页面的截图不同。当前页面并不清晰,因为它没有说“仅限托管实例”,它只是说托管实例。我希望微软能像过去一样更加明确。这个答案对我帮助很大,谢谢!【参考方案2】:

CDC 现在可用于 Azure SQL 数据库

【讨论】:

以上是关于需要帮助以在 SQL Server 上启用变更数据捕获 (CDC)的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server Audit记录数据库变更

[Kogel.Subscribe.Mssql]SQL Server增量订阅,数据库变更监听

启动多个存储过程以在 SQL Server Express Edition 上“在后台”运行

SQL Server 2008 CDC增量变更捕获详解

如何启用匿名访问SQL Server Reporting Service 2008

未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker