Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Debezium :Pas de LSN maximum enregistré dans la base de données; veuillez vous assurer que l'Agent SQL Server est en cours d'exécution

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 :

  1. 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
  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  
  1. Votre service CDC s'exécute sur SQL Server ? Voir dans la documentation
EXEC sys.sp_cdc_start_job;  
GO  
  1. 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