LSN são as "partes" de informações relacionadas às alterações do SQL Server. Se você não tem LSN, é possível que seu CDC não esteja rodando ou não esteja configurado corretamente. O Debezium consome LSNs para replicar, portanto, seu SQL Server precisa gerar isso.
Algumas abordagens:
- Você verificou se sua tabela está com o CDC ativado? Isso listará suas tabelas com CDC ativado:
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
- Seu banco de dados CDC está habilitado e em execução? (consulte aqui )
Verifique se ativado :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
E verifique se está rodando:
EXECUTE sys.sp_cdc_enable_db;
GO
- Seu serviço CDC está sendo executado no SQL Server? Consulte em documentos
EXEC sys.sp_cdc_start_job;
GO
- Ao ativar a tabela no CDC, tive alguns problemas com o nome da função. Para o meu caso, configurando em
null
resolvi meu problema (mais detalhes aqui )
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