CDC變更資料捕獲

2021-09-08 04:09:26 字數 1311 閱讀 1251

(2013-03-20 15:25:52)

分類: sql

sql server中記錄資料變更的四個方法:觸發器、output子句、變更資料捕獲(change data capture )功能、同步更改跟蹤。

這裡記錄下cdc:

變更資料捕獲可記錄應用於 sql server 表的插入、更新和刪除活動。

對資料庫中的某張表啟用變更資料捕獲,例子:

create database test1

use test1

create table [dbo].[wsttesttbl](

[id] [int] identity(1,1) not null,

[name] [nvarchar](20) null

) on [primary]

sp_cdc_enable_db --對當前資料庫啟用變更資料捕獲

select is_cdc_enabled from sys.databases where name='test1' -- 對資料庫啟用變更資料捕獲成功

sp_cdc_enable_table @source_schema='dbo', @source_name = 'wsttesttbl', @role_name = 'cdc_role'--源表標識為跟蹤的表(條件:啟動sqlserveragent服務)

--execute sys.sp_cdc_help_change_data_capture --指定表的變更資料捕獲配置資訊

--    @source_schema = n'dbo', 

--    @source_name = n'wsttesttbl';

--go

insert into wsttesttbl values('jiayiw')

delete from wsttesttbl where name ='jiayiw'

insert into wsttesttbl values('wangshuting')

update wsttesttbl set name='zhangjie' where name='wangshuting'

--select * from wsttesttbl

select * from cdc.dbo_wsttesttbl_ct 

--__$operation=2的情況,表示新增

--__$operation=3或者4,表示更新,3表示舊值,4表示新值

--__$operation=1的情況,表示刪除

另外,還可以用cdc實現增量載入(ssis)

CDC 變更資料捕獲技術的問題及侷限

現在的cdc功能仍然還是會讓你失望的。優點就不說了,就是聯機叢書裡面寫的那些。缺點如下 1 目前為止cdc無法與日誌檔案關聯,更多有用的資訊,仍需要進行前後資料比對獲取。一般仍會使用觸發器進行替代記錄 2 目前為止cdc可以記錄ddl的相關處理,但是更多的資訊,如記錄ip等使用者資訊仍然需要另外的 ...

Oracle變化資料捕獲CDC

通過分析資料庫自身的日誌來判斷變化的資料。oracle的改變資料捕獲 cdc,changed datacapture 技術是這方面的代表。cdc特性是在oracle9i資料庫中引入的。cdc能夠幫助你識別從上次抽取之後發生變化的資料。利用cdc,在對源表進行insert update或delete等...

SQL SERVER CDC變更資料捕獲

sqlserver中記錄資料變更的四個方法 觸發器 output子句 變更資料捕獲 change data capture 功能 同步更改跟蹤。這裡記錄下cdc 變更資料捕獲可記錄應用於 sql server 表的插入 更新和刪除活動。對資料庫中的某張表啟用變更資料捕獲,例子 create data...