sql >> Database >  >> RDS >> Sqlserver

Debezium:Geen maximum LSN vastgelegd in de database; zorg ervoor dat de SQL Server Agent actief is

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:

  1. 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
  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  
  1. Uw CDC-service draait op SQL Server? Zie in documenten
EXEC sys.sp_cdc_start_job;  
GO  
  1. 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


  1. PyMySQL verschillende updates in één query?

  2. Postgres:Waarom zijn de prestaties zo slecht bij subselecties met Offset/Limit

  3. mysql race-conditie invoegen

  4. SSL-verbindingen van Azure Database for MySQL met behulp van CA-bestand