In questa pagina viene descritto come attivare l'isolamento delle transazioni in Microsoft SQL Snapshot di database server e MySQL in Cloud Data Fusion in altri job di replica.
Quando configuri un job di replica per un database, il job acquisisce un snapshot iniziale delle tabelle di origine. Per garantire la coerenza dei dati, inserisci su queste tabelle.
Dopo lo snapshot iniziale, le modifiche incrementali all'origine vengono acquisite e applicate alla destinazione BigQuery nell'ambito del processo di replica in corso.
SQL Server
Per acquisire le modifiche nelle tabelle di origine in un database SQL Server,
il job di replica utilizza un connettore Debezium. Durante la fase
snapshotting
,
Debezium acquisisce i blocchi in base al valore configurato
snapshot.isolation.mode
.
La tabella seguente mette a confronto le modalità di isolamento supportate per in altri job di replica.
Modalità di isolamento | Serrature acquisite | Coerenza dei dati |
---|---|---|
read_uncommitted |
Nessuno | No. |
read_committed |
Blocchi condivisi su un gruppo di righe alla volta | Parziale. Un record aggiunto può apparire due volte: una volta nella uno snapshot e una volta nella fase di flusso di dati. |
repeatable_read (valore predefinito) |
Blocchi condivisi su tutte le righe | Parziale. Un record aggiunto può apparire due volte: una volta nella uno snapshot e una volta nella fase di flusso di dati. |
snapshot |
Nessuno | Piena. |
exclusive |
Blocco esclusivo su tutte le tabelle | Piena. |
Per ulteriori informazioni sulle modalità di isolamento, consulta Imposta il livello di isolamento delle transazioni.
Per impostazione predefinita, la modalità di isolamento degli snapshot è repeatable_read
. Questa modalità richiede
blocchi condivisi su tutti i dati letti durante la fase di creazione di snapshot. it
impedisce ad altre transazioni di modificare le righe esistenti e può
consentire potenzialmente l'inserimento di nuovi record (vedi
riassegnazione del blocco).
La replica con isolamento degli snapshot è consigliata se è già abilitata su il database di origine perché fornisce la piena coerenza dei dati senza bloccare le tabelle. Se non lo è, scopri di più sull'impatto delle livelli di isolamento basato sul controllo delle versioni delle righe nel motore di database SQL Server prima di abilitarlo.
In alternativa, utilizza la modalità di isolamento read_committed
, che non blocca le tabelle durante la fase di creazione dello snapshot.
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 le informazioni, vedi Passa un argomento di runtime a un job di replica.
MySQL
Per acquisire le modifiche nelle tabelle di origine in un database MySQL,
il job di replica utilizza un connettore Debezium. Durante
snapshotting
,
Debezium acquisisce i blocchi in base al modello
snapshot.locking.mode
.
Per impostazione predefinita, la modalità di blocco degli snapshot è minimal
. In questa modalità,
Il connettore contiene il blocco di lettura globale per la parte iniziale dello snapshot
mentre legge gli schemi del database e altri metadati. Quindi il connettore
recupera tutte le righe tramite una lettura coerente, utilizzando l'REPEATABLE READ
transazione, che non blocca le tabelle.
Per evitare blocchi, imposta la modalità su none
.
In alternativa, per evitare blocchi sui database MySQL in esecuzione su Cloud SQL, esegui la replica dalla replica anziché dal database transazionale.
Modifica il comportamento di blocco durante lo snapshot per MySQL
- Per modificare il comportamento di blocco degli snapshot nel database MySQL, imposta il runtime
un argomento, una proprietà
snapshot.locking.mode
, modalità di blocco.
Per ulteriori informazioni, vedi Passare un argomento Debezium a un job di replica.
Limitazioni
- La replica in Cloud Data Fusion supporta la versione 1.3 del connettore Debezium.
Origini Oracle in Cloud Data Fusion
La replica da origini Oracle in Cloud Data Fusion si basa su Datastream. Datastream non blocca le tabelle.
Passaggi successivi
- Scopri di più sulla replica.