Flink-CDC 无法增量抽取SQLServer数据

1.问题

  • 因部署在WindowsServer服务器SQLServer发生过期后重启,Flink-CDC同步进行作业重启,启动后无报错信息,数据正常抽取。但是观察几天后发现当天数据计算指标无法展示

2.定位

因为没用进行任何修改,故初步判断不是因Flink-CDC的问题导致,进而参照Flink-CDC文档检查以下配置
在这里插入图片描述

  • 管理员用户登陆SQLServer进行检查,flink-cdc抽取数据用户涉及角色、权限配置是否发生变化
切换到对应数据 : use dbName
查看当前数据库用户、角色:
	EXEC sp_helprole
查看角色权限:
DECLARE @rolename sysname
SET @rolename = '角色名称'
EXEC sp_helprotect @rolename = @rolename

查看角色是否有CDC功能:
exec sp_helpsrvrolemember 'sysadmin'
  • 事务日志配置信息
SELECT 
    name AS 'Logical Name',
    physical_name AS 'Physical Name',
    type_desc AS 'Type',
    state_desc AS 'State',
    size AS 'Size (MB)'
FROM sys.master_files
WHERE database_id = DB_ID('数据库名称')
    AND type_desc = 'LOG';
  • 数据库、表级别CDC配置信息
数据库:
select is_cdc_enabled, name from sys.databases where name = '数据库名称'
数据表:
select name,is_tracked_by_cdc from sys.tables where name = '数据表名称'';

简洁方式:
		USE 数据库名称;
		EXEC sys.sp_cdc_help_change_data_capture

  • 查看SQLServer 代理是否开启,需要管理员权限
SELECT * FROM sys.dm_server_services WHERE SERVICE_NAME = 'SQL Server Agent (MSSQLSERVER)';

或  SELECT servicename ,status  FROM sys.dm_server_services WHERE servicename LIKE 'SQL Server Agent (MSSQLSERVER)'

3.原因

  • 经定位,发现是SQLServer过期激活后,未开启SQLServer Agent服务
  • 对于其他未正常配置问题,请参看官方文档进行配置
    https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/docs/connectors/legacy-flink-cdc-sources/sqlserver-cdc/

4.解决

  • 进入WindowServer后,打开SQL Server Configuration Manager ,找到SQLServer配置管理器下的SQL Server服务,打开SQLServer Server 代理

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 14:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 14:10:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 14:10:04       82 阅读
  4. Python语言-面向对象

    2024-03-29 14:10:04       91 阅读

热门阅读

  1. 篇二.软件需求管理办法

    2024-03-29 14:10:04       37 阅读
  2. 需求工程、需求分析的具体方式以及实践

    2024-03-29 14:10:04       41 阅读
  3. PGC/UGC/AIGC

    2024-03-29 14:10:04       43 阅读
  4. Nest学习随笔

    2024-03-29 14:10:04       45 阅读