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:
- ¿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
- ¿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
- ¿Su servicio CDC se ejecuta en SQL Server? Consulte en documentos
EXEC sys.sp_cdc_start_job;
GO
- 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