Как очистить отслеживание изменений для конкретной версии?

Я использую технологию отслеживания изменений для синхронизации двух разных баз данных A и B.

Если что-то изменилось в A, я могу определить эти изменения и отправить его в B. Я также использую собственную мета-таблицу в DWH, где хранится некоторая важная информация о последней использованной версии CT из последней синхронизации.

Проблема заключается в том, что срок хранения по умолчанию равен 2 дням, а auto_cleanup - ON. Это означает, что через 2 дня я потеряю некоторые изменения, если возникнут какие-либо проблемы с HW во время синхронизации дольше, чем эти 2 дня. Конечно, я могу установить срок хранения на более длительный срок, тем не менее он не решит его полностью (если бы я установил срок хранения на X дней, все же может быть проблема HW дольше, чем эти X дней).

Лучше всего отключить auto_cleanup и очищать его каждый раз после синхронизации. Итак, мой вопрос:

"Есть ли способ, как вручную очистить отслеживание изменений только частично - до какой-то конкретной версии?"

Например:

Я бы синхронизировал контакты от А до Б, где CHANGE_TRACKING_CURRENT_VERSION() будет 4562. Я бы сохранить это в моей мета-таблицы и запустить мою функцию ручной очистки MY_MANUAL_CLEANUP_FUNCTION(4562) который очищает все строки с CT_ID менее 4562. CHANGE_TRACKING_MIN_VALID_VERSION ( Contacts ) вернется 4562.

Заранее спасибо за любые комментарии!

0 ответов

Другие вопросы по тегам