none
SQLSEVER 2014 CDC功能异常 repl_cmds failed BugCheck dump RRS feed

  • 问题

  • 在对开启了cdc的表,增加字段后,出现问题, repl_cmds failed 请教类似问题该如何进行解决呢? 这是属于数据库bug还是说操作不当呢? 看了数据库中cdc的文档,没说这块加个字段会出现这种问题。 个人本地2014同版本环境测试也确实没遇到这个问题,目前有点无从下手的感觉。

    sys.dm_cdc_errors 如下
    session_id phase_number entry_time error_number error_severity error_state error_message start_lsn begin_lsn sequence_value
    18960 7 2020-09-03 10:03:44.173 22859 16 1 日志扫描进程在处理日志记录时失败。请参阅当前会话中的以前错误以确定原因,并更正所有关联的问题。 00044716:00000F6F:0001 00044716:00000F87:0001 00044716:00000F87:0029

    18961 7 2020-09-03 10:04:44.700 241 16 1 从字符串转换日期和/或时间时,转换失败。 00044716:00000F6F:0001 00044716:00000F87:0001 00044716:00000F87:0029                            

    DUMP FILE:

    =====================================================

    BugCheck Dump

    =====================================================                                         

    This file is generated by Microsoft SQL Server                                                                   
    version 12.0.5000.0                                                                                              
    upon detection of fatal unexpected error. Please return this file,                                               
    the query or program that produced the bugcheck, the database and                                                
    the error log, and any other pertinent information with a Service Request.                                       


    Computer type is Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz.                                                      
    Bios Version is BOCHS  - 1                                                                                       
    8 X64 level 8664, 10 Mhz processor (s).                                                                          
    Windows NT 6.1 Build 7601 CSD Service Pack 1.                                                                    

    Memory                               
    MemoryLoad = 88%                     
    Total Physical = 16383 MB            
    Available Physical = 1829 MB         
    Total Page File = 16381 MB           
    Available Page File = 1359 MB        
    Total Virtual = 8388607 MB           
    Available Virtual = 8353850 MB       

    **********************************************************

    Begin transaction log dump for database 'Sales'; repl_cmds failed.

                       Current LSN = 00044716:00000f87:0029                                                          
                         Operation = LOP_COMMIT_XACT                                                                 
                           Context = LCX_NULL                                                                        
                    Transaction ID = 0000:163b128f                                                                   
                LogBlockGeneration = 0                                                                               
                          Tag Bits = 0000                                                                            
           Log Record Fixed Length = 80                                                                              
                 Log Record Length = 84                                                                              
                      Previous LSN = 00044716:00000f87:0027                                                          
                         Flag Bits = 0002                                                                            
                       Log Reserve = 90                                                                              
                       AllocUnitId = NULL                                                                            
                     AllocUnitName = NULL                                                                            
                           Page ID = NULL                                                                            
                           Slot ID = NULL                                                                            
                 Previous Page LSN = NULL                                                                            
                   Number of Locks = NULL                                                                            
                  Lock Information = NULL                                                                            
                       Description =                                                                                 

    End log dump for db = 'Sales'                                                                                    

    **********************************************************

    我所使用的SQL Server 2014 实例的版本: select @@Version

    Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)   Jun 17 2016 19:14:09   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 











    • 已编辑 Eric_Yang_ 2020年9月9日 6:26 补充使用的数据库版本信息
    2020年9月4日 14:29

全部回复

  • Sounds like data conversion related, double check data types in table(s) used by cdc. 
    2020年9月5日 14:22
  • 你好,

    请问此SQL Server 2014 实例的版本(select @@Version)。 另外这个启用了CDC的数据库也参与了事务复制吗?


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月7日 9:59
  • 您好,这个表启用了cdc,没有参与事物复制, 

    我所使用的SQL Server 2014 实例的版本: select @@Version

    Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)   Jun 17 2016 19:14:09   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

    2020年9月9日 6:22
  • 你好,

    您在本地测试的实例版本也是SQL Server 2014 SP2吗。

    通常向启用了CDC的表添加新列不会引起错误,只是这些更改无法在CDC表中捕获,CDC将继续跟踪更改,但会忽略新列。想要捕获表架构更改后的数据,你需要重建一个捕获实例,并将数据从原始捕获实例复制到新的捕获实例,然后删除旧的捕获实例。如本文所示:Understanding how DML and DDL changes impact Change Data Capture in SQL Server

    作为一种替代方案,禁用CDC,添加新列后,重新启用CDC。

    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月9日 7:10
  • 谢谢  文档上确实是介绍添加列不会引起错误,但是线上我们使用的这个版本,确实经常报错,目前在找原因和解决办法。

    之前本地测试用的版本也是这个版本,本地直接添加列测试没有出问题;

    2020年9月9日 8:51
  • 你好,

    如果问题只发生在你在线上的这个特定实例,可以进一步排查是否只发生在这个特定的数据库,或者这个数据库里某个特定的表。


    ""SQL Server related"" forum will be migrated to a new home on Microsoft Q&A SQL Server!
    We invite you to post new questions in the "SQL Server related" forum’s new home on Microsoft Q&A SQL Server !
    For more information, please refer to the sticky post.

    2020年9月9日 9:12