SQL 2008的变更数据捕获——跟踪可变部分
2009-05-12 21:06:09来源:未知 阅读 ()
介绍:SQL Server 2008变更数据捕获
SQL Server 2008的CDC函数读取激活了CDC的每个表所关联的事务日志来记录系统表中的变更。它将这些文件写到同一个数据库的系统表中,这些系统表是可以通过直接查询或系统函数来访问的。
让我们看些示例代码并看看每一步有什么改变。
使用示例代码来跟踪可变部分
首先,我们从一个全新的数据库开始。要跟踪这些变更,打开对象浏览器并展开这些文件夹:
· Databases
· SQLServer Agent | Jobs
· (数据库创建之后)Security | Roles | Database Roles
· (数据库创建之后)Programmability | Stored Procedures | System Stored Procedures
· (数据库创建之后)Programmability | Functions | Table-valued Functions
创建数据库
CREATE DATABASE TestCdc
这为我们创建了新数据库,但是没有新作业。展开Tables文件夹和System Tables文件夹。现在是空的。
在数据库TestCdc上激活变更数据捕获
USE TestCdc
-- Turn on Change Data Capture at database level
EXEC sys.sp_cdc_enable_db
这个步骤需要一些时间。现在刷新System Tables文件夹。现在它下面有6个系统表:
· cdc.captured_columns
· cdc.change_tables
· cdc.ddl_history
· cdc.index_columns
· cdc.lsn_time_mapping
· dbo.systranschemas
注意,其中的5个是“cdc” schema 部分的。
在sys.all_objects表中还有四个新的看起来很奇怪的“SQL inline table-valued function”登录:
· fn_cdc_get_all_changes_◦...◦
· fn_cdc_get_all_changes_...
· fn_cdc_get_net_changes_◦...◦
· fn_cdc_get_net_changes_...
(我使用了非比例字体,用“◦”来标记空格,使得很清楚地看到在这些名称中有嵌入的空格。)
下面是会返回这些函数的查询:
SELECT [name] FROM sys.all_objects WHERE [name] LIKE '%...%'
还有更多的新存储过程
· sp_batchinsert_lsn_time_mapping
· sp_ins_dummy_lsn_time_mapping
· sp_ins_instance_enabling_lsn_time_mapping
· sp_ins_lsn_time_mapping
现在还没有新的作业或角色。
创建新的Schema和用户表
CREATE SCHEMA MySchema
CREATE TABLE MySchema.Person (
PersonID int IDENTITY PRIMARY KEY,
FirstName varchar(32) NOT NULL,
LastName varchar(32) NOT NULL,
UpdateCt int NOT NULL DEFAULT 0
)
上面的代码创建了一个新的用户表,但是这个表还没有激活CDC。
这个步骤不影响我们所跟踪的函数/存储过程/角色列表。
为新的用户表激活CDC
EXEC sys.sp_cdc_enable_table
@source_schema = N'MySchema',
@source_name = N'Person',
@role_name = N'ChangeDataAccessRole',
@supports_net_changes = 1
这会为新的用户表激活CDC。刷新上面所列的文件夹。我们现在有了
· 一个新的系统表(cdc.MySchema_Person_CT)
· 两个新的作业(cdc.TestCdc_capture和cdc.TestCdc_cleanup)
· 一个新的数据库角色(ChangeDataAccessRole)
· 两个新的表值型函数
o fn_cdc_get_all_changes_MySchema_Person
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用SQL Server事件探查器创建跟踪 2009-05-12
- SQL Server跟踪数据实现索引优化向导 2009-05-12
- 有效地使用 SQL事件探查器的提示和技巧 2009-05-12
- MSSQL中部分字段重复数据的删除方法 2009-05-12
- 浅析SQL 2008的Change Data Capture功能 2009-05-12
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash