具有CHANGE TRACKING的SSIS包可保留丢失的记录

我有一个使用CHANGE TRACKING的SSIS软件包,该软件包每5分钟运行一次,以对表执行单向同步。

这些与数据库有关:

  • DestDB
  • SourceDB

DestDB包含一个名为TableSyncVersions的表,该表用于跟踪用于从SourceDB中的表中提取信息的最新Sync版本。此同步版本用于包的下一次执行以获取下一批数据。

SourceDB已启用快照隔离,并且CT查询正在由SSIS中的“ OLE DB源”执行。查询如下:

SET TRANSactION ISOLATION LEVEL snAPSHOT;
BEGIN TRAN;

--Using OLE DB parameters to capture the current version within the transaction
SELECT ? = CAST(CHANGE_TRACKING_CURRENT_VERSION() AS NVARCHAR)

SELECT ct.KeyColumn1,ct.KeyColumn2,ct.KeyColumn3,st.Column1,st.Column2,st.Column3,st.Column4,ct.SYS_CHANGE_OPERATION
FROM TABLE1 AS st 
--Using OLE DB Parameters to reference the version # saved in TableSyncVersions 
RIGHT OUTER JOIN CHANGetaBLE(CHANGES TABLE1,?) AS ct
    ON avq.KeyColumn1 = ct.KeyColumn1
       AND avq.KeyColumn2 = ct.KeyColumn2
       AND avq.KeyColumn3 = ct.KeyColumn3

COMMIT TRAN; 

以下是此程序包的控制流的屏幕截图:

具有CHANGE TRACKING的SSIS包可保留丢失的记录

该软件包每天至少一次丢失5-20条记录,即使它运行无误,也每天都会在不同时间丢失这些记录。以前有人在变更跟踪中经历过类似的事情吗?

非常感谢您的帮助。

谢谢你, 托里山

zhangyansong 回答:具有CHANGE TRACKING的SSIS包可保留丢失的记录

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3157544.html

大家都在问