En esta página, se describe cómo habilitar el aislamiento de transacción en Microsoft SQL. Instantáneas de bases de datos de MySQL y servidores en Cloud Data Fusion trabajos de replicación.
Cuando configuras un trabajo de replicación para una base de datos, este toma instantánea inicial de las tablas fuente. Para garantizar la coherencia de los datos, coloca bloqueos en esas tablas.
Después de la instantánea inicial, se capturan los cambios incrementales en el origen se aplican al destino de BigQuery como parte de la replicación el proceso de administración de recursos.
SQL Server
Para capturar los cambios en las tablas de origen de una base de datos de SQL Server, el trabajo de replicación usa un conector de Debezium. Durante la fase snapshotting
, Debezium adquiere bloqueos según la snapshot.isolation.mode
configurada.
En la siguiente tabla, se comparan los modos de aislamiento admitidos trabajos de replicación.
Modo de aislamiento | Cerraduras adquiridas | Coherencia de los datos |
---|---|---|
read_uncommitted |
Ninguno | No. |
read_committed |
Bloqueos compartidos en un lote de filas a la vez | Parcial. Un registro agregado puede aparecer dos veces: una vez en la y una vez en la fase de transmisión. |
repeatable_read (predeterminada) |
Bloqueos compartidos en todas las filas | Parcial. Un registro agregado puede aparecer dos veces: una vez en la y una vez en la fase de transmisión. |
snapshot |
Ninguno | Completa. |
exclusive |
Bloqueo exclusivo en todas las tablas | Completa. |
Para obtener más información sobre los modos de aislamiento, consulta Cómo configurar el nivel de aislamiento de transacciones.
De forma predeterminada, el modo de aislamiento de instantánea es repeatable_read
. Este modo toma bloqueos compartidos en todos los datos que se leen durante la fase de creación de instantáneas. Integra
evita que otras transacciones modifiquen las filas existentes y puede
potencialmente permitir la inserción de nuevos registros (consulta
bloquear derivación).
Se recomienda la replicación con aislamiento de instantáneas si ya está habilitada en la base de datos de origen, ya que proporciona coherencia de datos completa sin bloquear las tablas. Si no está habilitado, obtén más información sobre el impacto de los niveles de aislamiento basados en el control de versiones de filas en el Motor de base de datos de SQL Server antes de habilitarlo.
Como alternativa, usa el modo de aislamiento read_committed
, que no bloquea las tablas durante la fase de creación de instantáneas.
Habilita el aislamiento de instantánea en un trabajo de replicación
Habilita el aislamiento de instantánea en la base de datos de SQL Server:
ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON
Reemplaza
DATABASE_NAME
por el nombre de SQL Server. en la base de datos.Establece el argumento del entorno de ejecución
snapshot.isolation.mode
ensnapshot
. Para obtener más información, consulta Cómo pasar un argumento de entorno de ejecución a un trabajo de replicación.
MySQL
Para capturar cambios en las tablas de origen en una base de datos de MySQL, el comando
y el trabajo de replicación usa
un conector Debezium. Durante la fase snapshotting
, Debezium adquiere bloqueos según la snapshot.locking.mode
configurada.
De forma predeterminada, el modo de bloqueo de la instantánea es minimal
. En este modo, el conector mantiene el bloqueo de lectura global para la parte inicial de la instantánea mientras lee los esquemas de la base de datos y otros metadatos. Luego, el conector
Recupera todas las filas a través de una lectura coherente mediante REPEATABLE READ
.
que no bloquea las tablas.
Para evitar bloqueos, establece el modo en none
.
Como alternativa, para evitar bloqueos en las bases de datos de MySQL que se ejecutan en Cloud SQL, replicar desde el Réplica en lugar de la base de datos transaccional.
Cambia el comportamiento de bloqueo durante la instantánea de MySQL
- Para cambiar el comportamiento de bloqueo de instantáneas en la base de datos de MySQL, configura el entorno de ejecución
de la propiedad
snapshot.locking.mode
a un valor adecuado valor del modo de bloqueo.
Para obtener más información, consulta Pasa un argumento de Debezium a un trabajo de replicación.
Limitaciones
- La replicación en Cloud Data Fusion admite la versión 1.3 del conector de Debezium.
Fuentes de Oracle en Cloud Data Fusion
La replicación de fuentes de Oracle en Cloud Data Fusion se realiza con Datastream. Datastream no bloquea tablas.
¿Qué sigue?
- Obtén más información sobre la replicación.