Cette page explique comment activer l'isolation de transaction dans Microsoft SQL Instantanés de base de données serveur et MySQL dans Cloud Data Fusion de réplication.
Lorsque vous configurez un job de réplication pour une base de données, le job un instantané initial des tables sources. Pour garantir la cohérence des données, placez des verrous sur ces tables.
Après l'instantané initial, les modifications incrémentielles à la source sont capturées appliquée à la cible BigQuery dans le cadre de la réplication en cours ; processus.
SQL Server
Pour capturer les modifications apportées aux tables sources dans une base de données SQL Server,
de réplication utilise un connecteur Debezium. Pendant le
Phase snapshotting
,
Debezium acquiert des verrous selon
snapshot.isolation.mode
Le tableau suivant compare les modes d'isolation pris en charge pour de réplication.
Mode d'isolation | Serrures acquises | Cohérence des données |
---|---|---|
read_uncommitted |
Aucun | Non. |
read_committed |
Verrous partagés sur un lot de lignes à la fois | Partiel. Un enregistrement ajouté peut apparaître deux fois: une fois dans le premier l'instantané et une fois dans la phase de traitement par flux. |
repeatable_read (par défaut) |
Verrous partagés sur toutes les lignes | Partiel. Un enregistrement ajouté peut apparaître deux fois: une fois dans le premier l'instantané et une fois dans la phase de traitement par flux. |
snapshot |
Aucun | Pleine. |
exclusive |
Verrouillage exclusif sur toutes les tables | Pleine. |
Pour en savoir plus sur les modes d'isolation, consultez Définissez le niveau d'isolation des transactions.
Par défaut, le mode d'isolation d'instantané est repeatable_read
. Ce mode prend
des verrous partagés sur toutes les données lues
pendant la phase de création d'instantanés. Il
empêche d'autres transactions de modifier les lignes existantes et peut
permettant potentiellement l'insertion de nouveaux enregistrements (voir
escalade de verrouillage).
La réplication avec isolation d'instantané est recommandée si elle est déjà activée sur la base de données source, car elle assure une cohérence complète des données sans verrouillage les tableaux. Si elle n'est pas activée, renseignez-vous sur l'impact Niveaux d'isolation basés sur la gestion des versions des lignes dans le moteur de base de données SQL Server avant de l'activer.
Vous pouvez également utiliser le mode d'isolation read_committed
, qui
ne verrouille pas les tables
pendant la phase de création d'instantanés.
Activer l'isolation d'instantané dans un job de réplication
Activez l'isolation d'instantané dans la base de données SQL Server:
ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON
Remplacez
DATABASE_NAME
par le nom de SQL Server. base de données.Définissez l'argument d'exécution
snapshot.isolation.mode
sursnapshot
. Pour plus pour en savoir plus, consultez Transmettre un argument d'exécution à une tâche de réplication.
MySQL
Pour capturer les modifications apportées aux tables sources d'une base de données MySQL,
de réplication utilise un connecteur Debezium. Pendant le
Phase snapshotting
,
Debezium acquiert des verrous selon
snapshot.locking.mode
Par défaut, le mode de verrouillage des instantanés est minimal
. Dans ce mode,
le connecteur conserve le verrouillage global en lecture pour la partie initiale de l'instantané.
lorsqu'il lit les schémas de base
de données et d'autres métadonnées. Ensuite, le connecteur
récupère toutes les lignes par le biais d'une lecture cohérente, à l'aide de REPEATABLE READ
qui ne verrouille pas les tables.
Pour éviter tout verrouillage, définissez le mode sur none
.
Comme alternative, pour éviter les verrouillages sur les bases de données MySQL exécutées sur Cloud SQL, répliquez-les Instance répliquée au lieu de la base de données transactionnelle.
Modifier le comportement de verrouillage pendant l'instantané pour MySQL
- Pour modifier le comportement de verrouillage des instantanés dans la base de données MySQL, définissez l'environnement d'exécution
(propriété
snapshot.locking.mode
) à une valeur lock mode (mode verrouillage).
Pour en savoir plus, consultez la section Transmettre un argument Debezium à une tâche de réplication.
Limites
- La réplication dans Cloud Data Fusion est compatible avec le connecteur Debezium version 1.3.
Sources Oracle dans Cloud Data Fusion
Dans Cloud Data Fusion, la réplication à partir de sources Oracle est assurée par Datastream Datastream ne verrouille pas les tables.
Étape suivante
- Apprenez-en davantage sur la réplication.