我在阅读有关如何使用CDC Control Task的文章时遇到了一些麻烦。具体来说,我似乎无法以后续增量加载与初始加载无缝(即没有间隙也没有重叠)的方式处理初始加载。不幸的是,我没有静默数据库的奢侈(即在我进行初始加载时会有活动的更改)。这是我尝试过的:
在所有情况下,我的增量负载都很简单:操作设置为“获取处理范围”的 CDC 控制任务、其中包含 CDC 源和 ADO.NET 目标的数据流任务,以及另一个 CDC 控制任务,其操作是“标记范围已处理”。
对于初始加载,我尝试了以下两种情况:
使用我专门为此任务创建的数据库快照,将操作设置为“标记 CDC 开始”的 CDC 控制任务。唯一的其他任务是数据流任务,其中包含一个直接从更改表中读取的 ADO.NET 源和一个 ADO.NET 目标。在这种情况下,初始加载运行良好,但后续增量加载失败,说明处理范围的起始 LSN 大于结束 LSN。
我尝试过的另一个初始加载有一个 CDC 控制任务,其操作设置为“标记初始加载开始”,与上面相同的数据流(但这次,来自实时数据库而不是数据库快照),并且另一个CDC控制任务,其操作是“标记初始加载结束”。在这种情况下,我在运行增量加载时处理了重复的 CDC 记录。
我错过了什么?