sqlserver的数据更改捕获CDC功能
发布时间:2020-12-12 14:03:19 所属栏目:MsSql教程 来源:网络整理
导读:一. CDC(Change Data Capture)原理 ? ??异步读取事务日志,记录DML操作发生的时间,类型和实际影响的数据变化,然后将这些数据记录到启用CDC时自动创建的表中。 二. 对比Trigger方式的实现 ? ? ?由于是异步读取的,因此对整体性能的影响不大,远小于通过Tr
一. CDC(Change Data Capture)原理
? ??异步读取事务日志,记录DML操作发生的时间,类型和实际影响的数据变化,然后将这些数据记录到启用CDC时自动创建的表中。
二. 对比Trigger方式的实现 ? ? ?由于是异步读取的,因此对整体性能的影响不大,远小于通过Trigger实现的数据变化记录; 三. 应用方法 1. 数据库启用CDC ? ? Use test ? ? EXEC?sys.sp_cdc_enable_db; 2. 启用Agent 3. 表启用CDC ? ??EXEC sys.sp_cdc_enable_table ? ????????@source_schema = N'dbo',? ????????@source_name = N'tb',? ? ? ? ? ? ? ? ? ? ? ? --跟踪的表名 ????????@capture_instance = N'dbo_tb_col',? --本跟踪的名字 ? ? ? ? @role_name = NULL, ? ? ? ? @captured_column_list = N'id,col1,col2'; ? ? --需要跟踪的列,如果不设置,则表示跟踪所有列 4. 启用CDC后,会创建的一些系统表 (1)cdc.captured_columns?? ? ? ? ? ? 记录所有要跟踪的列 (2)cdc.change_tables?? ? ? ? ? ? ? ? ? ?创建了跟踪的表 (3)cdc.<capture_instance>_CT?? ?实际记录变更的表,每建立一个跟踪,就会自动生成一张对应的表 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |