CDC---变更数据捕获
来源:互联网 发布:java ar vr 开发 编辑:程序博客网 时间:2024/04/29 18:21
----变更数据捕获--变更数据捕获使用异步进程读取事务日志,获取DML更改实际数据做为数据捕获的结果。在捕获结果中,还包含更改相关的一些信息(例如更改的操作类型、更新操作影响的列等)。可以从捕获结果中获取DML更改的全部数据,而无需查询数据变更的原始表---启用数据捕获功能use database_namegoEXEC sys.sp_cdc_enable_db;---启用后会在系统表中增加 5个以 cdc框架开头的表,外加 dbo.systranschemas 表 cdc.captured_columns 返回指定的跟踪列 cdc.change_tables 返回启用CDC的表.使用sys.sp_cdc_help_change_data_capture比直接查询好. cdc.ddl_history 返回每个表再启用CDC后的DDL变更.可以使用sys.sp_cdc_get_ddl_history代替查询该表. cdc.index_columns 返回启用CDC的表的相关索引列.同样用sys.sp_cdc_help_change_data_capure来获取比较好. cdc.lsn_time_mapping 为每个在更改表中存在行的事务返回一行.该表用于在日志序列号(LSN) 提交值和提交事务的时间之间建立映射. 要避免直接查询该表,使用sys.fn_cdc_map_lsn_to_time和sys.fn_cdc_map_time_to_lsn函数.goDECLARE @agent_service sysname;SET @agent_service = N'SQLServerAgent'; DECLARE @agent_status TABLE(state varchar(50))---定义一个表变量用来存放当前代理服务的状态值INSERT @agent_statusEXEC master.sys.xp_servicecontrol N'QueryState',@agent_service --获取当前代理的运行状态IF NOT EXISTS( SELECT * FROM @agent_status WHERE state = N'Running.') begin EXEC master.sys.xp_servicecontrol N'Start',@agent_service --启动代理服务 endelse return;GOEXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N't_a', @capture_instance = N'dbo_t_a', @role_name = NULL;----执行成功后会提示 :作业 'cdc.DB_test_capture' 已成功启动。作业 'cdc.DB_test_cleanup' 已成功启动。-- 创建一个变更数据捕获实例- 选择捕获的列 《《《每个表上最多可以建立 2个捕获实例EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N't_a', @capture_instance = N'dbo_t_a_col', @role_name = NULL, @captured_column_list = N'id,code,name;GOinsert t_a select 'zhao','shuju','shujubuhuo'union allselect 'wen','bu','shujubuhuo'union allselect 'zhong','huo','shujubuhuo'goupdate t_a set remarks='testshujubuhuo' where code='wenzhong'godelete from t_a where id=3GOWITHLSN AS( SELECT from_lsn = sys.fn_cdc_get_min_lsn(N'dbo_t_a'), to_lsn = sys.fn_cdc_get_max_lsn()),CHGE_ALL AS( SELECT chge.* FROM LSN CROSS APPLY cdc.fn_cdc_get_all_changes_dbo_t_a(LSN.from_lsn, LSN.to_lsn, 'ALL UPDATE OLD') chge),CHGE_NET AS( SELECT chge.* FROM LSN CROSS APPLY cdc.fn_cdc_get_net_changes_dbo_t_a(LSN.from_lsn, LSN.to_lsn, 'ALL') chge)SELECT * FROM CHGE_ALL;注: _$operation (1 删除(更新主键时,先删除原来的然后再插入.这里的主键应该是不具有IDENTITY 功能。个人理解。),2 insert,3 软删除或做需更新标识(个人理解),4 update(更新非主键))
- CDC---变更数据捕获
- cdc捕获数据变更
- sql server cdc 变更数据捕获
- SQL SERVER 2008 数据变更捕获(CDC )
- SQL SERVER 2008 数据变更捕获(CDC )
- SQL SERVER CDC变更数据捕获
- SqlServer 变更数据捕获(CDC)
- SQLServer CDC实现数据变更捕获
- SQL Server 变更数据捕获(CDC)
- SqlServer变更数据捕获(CDC)
- SQL Server 变更数据捕获(CDC)监控表数据
- SqlServer通过CDC变更数据捕获实现数据增量查询
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- 在SSIS 2012中使用CDC(数据变更捕获)
- C++ 容器类简介
- CListCtrl控件图标显示和动态更换实现
- 传送量与带宽的换算
- 仿照Launcher的Workspace实现左右滑动切换
- 树形节点目录
- CDC---变更数据捕获
- 自动化面试专题六[单片机/MCU/微机原理]
- c++容器概述
- [Ubuntu] SVN server 安装配置: 包括权限的设定
- URL中文传参
- OBJECT_ID和OBJECTPROPERTY
- 游戏中资源管理方案探讨
- SQL在VC中的应用
- IllegalArgumentException 介绍