二、sqlserver開啟cdc功能


一、開啟數據庫cdc功能

1、查看是否開啟cdc

SELECT name,is_cdc_enabled FROM sys.databases WHERE name = 'CDC_DB'

2、執行cdc

EXECUTE sys.sp_cdc_enable_db;   #執行開始cdc

3、查詢是否啟用日志

SELECT is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用' ELSE 'CDC功能啟用' END 描述
FROM sys.databases     
WHERE NAME = 'ecis'     # 數據庫名

示例:

4、啟動sqlserver代理

 

 

運行一下代碼:

EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'

 

開啟表的cdc功能:

https://blog.csdn.net/m0_37693200/article/details/118762972

  

 

 

二、調試cdc命令

 

開啟sqlserver cdc功能

create table classify    
 (
     id        int primary key identity(1,1),    -- 主鍵標識,從1開始,步長1增長
    name    nvarchar(20) not null            -- not null 非空
)
-- 查看表的CDC狀態
select name,is_tracked_by_cdc from sys.tables where name = 'demo';

-- 查看庫的CDC狀態
select is_cdc_enabled, name from  sys.databases where name = 'schoolmasterreport_db';

-- 查看agent狀態
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'

-- 查看最大序列號
SELECT sys.fn_cdc_get_max_lsn();

-- 查看版本
SELECT @@VERSION;

-- 對當前數據庫啟用 CDC
USE schoolmasterreport_db
GO
EXECUTE sys.sp_cdc_enable_db;
GO

-- 對當前數據庫禁用 CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_disable_db
GO

-- 禁用表CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_disable_table
     @source_schema = N'dbo',
     @source_name   = N'demo',
     @capture_instance = N'dbo_demo'
GO

-- 開啟表CDC
USE schoolmasterreport_db
GO
EXEC sys.sp_cdc_enable_table
     @source_schema = N'dbo',
     @source_name   = N'demo',
     @role_name     = NULL
GO

  

 


免責聲明!

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



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