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

文章描述了一名技术专家在WindowsServer上使用Flink-CDC时遇到的问题,即数据同步重启后指标无法展示。通过定位,发现原因是SQLServer过期且未开启SQLServerAgent服务。文章提供了详细的操作步骤和官方文档链接以供参考。
摘要由CSDN通过智能技术生成

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 代理

在这里插入图片描述

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值