我正在使用变更跟踪技术来同步两个不同的数据库A和B.
如果在A中有任何改变,我可以识别这些变化并将其发送给B.我也在DWH中使用自己的元表,其中存储了一些关于上次同步的最后使用的CT版本的重要信息。 / p>
存在一个问题,默认保留期限设置为2天,auto_cleanup设置为ON。这意味着在2天之后,如果在同步期间出现任何硬件问题的时间超过这2天,我将失去一些更改。当然我可以将保留期设置为更长的时间,但是它不会完全解决(如果我将X天的保留期限设置为,那么可能存在比这X天更长的HW问题。)
最好将auto_cleanup设置为OFF并在每次同步后清除它。所以我的问题是:
“是否有任何方法可以部分手动清除更改跟踪 - 直到某个特定版本?”
例如:
我将同步从A到B的联系人,其中CHANGE_TRACKING_CURRENT_VERSION()
将是4562.我会将其存储到我的元表并运行我的手动清理函数MY_MANUAL_CLEANUP_FUNCTION(4562)
,它清除CT_ID小于的所有行4562. CHANGE_TRACKING_MIN_VALID_VERSION ( Contacts )
将返回4562。
提前感谢任何评论!