SQL Server更改数据捕获-验证增量窗口



我想使用SQL Server更改数据捕获实现增量加载过程。我找到的每一个例子都是"快乐之路"。

换句话说,他们假设CDC历史超过了上一次成功的增量负载之后的时间。

假设我们将清理作业的默认时间设置为3天,并且由于某种原因,加载没有成功完成的时间超过了3天。我需要检查这个并运行一个完整的提取。

我正在记录SQL Server表中成功执行的日期时间。那么,如果我将最后一个成功的日期与cdc.lsn_time_mapping表中最早的记录进行比较,这将完成我的任务吗?

基本上是这样的:

Select @LastSuccessfulDate from audit.... 
Select @MinCdCDate = min(tran_begin_time) from cdc.lsn_time_mapping
if @MinCdCDate > @LastSuccessfulDate then 'Full' else 'Incremental'

这应该工作吗?有没有更好的方法来完成它?

我会一直呆在"日志域";而不是"时域"直接与疾病控制中心合作时因此,跟踪上一次运行的最后一个LSN,并将其与sys进行比较。Fn_cdc_get_min_lsn .

如果最后一次同步是在lsn=100,而min_lsn=110,那么就会有10条日志记录丢失。

但是这只是需要您使用完全同步重新初始化复制的许多场景之一,因此您还应该有一个输入参数或其他类似的东西来强制完全同步。

最新更新