SQLServer CDC数据迁移和数据抽取功能介绍 2
数据库环境:
1、SQLServer 2008R2
2、SQLServer 代理打开
一、新建一个数据库
创建数据库 Incremental_DB
二、创建俩张测试表
--创建用户表 CREATE TABLE [dbo].[Person]( [Id] [INT] IDENTITY(1,1) NOT NULL, [Name] [NVARCHAR](120) NULL, [Age] [INT] NULL, CONSTRAINT [PK_Demo] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] --创建部门表 CREATE TABLE [dbo].[Department]( [Id] [INT] IDENTITY(1,1) NOT NULL, [Name] [NVARCHAR](50) NULL, CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
三、实现数据变更捕获
一、对目标库显式启用CDC
USE Incremental_DB GO EXECUTE sys.sp_cdc_enable_db; GO
查看是否启用CDC
SELECT is_cdc_enabled,CASE WHE is_cdc_enabled=0 THEN 'CDC功能禁用'ELSE 'CDC功能启用'END [描述] FROM sys.databases WHERE [name]='Incremental_DB'
创建成功后,会在测试库自动添加CDC用户和架构
二、对目标库数据表显式启用CDC
USE Incremental_DB EXECUTE sys.sp_cdc_enable_table @source_schema = N'dbo'--架构名称 , @source_name = N'Department'--表名称 , @role_name = 'cdc_Admin'--会自动生成自定义 'cdc_Admin' 角色 如果不想控制访问角色,则@role_name必须显式设置为null , @capture_instance=NULL EXECUTE sys.sp_cdc_enable_table @source_schema = N'dbo'--架构名称 , @source_name = N'Person'--表名称 , @role_name = 'cdc_Admin'--会自动生成自定义 'cdc_Admin' 角色 如果不想控制访问角色,则@role_name必须显式设置为null , @capture_instance=NULL
语句执行成功后在系统表中生成俩张变化表
数据库可编程性中增加俩个函数
同时SQLServer 代理中新增俩个作业
- capture(捕获作业)
-
clean(清理作业)
如果出现如下错误,请参考上一篇文章CDC注意事项第三点
验证数据表是否启用CDC
USE Incremental_DB --查看是否已启用: SELECT name , is_tracked_by_cdc , CASE WHEN is_tracked_by_cdc = 0 THEN 'CDC功能禁用' ELSE 'CDC功能启用' END 描述 FROM sys.tables WHERE OBJECT_ID IN(OBJECT_ID('Person'),OBJECT_ID('Department'))
四、禁用数据库或数据表CDC功能
禁用数据表CDC
--禁用人员表CDC功能 EXECUTE sys.sp_cdc_disable_table @source_schema = N'dbo', @source_name = N'Person', @capture_instance = 'dbo_Person'
禁用后系统表中原来的dbo_Person_CT表被删除,函数删除等
禁用数据库CDC
EXEC sys.sp_cdc_disable_db
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
重视云端容灾:数据命脉要牢牢掌握在自己手里
某国内知名公有云厂商因为低层硬件问题,导致一个客户的数据永久性丢失,这两天在网上传沸沸扬扬,互联网再次掀起了关于企业把数据放在公有云上是否安全的问题讨论。 新闻热点总是很快成为“明日黄花”,虽然此次事件已经进入尾声,但是对事件中客户的影响却是致命而长远的,我们应该以此为戒,敲响警钟。 随着云计算对大数据能力的释放,以及AI理念对大数据未来方向的指引,越来越多的企业已经接受 “让数据产生价值” 的理念,重视数据对企业未来发展的战略意义。如果说数据是流淌在企业中的血液,那 “数据安全” 就是血液中的血小板,帮助企业抵御来自外部的各种威胁。数据安全包括完整性、可用性、隐私性三个维度,一般来说,数据可用性受损,是因为数据由于被攻击、物理故障等问题而最终导致数据不可使用的结果。企业日常运维工作中,为了避免重要数据因服务器病毒(如去年很火的勒索病毒)、机房故障(本次磁盘故障)等意外问题,导致数据永久性丢失,运维工程师常常会通过各类技术手段,来避免各类灾难的发生,从而保障云端保障数据的可用性,常用措施一般有冗余和备份两种形态。 今天袋鼠云 云服务团队,将结合本次事件中涉及到的数据可用性这个重要指标,...
- 下一篇
程序员同学在实习期间应该做些什么
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82156643 本文首发于公众号:程序员江湖。 满满干货,关注就送。 上次我们讲述了如何寻找实习工作,今天我们来讲一下找到实习以后应该做什么正确的事情。 首先我把我自己的实习经历作为一个比较反面的教材。 其实我自己的实习总结下来就这么几个词,悠哉干活,做完就行,偶尔健身,经常早退。 当然我也会去听听讲座,看看度学堂,但是总体来说还是比较散漫。 我在实习期间确实是比较划水的,确实有一些遗憾,所以我在这里进行回忆与反思,总结一下实习期间应该做的事情。 1 做好本职工作 首先,你需要做好你的本职工作,保质保量,按时交付。这样你的同事和领导都会肯定你的能力,也会逐渐把一些进阶的任务交给你做,让你得到更多锻炼的机会。 2 多找同事请教 然后,和同事愉快相处,多多请教交流,学习大牛身上的优点。大公司的员工一般技术水平都比较高,一开始你一定会觉得不太适应,但是不要有压力,多向他们学习,你会知道你应该向什么方向努力。 3 搞懂项目架构 搞懂部门的...
相关文章
文章评论
共有0条评论来说两句吧...