当前位置: 首页 > news >正文

SQL Server开启CDC的完整操作过程

这里写自定义目录标题

  • 写在前面
  • SQL Server开启CDC
    • 1. 将指定库的实例先开启CDC
    • 2. 开启需要开启CDC的表
    • 3. 关闭CDC功能
  • 更详细信息参照官网

写在前面

鉴于老旧数据的结构和项目都在sqlserver上存储,且迁移成本巨大,当下要为sqlserver的存储过程减负。要将一部分流式的动态数据实现实时查询并存储数仓。那在现有的数据环境下, 将sqlserver的数据通过flink 接管实现数据输出和仓库存储。

SQL Server开启CDC

数据同步的开启方式对于sqlserver来说有点特殊,集成在现有的环境中,我们的sqlserver是2012版本的
具体操作如下:

1. 将指定库的实例先开启CDC

命令:

USE database;
GO
EXEC sys.sp_cdc_enable_db

必须指定库名先开启CDC不然会报类似以下的错:
请确保已设置正确的数据库上下文,然后重试该操作。若要报告数据库已启用变更数据

执行成功之后会在sys下创建以下几张表,通过客户端,可以在系统表的目录下看到

cdc.captured_columns
cdc.change_tables
cdc.ddl_history
cdc.index_columns
cdc.lsn_time_mapping
dbo.systranschemas

客户端展示

执行之后查看对应的数据库是否已经开启,可以查看已经开启CDC的库都有那些:
命令:

select * 
from sys.databases where is_cdc_enabled = 1

2. 开启需要开启CDC的表

指定的库开启了CDC之后,可以单独指定具体某一个表来开启CDC功能,可以通过命令来实现具体某个表启用CDC
命令:

EXEC sys.sp_cdc_enable_table @source_schema = 'dbo', @source_name = 't1', @role_name = null;

为第一个表启用CDC后,SQLServer生成两个Agent作业
cdc.dbname_capture
cdc.dbname_cleanup

具体的命令可以通过找到官网相关介绍来查看更多的关于sqlserver CDC的东西

查看刚刚开启CDC的表是否启用了CDC

select name, is_tracked_by_cdc 
from sys.tables where object_id = OBJECT_ID('dbo.t1')

当然,也可以查看哪些表开启了CDC

select name, is_tracked_by_cdc 
from sys.tables where is_tracked_by_cdc = '1'

3. 关闭CDC功能

关闭表(“dbo.t1”)的CDC

EXEC sys.sp_cdc_disable_table @source_schema = 'dbo', @source_name = 't1', @capture_instance = 'all';

禁用数据库所有实例CDC

EXEC sys.sp_cdc_disable_db; 

更详细信息参照官网

https://ververica.github.io/flink-cdc-connectors/master/content/connectors/sqlserver-cdc.html

http://www.lryc.cn/news/23311.html

相关文章:

  • 【Spring Cloud Alibaba】008-Sentinel
  • 解读CRC校验计算
  • 深入理解Spring MVC下
  • 【Linux】ssh-keygen不需要回车,自动生成密钥,批量免密操作!
  • C/C++开发,无可避免的内存管理(篇四)-智能指针备选
  • VMware ESXi给虚拟机扩容
  • 认识STM32和如何构建STM32工程
  • RabbitMQ延迟队列
  • Java中常用的七种队列你了解多少?
  • <Java获取时间日期工具类>常见八种场景(一)
  • 接上一篇 对多个模型环形旋转进行优化 指定旋转位置
  • Unity中获取地形的法线
  • 模型解释性:PFI、PDP、ICE等包的用法
  • spring常见面试题(2023最新)
  • 华为OD机试题,用 Java 解【压缩报文还原】问题
  • 机器学习-BM-FKNCN、BM-FKNN等分类器对比实验
  • ChatGPT火了,对话式人工智能还能干嘛?
  • 十一、操作数栈的特点(Operand Sstack)
  • 拆解瑞幸新用户激活流程,如何让用户“动”起来?
  • tkinter界面的TCP通信/开启线程等待接收数据
  • 华为OD机试题,用 Java 解【任务混部】问题
  • 看linux内核启动流程需要的汇编指令解释
  • 【巨人的肩膀】JAVA面试总结(二)
  • 【网络安全入门】零基础小白必看!!!
  • 字节前端经典面试题(附答案)
  • 数据库管理工具的使用
  • 让马斯克反悔的毫米波雷达,被国产雷达头部厂商木牛科技迭代到了5D时代
  • MaxWell原理概述
  • 电子技术——AB类输出阶
  • Archlinux个人安装流程