LSN correspond aux "éléments" d'informations liés à vos modifications de SQL Server. Si vous n'avez pas de LSN, il est possible que votre CDC ne fonctionne pas ou ne soit pas configuré correctement. Debezium consomme des LSN pour se répliquer, donc votre serveur SQL doit le générer.
Quelques approches :
- Avez-vous vérifié si votre table est compatible avec CDC ? Cela répertoriera vos tables avec CDC activé :
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
- Votre base de données CDC est activée et fonctionne ? (voir ici )
Vérifiez si activé :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
Et vérifiez si est en cours d'exécution :
EXECUTE sys.sp_cdc_enable_db;
GO
- Votre service CDC s'exécute sur SQL Server ? Voir dans la documentation
EXEC sys.sp_cdc_start_job;
GO
- Lors de l'activation de la table dans CDC, j'ai rencontré des problèmes avec le nom de rôle. Pour mon cas, configuration à
null
résolu mon problème (plus de détails ici )
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