回到目錄
如果我們希望監視一個數據表的變化,在sql2008之前的版本里,在數據庫端可能想到的只有觸發器,或者在程序端通過監視自己的insert,update,delete來實現相應的功能,這種實現無疑是讓我們感到恐懼的,不夠靈活的,而當進行sql2008后,這種情況得到了本質的改變,sql2008為我們提供了CDC功能,它可以實時對指定的數據表進行監控,當前它同時對產生SQL的一些負載。
CDC工作流程CDC功能主要捕獲SQLServer指定表的增刪改操作,由于任何操作都會寫日志(哪怕truncate),所以CDC的捕獲來源于日志文件。日志文件 會把更改應用到數據文件中,同時也會標記符合要求的數據標記為需要添加跟蹤的項。然后通過一些配套函數,最后寫入到數據倉庫中。
CDC實現步驟第一步、對目標庫顯式啟用CDC:
在當前庫使用sys.sp_cdc_enable_db。返回0(成功)或1(失敗)。注意,無法對系統數據庫和分發數據庫啟用該功能。且執行者需要用sysadmin角色權限。
該存儲過程的作用域是整個目標庫。包含元數據、DDL觸發器、cdc架構和cdc用戶。
使用以下代碼啟用:
USE tableNameGoEXECUTE sys.sp_cdc_enable_dbGO當設置好數據庫的CDC功能后,我們可以查看一下是否已經設置成功
SELECT IS_CDC_ENABLED , CASE WHEN IS_CDC_ENABLED = 0 THEN 'CDC功能禁用' ELSE 'CDC功能啟用' END 描述FROM SYS.DATABASESWHERE NAME = 'tableName'
同時,數據庫的用戶將會多了一個CDC用戶
新聞熱點
疑難解答