LSN is de "stukjes" informatie met betrekking tot uw SQL Server-wijzigingen. Als je geen LSN hebt, is het mogelijk dat je CDC niet actief is of niet goed is geconfigureerd. Debezium gebruikt LSN's om te repliceren, dus uw SQL Server moet dit genereren.
Enkele benaderingen:
- Heb je gecontroleerd of je tafel is met CDC ingeschakeld? Dit geeft een lijst van uw tabellen met CDC ingeschakeld:
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
- Uw CDC-database is ingeschakeld en draait? (zie hier )
Controleer of ingeschakeld :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
En controleer of het actief is:
EXECUTE sys.sp_cdc_enable_db;
GO
- Uw CDC-service draait op SQL Server? Zie in documenten
EXEC sys.sp_cdc_start_job;
GO
- Bij het inschakelen van de tabel in CDC had ik wat problemen met rolnaam. Voor mijn geval, configureren op
null
mijn probleem opgelost (meer details hier )
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