LSN to „kawałki” informacji związanych ze zmianami w programie SQL Server. Jeśli nie masz LSN, możliwe, że CDC nie działa lub nie jest poprawnie skonfigurowany. Debezium zużywa LSN do replikacji, więc Twój SQL Server musi to wygenerować.
Niektóre podejścia:
- Czy sprawdziłeś, czy Twój stół ma włączoną funkcję CDC? Spowoduje to wyświetlenie listy twoich stołów z włączonym CDC:
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
- Twoja baza danych CDC jest włączona i działa? (patrz tutaj )
Sprawdź, czy włączone :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
I sprawdź, czy działa:
EXECUTE sys.sp_cdc_enable_db;
GO
- Twoja usługa CDC działa na SQL Server? Zobacz w dokumentach
EXEC sys.sp_cdc_start_job;
GO
- Po włączeniu tabeli w CDC miałem pewne problemy z rolą. W moim przypadku konfiguracja w
null
rozwiązałem mój problem (więcej szczegółów tutaj )
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