问题标签 [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.

0 投票
2 回答
3136 浏览

sql-server-2012 - SSIS CDC 控制任务

我正在对 SSIS CDC 组件的使用进行概念验证。

对于初始负载:到目前为止我得到的是

步骤 1:具有 CDC 控制操作的 CDC 控制任务为:标记初始加载开始步骤 2:将所有源记录加载到目标的数据流步骤 3:具有 CDC 控制操作的 CDC 控制任务为:标记初始加载结束(其余设置为CDC 在步骤 1)

当我第一次运行时......所有数据加载正常。如果运行相同...而不是选择无记录(源没有变化)...它会再次重新加载所有记录...复制。

这是否不检查在步骤 1 中创建的 CDC 状态表。

任何人都可以向我指出好的示例或教程会很棒。

0 投票
5 回答
29000 浏览

mysql - 如何创建触发器以将更改事件添加到审核日志表中

假设我们有50 tables一个数据库,我们想要捕获每个表的列中的所有更改(列的先前值和新值)。将有一个审计表,其中包含以下列:

ID, Server_Name, User_Name, Date_Time, Table_Name, Column_Name, Old_Value,New_Value

将有一个审计表,它将捕获该数据库中所有表的更改。我相信我们可以为该数据库的每个表创建触发器。但是请让我知道如何将所有数据添加到一个审计表中。如果您能给我提供一个非常有用的工作示例。

谢谢和问候, 帕莎

0 投票
2 回答
2183 浏览

sql-server - 更改数据捕获错误

我试图通过传递最小和最大日期来获得启用 CDC 的表的净变化。但是抛出错误。

我的代码如下:

从 sys.fn_cdc_map_time_to_lsn 获取的 from_lsn 和 to_lsn 是否与 cdc 表“员工”不匹配?

下面的代码工作正常;但它会从 min max lsn 获得所有净变化。

我需要的是获取给定日期的 cdc 实例的最小和最大 lsn,并获取该日期的净变化。有什么线索吗?

编辑:

当我在一堆表上启用时,这适用于第一个表。

前任:

这适用于 Employee 表。如果我更改启用 CDC 的顺序(如果我将商店列表放在首位,然后将员工放在下一个),那么它适用于员工列表。

0 投票
1 回答
263 浏览

sql - 从变更数据捕获中排除特定更新

我有一个概念验证应用程序,它使用变更数据捕获监视其数据库的更改,并使用服务总线传输这些更改。应用程序还接收来自总线的通知并将这些更改提交到本地数据库。

问题是,当应用程序将更改提交到本地数据库时,更改会显示在 CDC 中,导致应用程序在总线上重新传输更改。

是否有可靠的方法从 CDC 中排除特定变更集?

如果可能,我想避免更改源表架构。

0 投票
1 回答
1877 浏览

sql-server - 如何处理 CDC 表的初始加载?

我在阅读有关如何使用CDC Control Task的文章时遇到了一些麻烦。具体来说,我似乎无法以后续增量加载与初始加载无缝(即没有间隙也没有重叠)的方式处理初始加载。不幸的是,我没有静默数据库的奢侈(即在我进行初始加载时会有活动的更改)。这是我尝试过的:

在所有情况下,我的增量负载都很简单:操作设置为“获取处理范围”的 CDC 控制任务、其中包含 CDC 源和 ADO.NET 目标的数据流任务,以及另一个 CDC 控制任务,其操作是“标记范围已处理”。

对于初始加载,我尝试了以下两种情况:

使用我专门为此任务创建的数据库快照,将操作设置为“标记 CDC 开始”的 CDC 控制任务。唯一的其他任务是数据流任务,其中包含一个直接从更改表中读取的 ADO.NET 源和一个 ADO.NET 目标。在这种情况下,初始加载运行良好,但后续增量加载失败,说明处理范围的起始 LSN 大于结束 LSN。

我尝试过的另一个初始加载有一个 CDC 控制任务,其操作设置为“标记初始加载开始”,与上面相同的数据流(但这次,来自实时数据库而不是数据库快照),并且另一个CDC控制任务,其操作是“标记初始加载结束”。在这种情况下,我在运行增量加载时处理了重复的 CDC 记录。

我错过了什么?

0 投票
2 回答
484 浏览

visual-studio-2010 - 在 Visual Studio 2012/2010 数据库项目中获取 cdc 表

我正在尝试在 Visual Studio 2012/2010 中创建一个需要 CDC(更改数据捕获)表的数据库项目,因为我的很多视图都依赖于 CDC 表。我找不到任何方法来导入 cdc 架构/表:(。在许多博客中阅读不支持导入 cdc。有什么解决方法吗。请建议

0 投票
2 回答
1529 浏览

sql-server - MIN(__$start_lsn) 和 fn_cdc_get_min_lsn 之间的区别?

在 SQL Server 2012 上使用 CDC。

我有一个MyTable启用 CDC 的表 ( )。我认为以下两个查询将始终返回相同的值:

但他们似乎没有这样做:在我的情况下,第一个返回0x00001EC6000000DC0003,第二个返回0x00001E31000000750001,所以表中的绝对最小值实际上大于返回的值fn_cdc_get_min_lsn

我的问题:

  1. 为什么结果不一样?
  2. 使用第一个查询中的值作为第一个参数有什么问题fn_cdc_get_all_changes_dbo_MyTable吗?(我见过的所有示例都使用第二个查询中的值)
0 投票
3 回答
1446 浏览

sql - 执行更改数据捕获 sql 查询时出错

我在尝试执行以下 sql 查询时收到此错误“为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足”。

0 投票
1 回答
16993 浏览

sql - 无法更新指示数据库 X 已为变更数据捕获启用的元数据。返回的错误是 15517

我使用SQL Server 2008AdventureWorkDB

Change Data Capture我想在我的数据库中启用。

我执行这个命令:

但我得到这个错误:

我该如何解决?

0 投票
3 回答
2094 浏览

sql-server-2008 - MS SQL Server:使用 CDC 从多个源表中填充单个目标表

我可以将 MS SQL Server(2008 或 2012)中的更改数据捕获与将多个源表连接到一个目标表的 SSIS 包一起使用吗?

Technet 文章描述了源表和目标表具有相同结构时的 CDC + SSIS 使用案例。对自定义数据转换进行更改跟踪的唯一提示是可以指定 CDC 将跟踪更改的列。

问题是,我需要组合来自多个源表的数据以获取目标表,然后使其与这些源表保持同步。

这是因为目标数据仓库中的数据标准化程度低于源数据库中的数据。例如,我有事件表(包含计算机 ID、日期/时间和事件描述)和计算机表(包含计算机 ID 和计算机名称)。我不需要目标表中的那些规范化表和计算机 ID,因此填充目标表的选择应该是:

我只是不知道如何使 CDC 与包含此类转换的 SSIS 包一起工作?甚至可能吗?