How the cdc retention value can be changed for the cleanup job?

Viewed 19914

I'm implementing a logging feature on a asp.net mvc2 application, that uses SqlServer2008 as a database and Entity Framework as a data model.

I enabled CDC feature of SqlServer and it's logging changes well, but I just noticed that some of the old logging data is erased.

Does anyone know what's default period CDC keeps records, and does anyone know how could I set it to indefinite value.

3 Answers

By default it deletes anything older than 3 days, to change the default value to 14 days use the following script

use <Your database>
go

SELECT ([retention])/((60*24)) AS Default_Retention_days ,*
FROM msdb.dbo.cdc_jobs
go

EXEC <Your database>.sys.sp_cdc_change_job 
@job_type=N'Cleanup'
,@retention=20160 -- <60 min *24 hrs * 14 days >
go

SELECT ([retention])/((60*24)) AS Default_Retention_days ,*
FROM msdb.dbo.cdc_jobs
Go
Related