问题标签 [change-data-capture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2008-r2 - CDC多次插入/删除相同的标识值
我有一个表 T ,其中包含一个 ID 集作为身份和主键。我在表上启用了 CDC,然后添加了一个我不关心捕获的 XML 字段,所以我没有做任何进一步的事情(重新创建捕获表和/或迁移旧的捕获数据)。
我现在有一个存储过程(除其他事项外)仅更新表 T 中新创建的字段(没有其他字段)。我注意到 CDC 记录的不是更新(操作 = 3,然后是操作 = 4),而是记录删除(operation=1) 后跟一个插入 (operation=2) 并且所有字段都是相同的(当然因为它们都没有更新)
我实际上注意到了这一点,因为我多次插入和/或删除了相同的标识值,这是不可能的(除非 identity_insert 已打开,否则)
为什么 CDC 记录 operation=1 而不是 3 和 operation=2 而不是 4?这是记录在任何地方还是一个错误?
sql-server - 增加字段大小是否需要为表禁用和启用 cdc?
我必须将表字段的大小从 255 个字符增加到 4000 个字符。为该表启用了 CDC。在更改列之前,我应该为表禁用 cdc 还是自动获取更改?
我读了这个链接:https ://msdn.microsoft.com/en-us/library/cc645937(v=sql.105).aspx ,但是,从源表的处理更改中不清楚该字段时会发生什么大小变化。CT 表是否会自动更改?
谢谢!
database - 变更数据捕获 (CDC)
我正在阅读这篇关于分析数据库 ETL 的文章,我发现了这个有趣的注释:
如果您发现您的内部应用程序正在删除对分析很重要的数据,您有两种选择:要求您的软件工程师修改应用程序代码以避免删除,或实施包含变更数据捕获 (CDC) 的数据管道。CDC 保留数据库历史中每个点的状态,因此,即使从生产模式中删除数据,它仍可用于分析。这种解决方案通常比重新构建应用程序以避免删除的侵入性要小得多。
我对这些工具比较陌生。如果我有一个带有典型 CRUD 操作(在 MySql 数据库上)的 ruby on rails 应用程序,而不是重写我的代码来保存数据:
- 我真的可以实现类似 RJ 指标的东西,这样我就不需要修改我的代码而是保留我的所有数据吗?如果不是 RJ 指标,
- 是否有服务可以让我保留数据流,这样我就不必重新编写代码?
sql-server - SSIS CDC 权限错误
我正在使用变更数据捕获创建一个 SSIS 包。我已经创建了包,但是在执行它时出现以下错误:
[CDC 控制任务] 错误:“只有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员才能执行此操作。请联系具有足够权限的管理员执行此操作。”。
错误说需要 sysadmin/db_owner 角色。但是,这真的是必需的还是我做错了什么?
sql-server - 更改数据捕获 (CDC) 功能在哪些 Sql Server 产品级别上可用?
我有一个项目,其中涉及使用 Sql Server 2012 标准版。此项目需要启用 Sql Server Change Data Capture (CDC)。CDC 在 Sql Server 标准版中可用吗?
sql-server - Why we require temporal table in SQL Server 2016 as we have CDC or CT?
What advantages do Temporal Tables have over Change Data Capture or Change Tracking in SQL Server?
mysql - TalenD 中 100 个表的 CDC
我是CDC的新手,有疑问。我说有 100 个表,我无法为 100 个表创建订阅者以使用 TalenD 捕获数据更改。他们是否有任何方法可以动态捕获所有表而无需手动创建订阅者,并且表中也不会包含时间戳列。数据库可以是任何东西。
在此先感谢 Manikandan
sql-server - 函数 sys.fn_cdc_get_max_lsn() 返回 null
我正在尝试使用 cdc,并且我正在按照这些步骤操作。
EXEC sys.sp_cdc_enable_db
-- 启用数据库EXEC sys.sp_cdc_enable_table @source_schema = N'DW', @source_name = N'APIprocess', @role_name = NULL, @supports_net_changes = 0
--启用表在引用的表中插入和更新
DECLARE @Begin_LSN BINARY(10), @End_LSN BINARY(10) SET @Begin_LSN =sys.fn_cdc_get_min_lsn('DW_APIprocess') SET @End_LSN = sys.fn_cdc_get_max_lsn() SELECT @Begin_LSN, @End_LSN, N'all'; SELECT * FROM cdc.fn_cdc_get_all_changes_DW_APIprocess( @Begin_LSN , @End_LSN , 'all')
-- 尝试得到改变
当我执行第四步时抛出这个错误:
为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足
然后我搜索了一个答案,我找到了一些答案,但没有产生任何问题,因为函数 sys.fn_cdc_get_max_lsn() 返回 null,这就是我的问题。总之,我需要知道为什么该函数返回 null 而不是二进制文件。谢谢。
sql-server - SQL Server 更改数据捕获 - 捕获进行更改的用户
关于SQL Server Change Data Capture,您是否可以跟踪对行/列数据进行更改的用户,或者是否可以扩展 CDC 以允许这样做?我在文档中看不到任何内容。
sql - 为特定 DML 操作启用变更数据捕获 (CDC)
是 CDC 的新手。是否可以为 SQL Server 2012 中的特定 DML 操作启用更改数据捕获?我知道默认情况下它启用插入、删除和更新。如果我只想启用更新,那么我该如何实现呢?
另外请告诉我,CDC 与触发器相比如何更好?