
二. 对比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 实际记录变更的表,每建立一个跟踪,就会自动生成一张对应的表
| 列名 | 描述 |
| __$start_lsn | 数据变动所属的LSN |
| __$end_lsn | 2012后才支持,2008中为NulL |
| __$seqval | 表示该变动,是事务中第几行改动 |
| __$operation | 1 = delete 2 = insert 3 = update (old values) Column data has row values before executing the update statement. 4 = update (new values) Column data has row values after executing the update statement. |
| __$update_mask | 表示某列是否改动过,对应bit为1则有变动 |
| 所有要跟踪的列 | 例如,该表有5个要跟踪的列,那么就有5列 |
微信扫一扫
支付宝扫一扫
评论列表(0条)