Eed*_*doh 13 database sql-server logging change-data-capture
我正在asp.net mvc2应用程序上实现日志记录功能,它使用SqlServer2008作为数据库,Entity Framework作为数据模型.
我启用了SqlServer的CDC功能,它的日志记录变化很好,但我注意到一些旧的日志记录数据被删除了.
有谁知道CDC保留记录的默认期限,并且有人知道如何将其设置为无限期值.
Eed*_*doh 28
我刚刚发现默认保留值是4320分钟= 72小时= 3天.
它应该可以通过使用来配置
sp_cdc_change_job @job_type='cleanup', @retention=minutes
Run Code Online (Sandbox Code Playgroud)
最大值为52494800(100年).如果指定,则该值必须为正整数.保留仅对清理作业有效.
这是sp_cdc_change_job过程的更详细说明的链接
希望这也会帮助别人:D.
如果要无限期保留CDC数据,只需禁用CDC清理作业:
以下是查找选项的示例图片:

禁用清理作业后,CDC数据将在一定时间间隔后不再被删除.
小智 5
默认情况下,它会删除超过 3 天的任何内容,要将默认值更改为 14 天,请使用以下脚本
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11757 次 |
| 最近记录: |