我似乎无法使我的 SQL CDC Cleanup Job 的保留时间正常工作。我到处寻找我的答案,但直到现在才找到解决方案。
我做了以下事情: - 在 DB 上激活 CDC
EXEC sys.sp_cdc_enable_db;
激活 CDC 表
EXEC sys.sp_cdc_enable_table @source_schema = N'dbo',
@source_name = N'Person',
@capture_instance = NULL,
@supports_net_changes = 1,
@role_name = NULL,
@index_name = NULL,
@captured_column_list = NULL,
@filegroup_name = NULL;
然后我检查了我的工作:
EXEC sys.sp_cdc_help_jobs;
并将清理作业保留更改为 2:
EXEC sys.sp_cdc_change_job @job_type = N'cleanup', -- nvarchar(20)
@retention = 2; -- bigint
据我所知,这应该控制清洁 CDC 表的间隔分钟数。我无法在网上找到任何其他方式如何做到这一点。我的清理作业仍然没有清空我激活 cdc 的 CDC 表。
值得一提的是,我之前在此数据库上激活/停用了 CDC,也许这与清理作业无法正常工作有关?
任何帮助表示赞赏。
BR