如何更改清理作业的 cdc 保留值?

发布于 2024-09-10 13:43:49 字数 192 浏览 6 评论 0原文

我正在 asp.net mvc2 应用程序上实现日志记录功能,该应用程序使用 SqlServer2008 作为数据库,使用实体框架作为数据模型。

我启用了 SqlServer 的 CDC 功能,它可以很好地记录更改,但我刚刚注意到一些旧的日志记录数据被删除了。

有谁知道 CDC 保存记录的默认期限是多少,有谁知道我如何将其设置为无限值。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

罪歌 2024-09-17 13:43:49

我刚刚发现默认保留值为 4320 分钟 = 72 小时 = 3 天。

它应该可以通过使用进行配置

sp_cdc_change_job @job_type='cleanup', @retention=minutes

最大值为 52494800(100 年)。如果指定,该值必须是正整数。保留仅对清理作业有效。

这是 sp_cdc_change_job 过程的链接到更详细的说明

希望这会有所帮助其他人也一样:D。

I just discovered that the default retention value is 4320 minutes = 72 hours = 3 days.

It should be configurable by using

sp_cdc_change_job @job_type='cleanup', @retention=minutes

The maximum value is 52494800 (100 years). If specified, the value must be a positive integer. Retention is valid only for cleanup jobs.

Here's the link to the more detail explanation of sp_cdc_change_job procedure

Hope this will help someone else, too :D.

z祗昰~ 2024-09-17 13:43:49

如果您想无限期保留 CDC 数据,只需 禁用 CDC 清理作业

  1. 打开 SQL Server Management Studio 并连接到数据库服务器
  2. 在对象资源管理器中,展开“” | SQL Server 代理 | Jobs”
  3. 查找名为“cdc._cleanup”的清理作业。
  4. 右键单击该作业并选择“禁用”

以下是在何处查找该选项的示例图片:

如何禁用 CDC Cleanup

禁用清理作业后,CDC 数据在一定时间间隔后将不再被删除。

If you want to retain the CDC data indefinitly, you can simply disable the CDC cleanup job:

  1. Open SQL Server Management Studio and connect to your database server
  2. In the object explorer, expand “<instance> | SQL Server Agent | Jobs”
  3. Find the job for cleanup named “cdc.<database name>_cleanup”.
  4. Right-click the job and select "disable"

Here is a sample picture of where to find the option:

How to disable CDC Cleanup

After you disabled the cleanup job, the CDC data will no longer get removed after a certain time interval.

在你怀里撒娇 2024-09-17 13:43:49

默认情况下,它会删除超过 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

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
清音悠歌 2024-09-17 13:43:49

在 Azure SQL 中,您可以在此处查看作业

select * from cdc.cdc_jobs

返回

job_type maxtrans maxscans 连续轮询间隔保留阈值
捕获 10000 100 0 0 0 0
cleanup 0 0 0 0 4320 4999

清理作业应该是 job_type = 'cleanup'

您可以简单地删除它,这样清理就不会发生

从 cdc.cdc_jobs 中删除
其中 job_type = 'cleanup'

或将保留更新为 100 年限制内的任何值,该值以分钟为单位。

https://learn.microsoft.com/en-us/azure/azure-sql/database/change-data-capture-overview?view=azuresql#cdc-customization

In Azure SQL you can see the jobs here

select * from cdc.cdc_jobs

Returns

job_type maxtrans maxscans continuous pollinginterval retention threshold
capture 10000 100 0 0 0 0
cleanup 0 0 0 0 4320 4999

The cleanup job should be job_type = 'cleanup'

You can simply delete this so cleanup never occurs

delete from cdc.cdc_jobs
where job_type = 'cleanup'

or update to the retention to what ever value with in 100 years limit, this value is in minutes.

https://learn.microsoft.com/en-us/azure/azure-sql/database/change-data-capture-overview?view=azuresql#cdc-customization

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文