开启SQL SERVER CDC功能

一、配置NDL文件

1、增加文件组

2、增加CDC文件

3、修改文件名

二、开启数据库CDC功能

-- 开启

USE [库名]

GO

exec sys.sp_cdc_enable_db

GO

-- 关闭

USE [库名]

GO

exec sys.sp_cdc_disable_db

GO

-- 查看某个表是否开启,1为开启,0为关闭

select is_cdc_enabled from sys.databases where name='库名'

-- 查看所有开启数据库

SELECT name,is_cdc_enabled FROM sys.databases WHERE is_cdc_enabled = 1;

--作业 'cdc.EDD_capture' 已成功启动。

--作业 'cdc.EDD_cleanup' 已成功启动。

三、开启Table表数据库功能

  1. 单表格开启

IF EXISTS(SELECT 1 FROM sys.tables WHERE name='table_name' AND is_tracked_by_cdc = 0)

BEGIN

   

    EXEC sys.sp_cdc_enable_table

        @source_schema = 'dbo', -- source_schema

        @source_name = 'table_name', -- table_name

        @capture_instance = NULL, -- capture_instance

        @supports_net_changes = 1, -- supports_net_changes

        @role_name = NULL, -- role_name

        @index_name = NULL, -- index_name

        @captured_column_list = NULL, -- captured_column_list

        @filegroup_name = 'CDC' -- filegroup_name

END

2、单表关闭

    EXEC sys.sp_cdc_disable_table

        @source_schema = 'dbo', -- source_schema

        @source_name = ' table_name', -- table_name

        @capture_instance = 'capture_instance' -- capture_instance

3、多表格开启

--游标,批量开启所有

DECLARE @name NVARCHAR(50)    --声明变量,需要读取的数据

DECLARE cur CURSOR                --去掉STATIC关键字即可

FOR

-- 根据实际情况排除

     SELECT name FROM SysObjects Where XType='U' and uid='1'and category =0

OPEN cur                            --打开游标

FETCH NEXT FROM cur INTO  @name     --取数据

WHILE ( @@fetch_status = 0 )            --判断是否还有数据

    BEGIN

        EXEC sys.sp_cdc_enable_table

        @source_schema = 'dbo', -- source_schema

        @source_name =  @name, -- table_name

        @capture_instance = NULL, -- capture_instance

        @supports_net_changes = 1, -- supports_net_changes

        @role_name = NULL, -- role_name

        @index_name = NULL, -- index_name

        @captured_column_list = NULL, -- captured_column_list

        @filegroup_name = 'CDC' -- filegroup_name

        --SELECT  @name tblName

        FETCH NEXT FROM cur INTO  @name  --这里一定要写取下一条数据

    END

CLOSE cur                               --关闭游标

DEALLOCATE cur

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: SQL Server CDC(Change Data Capture)是一种用于捕获数据库格更改的技术。如果您想检查 SQL Server CDC 的状态,可以按照以下步骤进行操作: 1. 确认 CDC 是否已启用:要启用 CDC,必须在目标上运行 sys.sp_cdc_enable_table 存储过程。使用以下查询检查 CDC 是否已启用: SELECT [name], is_cdc_enabled FROM sys.tables; 如果返回的结果中 is_cdc_enabled 为 1,则CDC 已启用。如果为 0,则CDC 未启用。 2. 确认 CDC 是否处于运行状态:运行以下查询,检查 CDC 是否处于运行状态: SELECT [name], state FROM cdc.change_tables; 如果返回的结果中 state 为 1,则CDC 处于运行状态。如果为 0,则CDC 已停止。 请注意,如果 CDC 停止,则无法捕获更改。 3. 检查 CDC 状态的详细信息:可以使用以下查询检查有关 CDC 状态的更多详细信息: SELECT [name], start_lsn, last_lsn, is_auto_cleanup_on, retention_period FROM cdc.change_tables; 这将显示有关 CDC 实例的详细信息,包括起始 LSN(Log Sequence Number)、最后 LSN、是否启用自动清理以及保留期。 希望这些信息能够帮助您检查 SQL Server CDC 的状态。 ### 回答2: 要检查SQL Server CDC(Change Data Capture,更改数据捕获)的状态,可以按照以下步骤进行操作: 1. 首先,打开SQL Server Management Studio (SSMS)并连接到目标数据库服务器。 2. 在对象资源管理器中,展开“数据库”节点,然后展开目标数据库。 3. 在展开的目标数据库下,展开“数据库对象”、 “系统数据库”和“cdc”节点。如果没有看到CDC节点,则CDC未启用。 4. 单击CDC节点,然后在右侧窗格中,显示有关CDC的详细信息。这些信息包括CDC启用日期、最新捕获的事务的开始LSN和结束LSN、捕获的以及是否启用了自动清理等信息。 5. 检查CDC的状态,确保启用了CDC,并且没有任何错误或警告。 此外,还可以通过以下脚本查询CDC的状态: ``` SELECT [name], capture_instance, is_tracked_by_cdc FROM sys.tables WHERE is_tracked_by_cdc = 1; ``` 运行以上查询,将返回启用了CDC的名称、捕获实例和是否受CDC跟踪的信息。 总的来说,要检查SQL Server CDC的状态,可以通过SSMS中的对象资源管理器来查看CDC节点并确认其状态,也可以通过查询系统来获取有关启用CDC的详细信息。 ### 回答3: 要检查 SQL Server CDC(Change Data Capture)的状态,可以使用以下方法: 1. 使用 SQL Server Management Studio(SSMS)来检查 CDC 配置。打开 SSMS,并连接到目标 SQL Server 实例。在对象资源管理器中,展开该实例的数据库目录,选择要检查的数据库。右键单击该数据库并选择“属性”。在属性对话框中,选择“选项”选项卡。在“交易复制”部分,可以看到 CDC 是否已启用。如果启用了 CDC,则将显示“启用”选中。如果未启用或 CDC 功能未安装,则将显示“禁用”。 2. 使用 T-SQL 查询来检查 CDC 状态。通过连接到目标 SQL Server 实例,并选择要检查的数据库,可以运行以下 T-SQL 查询: ``` USE <数据库名>; GO SELECT name, is_cdc_enabled FROM sys.databases; ``` 此查询将返回数据库的名称和 CDC 是否已启用的状态。 3. 使用 T-SQL 查询来检查 CDC 的状态。通过连接到目标数据库,并运行以下 T-SQL 查询,可以查看数据库中的 CDC 是否已创建: ``` USE <数据库名> GO SELECT * FROM cdc.change_tables; ``` 此查询将返回所有 CDC 的信息,包括的名称、模式、捕获实例名称等。 总结起来,要检查 SQL Server CDC 的状态,可以通过 SSMS 的属性对话框、T-SQL 查询来查看数据库和CDC 是否已启用或创建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值