麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

SQLServer 2008 CDC實現數據變更捕獲使用圖文詳解

2019-10-26 16:47:56
字體:
來源:轉載
供稿:網友
適用環境:

僅在SQLServer2008(含)以后的企業版、開發版和評估版中可用。

詳解:

CDC功能主要捕獲SQLServer指定表的增刪改操作,由于任何操作都會寫日志(哪怕truncate),所以CDC的捕獲來源于日志文件。日志文件會把更改應用到數據文件中,同時也會標記符合要求的數據標記為需要添加跟蹤的項。然后通過一些配套函數,最后寫入到數據倉庫中。大概流程:

步驟:本文中以:AdventureWorks為例

第一步、對目標庫顯式啟用CDC:

在當前庫使用sys.sp_cdc_enable_db。返回0(成功)或1(失敗)。注意,無法對系統數據庫和分發數據庫啟用該功能。且執行者需要用sysadmin角色權限。

該存儲過程的作用域是整個目標庫。包含元數據、DDL觸發器、cdc架構和cdc用戶。

使用以下代碼啟用:


復制代碼代碼如下:</p><p>USE AdventureWorks</p><p>GO</p><p>EXECUTE sys.sp_cdc_enable_db;
GO</p><p>
在一開始直接執行時,出現了報錯信息:

消息22830,級別16,狀態1,過程sp_cdc_enable_db_internal,第193 行

無法更新元數據來指示已對數據庫AdventureWorks 啟用了變更數據捕獲。執行命令'SetCDCTracked(Value = 1)' 時失敗。返回的錯誤為15517: '無法作為數據庫主體執行,因為主體"dbo" 不存在、無法模擬這種類型的主體,或您沒有所需的權限。'。請使用此操作和錯誤來確定失敗的原因并重新提交請求。

這里引出了另外一個知識點:錯誤號 15517 的錯誤

這種錯誤會在很多地方出現,如還原數據庫的時候也會有可能出現。共同點是:某個/些存儲過程使用了具有WITHEXECUTE AS 的選項。使其在當前庫具有了某個架構,但是當在別的地方執行時,由于沒有這個架構,所以就報錯,解決方法:

ALTER AUTHORIZATION ON DATABASE::[AdventureWorks] TO [sa]

經過檢查,uspUpdateEmployeeHireInfo這個存儲過程的確有:WITH EXECUTE AS CALLER

使用sa的原因是即使sa被禁用,sa還是存在的。所以不會報錯。

現在重新執行:


復制代碼代碼如下:</p><p>USE AdventureWorks</p><p>GO</p><p>EXECUTE sys.sp_cdc_enable_db;</p><p>GO</p><p>

啟用成功,然后通過以下語句檢查是否成功:

復制代碼代碼如下:</p><p>SELECT is_cdc_enabled,CASEWHENis_cdc_enabled=0THEN'CDC功能禁用'ELSE'CDC功能啟用'END描述</p><p>FROM sys.databases</p><p>WHERE NAME = 'AdventureWorks'



創建成功后,將自動添加CDC用戶和CDC架構。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色免费av | 亚洲无马在线观看 | 日韩精品一区二 | 日本视频在线免费观看 | 亚洲爱爱网站 | 久草在线手机视频 | 青草久久av | 欧美性受xxxx人人本视频 | 毛片a级毛片免费播放100 | 欧美城网站地址 | 久久一区三区 | 日本不卡中文字幕 | 欧美成人精品一区 | 92看片淫黄大片一级 | 欧美成人一级 | 狠狠干视频网站 | 久久99亚洲精品 | 精品一区二区在线播放 | 视频一区二区国产 | 欧美日韩精品中文字幕 | 91精品国产一区二区在线观看 | 在线区| 日韩视频在线观看免费 | 免费久久久久 | 国产精品亚洲三区 | 另类亚洲孕妇分娩网址 | 成人福利软件 | 色网在线视频 | 羞羞视频在线免费 | 日本中文视频 | 一级性生活免费视频 | 亚洲精品成人18久久久久 | 久草高清视频 | 国产日韩a| 欧美高清第一页 | 亚洲人成在线播放网站 | 狠狠操天天射 | 国产在线精品一区二区三区 | hd日本xxxx | www噜噜偷拍在线视频 | 久久精品79国产精品 |