シナリオ:
SQL Server DBAまたは開発者として作業しており、データベースの1つで変更データキャプチャを有効にしました。デフォルトの保存期間は3日です。保存期間を1000日に変更したい。どのようにそれをしますか?解決策:
以下のスクリプトを使用して、SQLServerデータベースのChangeData Capture(CDC)の保持期間を変更できます。/*--------------------------------------- Change CDC Retention Period The retention is provide in minutes , If we are providing in Days then we
have to convert that to minutes. -----------------------------------------*/
USE [DatabaseName]
GO
DECLARE @Retention_IN_DAYS INT DECLARE @Retention_IN_Minutes INT SET @Retention_IN_DAYS=10--> Provide the Retention period in days here
SET @Retention_IN_Minutes=@Retention_IN_DAYS * 24 * 60 --Print Current Retention Period
SELECT retention / 60 / 24 AS [Retention_In_Days]
FROM msdb.dbo.cdc_jobs
WHERE job_type = 'cleanup' --SET Retention to Required Days
EXECUTE sys.sp_cdc_change_job N'cleanup', @retention = @Retention_IN_Minutes --Check if Retention is Set for Given Days
SELECT retention / 60 / 24 AS [Retention_In_Days]
FROM msdb.dbo.cdc_jobs
WHERE job_type = 'cleanup'