LSN är "bitarna" av information relaterad till dina SQL Server-ändringar. Om du inte har LSN, är det möjligt att din CDC inte körs eller inte är korrekt konfigurerad. Debezium förbrukar LSN:er för att replikera så din SQL Server måste generera detta.
Några tillvägagångssätt:
- Har du kontrollerat om din tabell är med CDC aktiverat? Detta kommer att lista dina tabeller med CDC aktiverat:
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
- Är din CDC-databas aktiverad och igång? (se här )
Kontrollera om aktiverat :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
Och kontrollera om körs:
EXECUTE sys.sp_cdc_enable_db;
GO
- Körs din CDC-tjänst på SQL Server? Se i dokument
EXEC sys.sp_cdc_start_job;
GO
- När jag aktiverade tabellen i CDC hade jag några problem med rollnamn. För mitt fall, konfigurering vid
null
löste mitt problem (mer information här )
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