ITPub博客

首页 > 数据库 > SQL Server > SQLServer对表进行CDC捕捉时报错

SQLServer对表进行CDC捕捉时报错

原创 SQL Server 作者:ywxj_001 时间:2022-05-15 00:22:11 0 删除 编辑
SQLServer对表进行CDC捕捉时报错:
消息 22832,级别 16,状态 1,过程 sp_cdc_enable_table_internal,第 623 行
无法更新元数据来指示已对表 [dbo].[Big] 启用了变更数据捕获。执行命令 '[sys].[sp_cdc_add_job] @job_type = N'capture'' 时失败。返回的错误为 22836: '无法更新数据库 benlaiSales 的元数据来指示已添加某变更数据捕获作业。执行命令 'sp_add_jobstep_internal' 时失败。返回的错误为 14234: '指定的 '@server' 无效(有效值由 sp_helpserver 返回)。'。请使用此操作和错误来确定失败的原因并重新提交请求。'。请使用此操作和错误来确定失败的原因并重新提交请求
问题原因:
原因:SqlServer安装后修改了主机名,导致以下两个语句结果不一致
SELECT * FROM master.dbo.sysservers
SELECT SERVERPROPERTY('ServerName')
解决办法:
执行下面SQL:
IF serverproperty('servername')<>@@servername    
  BEGIN  
  DECLARE  @server SYSNAME  
  SET   @server=@@servername      
  EXEC  sp_dropserver @server=@server    
  SET   @server=cast(serverproperty('servername') AS SYSNAME)   
  EXEC  sp_addserver @server=@server,@local='LOCAL'     
  END  
  ELSE  
    PRINT '实例名与主机名一致,无需修改!' 
再开启表CDC正常:
EXECUTE sys.sp_cdc_enable_table
    @source_schema = N'dbo'
  , @source_name = N'Big_Sale'
  , @role_name = N'cdc_Admin'--可以自动创建
  , @capture_instance=DEFAULT
GO


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22996654/viewspace-2894221/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: SQLServer远程备份
请登录后发表评论 登录
全部评论
在零售、金融、互联网行业从事数据库相关工作10余年,有丰富的数据库管理和架构的相关经验。 涉及SQLServer、Oracle、MySQL、PostgreSQL等多种数据库。 目前在一家互联网公司担任DBA经理。 负责整个集团数据库的架构设计和管理工作。

注册时间:2010-01-19

  • 博文量
    247
  • 访问量
    436222