成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號

使用SQL Server 2008 CDC捕獲DDL改變
2009-05-21   

SQL Server 2008推出了一個新的特性叫做變化數(shù)據(jù)捕獲(CDC)。CDC捕獲在一個SQL Server表上的DDL和DML活動,并將變化放置在一個單獨的SQL Server關(guān)系表中。在這篇文章中,我們將看到CDC怎樣幫助數(shù)據(jù)庫管理員跟蹤用于SQL Server 表的DML變化。CDC特性默認(rèn)情況下是在數(shù)據(jù)庫級別關(guān)閉的。Sysadmin服務(wù)器角色的一個成員必須使一個數(shù)據(jù)庫可用于CDC。當(dāng)這個數(shù)據(jù)庫可用于CDC時,任何dbo固定數(shù)據(jù)庫角色的成員都可以使數(shù)據(jù)庫中的表用于變化數(shù)據(jù)捕獲。

  變化數(shù)據(jù)捕獲概覽

  當(dāng)CDC可用在數(shù)據(jù)庫級別時,下一步是使CDC可用于一個需要捕獲變化的特定表。CDC特性集合了從數(shù)據(jù)庫事務(wù)日志文件獲得的變化數(shù)據(jù),并將變化信息插入到一個關(guān)聯(lián)的變化表中,它是在CDC建立和配置過程中創(chuàng)建的。在源表和變化捕獲表之間有一個一對一的關(guān)系。你對一個單獨的源表最多可以有兩個變化表。因為CDC特性需要不斷地讀取事務(wù)日志文件,所以顯而易見,CDC運行SQL Server代理應(yīng)該一直執(zhí)行的。

  怎樣使一個SQL Server 2008數(shù)據(jù)庫可以使用CDC

  1. 使用SQL Server管理套件連接到SQL Server 2008實例。

  2. 在查詢窗口中,輸入下面的TSQL查詢來創(chuàng)建一個ChangeDataCapture 數(shù)據(jù)庫。

Use Master
Go
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'ChangeDataCapture')
DROP DATABASE ChangeDataCapture
GO
USE [master]
GO
Create Database ChangeDataCapture
Go

  3. 當(dāng)這個數(shù)據(jù)庫成功創(chuàng)建之后,你需要使這個數(shù)據(jù)庫可以使用數(shù)據(jù)捕獲特性,這可以通過執(zhí)行下面的TSQL查詢來實現(xiàn):

Use ChangeDataCapture
Go
EXEC sys.sp_cdc_enable_db
Go

SQL SERVER

  4. 執(zhí)行下面的查詢來檢查這個數(shù)據(jù)庫是否可用于CDC:

Select [name] as DBName, is_cdc_enabled from sys.databases

is_cdc_enabled 字段的值為1代表這個數(shù)據(jù)庫可用于CDC,而0意味著CDC不可用。

SQL SERVER

  5. 當(dāng)數(shù)據(jù)庫可用于CDC時,你就可以看到在ChangeDataCapture數(shù)據(jù)庫中創(chuàng)建的新cdc schema、cdc用戶、新的元數(shù)據(jù)表和其它系統(tǒng)對象。當(dāng)使得CDC可用在一個數(shù)據(jù)庫時,數(shù)據(jù)庫管理員要時刻牢記的最重要的事情是確保這個數(shù)據(jù)庫在配置CDC之前沒有cdc schema或cdc用戶。如果在這個數(shù)據(jù)庫中有cdc schema或cdc用戶,那么CDC的配置將會失敗,所以數(shù)據(jù)庫管理員需要在配置CDC之前從數(shù)據(jù)庫中刪除或重命名之前存在的cdc schema或用戶。

SQL SERVER

  怎樣為一個SQL Server 2008數(shù)據(jù)庫表配置CDC

  1. 現(xiàn)在讓我們執(zhí)行下面的TSQL查詢在ChangeDataCapture數(shù)據(jù)庫中創(chuàng)建Currency表:  

Use ChangeDataCapture
Go
Create table Currency
(
CurrencyKey Int Identity(1,1) Primary Key NOT NULL,
CurrencyAlternateKey varchar(5)
)

SQL SERVER

2. 當(dāng)Currency表成功創(chuàng)建之后,你需要確保SQL Server 代理服務(wù)正在運行。為了使CDC成功,SQL Server 代理應(yīng)該運行。

  3. 通過執(zhí)行下面提到的TSQL查詢使CDC可用于表Currency。

Use ChangeDataCapture
Go
EXEC sp_cdc_enable_table 'dbo', 'Currency', @role_name = NULL, @supports_net_changes =1
Go

SQL SERVER

  4. 執(zhí)行下面的查詢來檢查這個表是否可以使用CDC:

Use ChangeDataCapture
Go
Select [name], is_tracked_by_cdc from sys.tables
GO

  is_tracked_by_cdc字段值為1代表CDC可用于這個表,而值為0代表CDC不可用?!?/p>

SQL SERVER

  5. 當(dāng)你使CDC可用于Currency表后,另一個表被創(chuàng)建以保存變化數(shù)據(jù)和關(guān)于源表中變化的信息。新創(chuàng)建的表名稱為cdc.dbo_Currency_CT,如下圖所示。

  6. 下一步是修改Currency表來添加CurrencyName字段: 

Use ChangeDataCapture
Go
Alter table Currency add CurrencyName varchar(25)
Go

  7. 可以通過執(zhí)行下面的TSQL查詢來查看Currency表所發(fā)生的DDL改變:

Use ChangeDataCapture
Go
Select OBJECT_NAME(Source_Object_ID) As [Table Name], 
            OBJECT_NAME(Object_ID) As [CDC Table Name],
                DDL_Command As [DDL Command],
            DDL_LSN As [Log Sequence Number],
            DDL_Time As [DateModified]
From CDC.ddl_history
Go

SQL SERVER

  總結(jié)

  變化數(shù)據(jù)捕獲特性幫助數(shù)據(jù)庫管理員使得可以在一個數(shù)據(jù)庫表上使用CDC并跟蹤一個特定用戶表上所有數(shù)據(jù)庫定義語言的改變。

熱詞搜索:

上一篇:SQL Server 2008的透明數(shù)據(jù)加密
下一篇:Wi-Fi游走于WiMAX和3G之間嗎?

分享到: 收藏
主站蜘蛛池模板: 推拿电影在线完整观看| 特级做a爰片毛片免费看| 无影侦察队电影完整版免费| 碳水是指哪些食物| 失魂家族| 浙江卫视今天全部节目表| 日本十大歌姬排名| 电影白夜行| 创业史全文免费阅读| 女人扒男生裤子摸j视频| 怀孕肚脐眼凸起和凹进去有什么区别| 宁波电视台| 解决问题五上数学| led灯修复方法视频| 安微地图| 哥谭骑士| 老司机免费看视频| 瓯江潮涨潮落时间表 | 家庭理论电影| 寻梦记| 青山处处埋忠骨课文| 王家卫作品| 画皮电影| 美女比基尼跳舞| 凯丽| 赵大鹏简介| 财神经正版全文| 王尧演员| 大红一师| 敬天法祖| 回收名表价格查询| 大器晚成第三季| 土壤动植物的乐园教学反思| 李修蒙出生年月| 红灯区1996| 假面骑士电王| 美女亲热| 满天星三部曲灭火宝贝| 肖叮叮的剿匪记 电视剧免费观看| 丛林之王| 血战到底电视剧|