(整理)SQL Server 2008 CDC 功能使用


           最近某項目突然要增加數據的獲取,但是不能改程序、也沒有同步的只讀庫,只好使用CDC來進行嘗試。

           CDC的啟用和停止全部用SQL實現,在這里給出主要的SQL步驟:

           

/****** Script for SelectTopNRows command from SSMS  ******/
--------------------------------(1.1)啟動數據庫CDC
USE TestDB
GO
EXECUTE sys.sp_cdc_enable_db;
GO
--------------------------------(1.2)有錯誤15517則執行
ALTER AUTHORIZATION ON DATABASE::[TestDB] TO [sa]

---------------------------------(1.3)查看是否啟用數據庫CDC
SELECT  is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用'ELSE 'CDC功能啟用'END [描述]
FROM    sys.databases
WHERE   [name]='TestDB'

-------------------------------- (2.1)啟動數據表CDC----
USE TestDB
GO
EXEC sys.sp_cdc_enable_table
    @source_schema= 'dbo',
    @source_name = 'TestTable',
    @role_name = NULL 
GO
----------------------------------(2.2)查看數據表CDC是否啟用----
SELECT  name ,
        is_tracked_by_cdc ,
        CASE WHEN is_tracked_by_cdc = 0 THEN 'CDC功能禁用'
             ELSE 'CDC功能啟用'
        END 描述
FROM    sys.tables
WHERE   OBJECT_ID= OBJECT_ID('TestTable')
----------------------------------(3)查詢數據------
  SELECT TOP 1000 *  FROM [TestDB].[cdc].[dbo_TestTable_CT];--此表為默認生成
  
----------------------------------(4) 關閉表CDC----
USE TestDB
go
EXECUTE sys.sp_cdc_disable_table 
    @source_schema = 'dbo', 
    @source_name = 'TestTable',
    @capture_instance = 'dbo_TestTable'
go 

----------------------------------(5)關閉數據庫CDC----
USE TestDB;
GO
EXECUTE sys.sp_cdc_disable_db;
GO

 參考文章:

 https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/bb510702(v=sql.100)

https://blog.csdn.net/yenange/article/details/49636215

https://blog.csdn.net/dba_huangzj/article/details/8130448

https://www.cnblogs.com/lyhabc/p/3383484.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM