LSN er "stykkerne" af information relateret til dine SQL Server-ændringer. Hvis du ikke har LSN, er det muligt, at din CDC ikke kører eller ikke er konfigureret korrekt. Debezium bruger LSN'er for at replikere, så din SQL Server skal generere dette.
Nogle tilgange:
- Har du tjekket, om din tabel er med CDC aktiveret? Dette vil vise dine tabeller med CDC aktiveret:
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
- Er din CDC-database aktiveret og kører? (se her )
Tjek, om aktiveret :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
Og tjek om kører:
EXECUTE sys.sp_cdc_enable_db;
GO
- Kører din CDC-tjeneste på SQL Server? Se i dokumenter
EXEC sys.sp_cdc_start_job;
GO
- Ved aktivering af tabel i CDC havde jeg nogle problemer med rollenavn. For mit tilfælde, konfiguration på
null
løste mit problem (flere detaljer her )
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