sql >> Base de Datos >  >> RDS >> Sqlserver

Debezium:No hay LSN máximo registrado en la base de datos; asegúrese de que el Agente SQL Server se esté ejecutando

LSN son las "piezas" de información relacionadas con los cambios de SQL Server. Si no tiene LSN, es posible que su CDC no se esté ejecutando o no esté configurado correctamente. Debezium consume LSN para replicar, por lo que su SQL Server necesita generar esto.

Algunos enfoques:

  1. ¿Comprobó si su tabla está habilitada para CDC? Esto listará sus tablas con CDC habilitado:
SELECT s.name AS Schema_Name, tb.name AS Table_Name
, tb.object_id, tb.type, tb.type_desc, tb.is_tracked_by_cdc
FROM sys.tables tb
INNER JOIN sys.schemas s on s.schema_id = tb.schema_id
WHERE tb.is_tracked_by_cdc = 1
  1. ¿Su base de datos de CDC está habilitada y en funcionamiento? (ver aquí )

Compruebe si habilitado :

SELECT * 
FROM sys.change_tracking_databases 
WHERE database_id=DB_ID('MyDatabase')

Y compruebe si se está ejecutando:

EXECUTE sys.sp_cdc_enable_db;  
GO  
  1. ¿Su servicio CDC se ejecuta en SQL Server? Consulte en documentos
EXEC sys.sp_cdc_start_job;  
GO  
  1. Al habilitar la tabla en CDC, tuve algunos problemas con el nombre de rol. Para mi caso, configurando en null resolvió mi problema (más detalles aquí )
    EXEC sys.sp_cdc_enable_table
        @source_schema=N'dbo',
        @source_name=N'AD6010',
        @capture_instance=N'ZZZZ_AD6010',
        @role_name = NULL,
        @filegroup_name=N'CDC_DATA',
        @supports_net_changes=1
     GO