2010-07-20 13 views
10

Bir veritabanı modeli olarak SqlServer2008 ve bir veri modeli olarak Entity Framework kullanan bir asp.net mvc2 uygulamasında günlüğe kaydetme özelliğini yapıyorum.Temizleme işi için cdc tutma değeri nasıl değiştirilebilir?

SqlServer'ın CDC özelliğini etkinleştirdim ve günlüğe kaydetme değişiklikleri iyi, ancak eski günlüğe kaydetme verilerinin bazılarının silinmiş olduğunu fark ettim.

CDC'nin varsayılan sürenin ne olduğunu bilen biri var mı? CDC kayıtlarını tutar ve kimseyi belirsiz değere nasıl ayarlayabilirim biliyor mu?

cevap

25

Sadece varsayılan tutma değerinin 4320 dakika = 72 saat = 3 gün olduğunu keşfettim.

maksimum değeri 52.494.800 (100 yıl)

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

kullanılarak yapılandırılabilir olmalıdır. Belirtilirse, değer pozitif bir tamsayı olmalıdır. Saklama sadece temizlik işleri için geçerlidir. D:

İşte bu da başkası, yardımcı olacak sp_cdc_change_job prosedürünün link to the more detail explanation

Umut bu.

4

sen indefinitly CDC verilerini korumak istiyorsanız, aşağıdakileri yapabilirsiniz basitçe disable the CDC cleanup job:

  1. Açık SQL Server Management Studio ve “< örneğini genişletmek, nesne explorer veritabanı sunucusunda
  2. bağlanmak> | SQL Server Aracısı | İşler “cdc. < veritabanı adı> _cleanup ”.
  3. işi sağ tıklayın ve burada

seçeneği bulmak için nereye örnek bir resmidir "devre dışı" seçin: temizleme işini devre dışı sonra

How to disable CDC Cleanup

CDC verileri Belirli bir zaman aralığından sonra artık kaldırılmayacak.

+0

Bu durumda Dur İşi ile Devre Dışı arasındaki fark nedir? – Mark13426

+1

Tahminimce: dur, bir sonraki Sunucu yeniden başlatılıncaya kadar durdurur, devre dışı bırakmak kalıcı olarak durur. – magnattic

+0

Yanıt için teşekkürler Atticae. CDC ile ilgili bir sorunuz mu var? CDC'yi belirli bir DML işlemi için etkinleştirebilir miyiz - sadece güncelleme için? –

İlgili konular