Livelli di isolamento nella replica di SQL Server

Questa pagina descrive come abilitare l'isolamento delle transazioni negli snapshot dei database Microsoft SQL Server nei job di replica di Cloud Data Fusion.

Informazioni sui livelli di isolamento

Per acquisire le modifiche nelle tabelle di origine in un database SQL Server, il job di replica utilizza un connettore Debezium. Durante la fase di istantanea, Debezium acquisisce i blocchi in base alla configurazione snapshot.isolation.mode.

La tabella seguente confronta le modalità di isolamento supportate per i job di replica.

Modalità di isolamento Serrature acquisite Coerenza dei dati
read_uncommitted Nessuno N.
read_committed Blocchi condivisi su un gruppo di righe alla volta Parziale. Un record aggiunto può essere visualizzato due volte: una volta nello snapshot iniziale e una volta nella fase di streaming.
repeatabe_read
(valore predefinito)
Blocchi condivisi su tutte le righe Parziale. Un record aggiunto può essere visualizzato due volte: una volta nello snapshot iniziale e una volta nella fase di streaming.
snapshot Nessuno Completa.
exclusive Blocco esclusivo su tutte le tabelle Completa.

Per ulteriori informazioni sulle modalità di isolamento, consulta la pagina Impostare il livello di isolamento delle transazioni.

Per impostazione predefinita, la modalità di isolamento degli snapshot è repeatable_read. Questa modalità prende i blocchi condivisi su tutti i dati letti durante il processo di snapshot. Impedisce ad altre transazioni di modificare le righe esistenti e potrebbe consentire l'inserimento di nuovi record (vedi escalation dei blocchi).

La replica con isolamento degli snapshot è consigliata se è già abilitata nel database di origine perché fornisce la massima coerenza dei dati senza bloccare le tabelle. Se non è abilitato, scopri di più sull'impatto dei livelli di isolamento basati sul controllo delle versioni nel motore di database SQL Server prima di abilitarlo.

Abilita l'isolamento degli snapshot in un job di replica

  1. Abilita l'isolamento degli snapshot nel database SQL Server:

    ALTER DATABASE DATABASE_NAME
    SET ALLOW_SNAPSHOT_ISOLATION ON
    

    Sostituisci DATABASE_NAME con il nome del database SQL Server.

  2. Imposta l'argomento di runtime snapshot.isolation.mode su snapshot. Per ulteriori informazioni, consulta la pagina Trasmettere un argomento di runtime a un job di replica.

Passaggi successivi