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
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.Imposta l'argomento di runtime
snapshot.isolation.mode
susnapshot
. Per ulteriori informazioni, consulta la pagina Trasmettere un argomento di runtime a un job di replica.
Passaggi successivi
- Scopri di più sulla replica.