Flink CDC中sqlserver在热备情况下,开启cdc报错的问题 吗?消息 22830,级别 16,状态 1,过程 sp_cdc_enable_db_internal,行 193 [批起始行 16]
无法更新元数据来指示已对数据库 juxing 启用了变更数据捕获。执行命令 '(null)' 时失败。返回的错误为 3933: '无法将此事务提升为分布式事务,因为在此事务中有活动的保存点。'。请使用此操作和错误来确定失败的原因并重新提交请求。
根据您的描述,这个错误消息是在尝试启用 SQL Server 中的 CDC 功能时出现的,这种情况通常发生在试图在一个已经存在保存点的事务中启动 CDC 时。
要解决这个问题,请首先尝试删除所有保存点。您可以通过使用以下 T-SQL 语句来完成这个操作:
ROLLBACK TRANSACTION;
GO
DBCC OPENTRAN;
然后再次尝试启用 CDC 功能,看看是否解决了问题。
另外,您可以尝试重新创建数据库快照(SS),然后再尝试启用 CDC。请确保 SS 创建成功,并且所有相关的活动都被成功关闭,然后再继续下一步操作。
这个问题是由于在热备情况下,SQL Server 无法将事务提升为分布式事务。要解决这个问题,可以尝试以下方法:
-- 查看恢复模型
RESTORE FILELISTONLY FROM DISK = '你的备份设备' WITH NORECOVERY;
-- 设置恢复模型
ALTER DATABASE juxing SET RECOVERY SIMPLE;
-- 查看保存点
SELECT * FROM sys.dm_tran_active_snapshots;
-- 删除保存点
USE juxing;
GO
DBCC SHRINKFILE (你的文件名, TRUNCATEONLY);
GO
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。