En esta sección, se incluye información sobre lo siguiente:
- El comportamiento de cómo Datastream controla los datos que se extraen de una base de datos de MySQL de origen
- Las versiones de la base de datos de MySQL que Datastream admite
- Limitaciones conocidas para usar la base de datos de MySQL como fuente
- Una descripción general de cómo configurar una base de datos de MySQL de origen para que los datos se puedan transmitir a un destino
Comportamiento
En esta sección, se describe el comportamiento de las fuentes de MySQL cuando replicas datos con Datastream. Cuando transfieres datos de bases de datos de MySQL, puedes usar la replicación basada en el registro de transacciones binarias o la replicación basada en identificadores de transacciones globales (GTID) (Versión preliminar). Seleccionas tu método de CDC cuando creas una transmisión.
Replicación basada en binlog
Datastream puede usar archivos de registro binario para mantener un registro de los cambios de datos en las bases de datos de MySQL. Luego, la información contenida en estos archivos de registro se replica en el destino para reproducir los cambios realizados en la fuente.
Las características clave de la replicación basada en binlogs en Datastream son las siguientes:
- Se pueden seleccionar todas las bases de datos o bases de datos específicas de una fuente de MySQL determinada, así como todas las tablas de las bases de datos o tablas específicas.
- Se replican todos los datos históricos.
- Se replican todos los cambios del lenguaje de manipulación de datos (DML), como las inserciones, las actualizaciones y las eliminaciones de las bases de datos y las tablas especificadas.
- Solo se replican los cambios confirmados.
Replicación basada en identificador de transacciones globales (GTID)
Datastream también admite la replicación basada en identificadores globales (GTID).
El identificador de transacciones global (GTID) es un identificador único que se crea y se asocia con cada transacción confirmada en una fuente de MySQL. Este identificador es único no solo para la fuente en la que se originó, sino también para todos los servidores en una topología de replicación determinada, a diferencia de la replicación basada en registros binarios, en la que cada nodo del clúster de bases de datos mantiene sus propios archivos de registro binario, con su propia numeración. Mantener archivos binlog y numeración separados puede convertirse en un problema en caso de falla o tiempo de inactividad planificado, ya que se interrumpe la continuidad del binlog y falla la replicación basada en él.
La replicación basada en GTID admite conmutaciones por error, clústeres de bases de datos autoadministradas y sigue funcionando independientemente de los cambios en el clúster de bases de datos.
Las características clave de la replicación basada en GTID en Datastream son las siguientes:
- Se pueden seleccionar todas las bases de datos o bases de datos específicas de una fuente de MySQL determinada, así como todas las tablas de las bases de datos o tablas específicas.
- Se replican todos los datos históricos.
- Se replican todos los cambios del lenguaje de manipulación de datos (DML), como las inserciones, las actualizaciones y las eliminaciones de las bases de datos y las tablas especificadas.
- Solo se replican los cambios confirmados.
- Compatibilidad fluida con conmutaciones por error
Versiones
Datastream admite las siguientes versiones de la base de datos de MySQL:
- MySQL 5.6
- MySQL 5.7
- MySQL 8.0
MySQL 8.4 (solo es compatible con la replicación basada en GTID)
Datastream admite los siguientes tipos de bases de datos de MySQL:
- MySQL autoalojado
- Cloud SQL para MySQL
- Amazon RDS para MySQL
- Amazon Aurora MySQL
- MariaDB
- Alibaba Cloud PolarDB
- Percona Server para MySQL
Limitaciones conocidas
Entre las limitaciones conocidas para usar la base de datos de MySQL como fuente, se incluyen las siguientes:
- Las transmisiones se limitan a 10,000 tablas.
- Las tablas que tienen una clave primaria definida como
INVISIBLE
no se pueden reabastecer. - Una tabla que tiene más de 500 millones de filas no se puede reabastecer, a menos que se cumplan las siguientes condiciones:
- La tabla tiene un índice único.
- Ninguna de las columnas del índice puede aceptar valores nulos.
- El índice no es descendente.
- Todas las columnas del índice se incluyen en el flujo.
- Datastream recupera periódicamente el esquema más reciente de la fuente a medida que se procesan los eventos. Si cambia un esquema, Datastream lo detecta y activa una recuperación de esquema. Sin embargo, es posible que algunos eventos se procesen de forma incorrecta o se descarten entre las recuperaciones de esquemas, lo que puede causar discrepancias en los datos.
- No todos los cambios en el esquema de origen se pueden detectar automáticamente, en cuyo caso pueden ocurrir daños en los datos. Los siguientes cambios de esquema pueden causar daños en los datos o que no se puedan procesar los eventos en etapas posteriores:
- Descarta columnas
- Agregar columnas en medio de una tabla
- Cambiar el tipo de datos de una columna
- Reordenar las columnas
- Eliminación de tablas (relevante si se vuelve a crear la misma tabla con datos nuevos)
- Truncar tablas
- Datastream no admite la replicación de vistas.
- Datastream no admite columnas de tipos de datos espaciales. Los valores de estas columnas se reemplazan por valores
NULL
. - Datastream no admite el valor cero (
0000-00-00 00:00:00
) en las columnas de los tipos de datosDATETIME
,DATE
oTIMESTAMP
. El valor cero se reemplaza por el valorNULL
. - Datastream no admite la replicación de filas que incluyen los siguientes valores en las columnas
JSON
:DECIMAL
,NEWDECIMAL
,TIME
,TIME2
,DATETIME
,DATETIME2
,DATE
,TIMESTAMP
oTIMESTAMP2
. Se descartan los eventos que contienen esos valores. - Datastream no admite la compresión de transacciones de registros binarios.
- Datastream no admite cadenas de certificados SSL en los perfiles de conexión de MySQL de origen. Solo se admiten certificados únicos con codificación PEM x509.
- Datastream no admite eliminaciones en cascada. Estos eventos no se escriben en el registro binario y, como resultado, no se propagan al destino.
- Cuando se usa la replicación basada en registros binarios, Datastream no admite conmutaciones por error a réplicas. Por este motivo, no recomendamos usar Datastream para la replicación desde fuentes de Cloud SQL para MySQL Enterprise Plus. Las instancias de la edición Enterprise Plus de Cloud SQL están sujetas a un mantenimiento con un tiempo de inactividad casi nulo y se transfieren a una réplica durante el mantenimiento. Esto interrumpe la continuidad del registro binario y, como resultado, las transmisiones afectadas fallan de forma permanente.
Limitaciones adicionales para la replicación basada en GTID
- La recuperación de flujos no se admite cuando usas la replicación basada en GTID.
- No se admite la creación de tablas a partir de otras con las sentencias
CREATE TABLE ... SELECT
. - Para conocer las restricciones de MySQL que se aplican a la replicación basada en GTID, consulta la documentación de MySQL.
¿Qué sigue?
- Aprende a configurar una fuente de MySQL para usarla con Datastream.