2010-07-20 41 views
10

我在一個asp.net mvc2應用程序上實現了一個日誌功能,該應用程序使用SqlServer2008作爲數據庫,實體框架作爲數據模型。如何爲清理工作更改cdc保留值?

我啓用了SqlServer的CDC功能,它的日誌記錄變化很好,但我只注意到一些舊的日誌記錄數據被刪除。

有誰知道什麼是CDC保留記錄的默認時間段,有誰知道我怎麼能將它設置爲無限期的值。

回答

25

我剛剛發現默認保留值是4320分鐘= 72小時= 3天。

應該通過使用

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

的最大值是52494800(100年)是可配置的。如果指定,則該值必須是正整數。保留僅對清理作業有效。

這裏的sp_cdc_change_job程序link to the more detail explanation

希望這會幫助別人,太:d。

4

如果你想indefinitly保留CDC的數據,你可以簡單地disable the CDC cleanup job

  1. 打開SQL Server Management Studio並連接到數據庫服務器
  2. 在對象資源管理器中,展開「<實例> | SQL Server代理| Jobs「
  3. 找到名爲」cdc「的清理作業。 <數據庫名稱> _cleanup「。
  4. 右鍵單擊任務並選擇「禁用」

這裏是在哪裏可以找到選項樣品圖片:

How to disable CDC Cleanup

後您禁用了清理工作,疾病預防控制中心的數據將在一定的時間間隔後不再被刪除。

+0

在這種情況下Stop Job和Disable之間有什麼區別? – Mark13426 2014-05-23 19:14:38

+1

我的猜測:停止停止它直到下一次服務器重新啓動,禁用永久停止。 – magnattic 2014-05-23 20:08:59

+0

感謝Atticae的答案。對CDC有一個查詢...我們可以啓用CDC進行特定的DML操作 - 僅用於更新嗎? – 2017-01-20 10:54:08

相關問題