MySQL: tipos de dato, objetos y operaciones soportados
Esta sección contiene información de soporte para Oracle GoldenGate en MySQL Database.
Oracle GoldenGate for MySQL soporta la asignación, el filtrado y la transformación de datos de origen, a menos que se indique lo contrario en este documento, junto con la replicación de datos derivados de otras bases de datos de origen soportadas por Oracle GoldenGate, en bases de datos MySQL.
Oracle GoldenGate para tipos de dato soportados MySQL
Oracle GoldenGate for MySQL soporta los siguientes tipos de dato:
-
BLOB -
BIGINT -
BINARY -
BIT(M) -
CHAR -
DATE -
DATETIME -
DECIMAL -
DOUBLE -
ENUM -
FLOAT -
INT -
JSON -
LONGBLOB -
LONGTEXT -
MEDIUMBLOB -
MEDIUMINT -
MEDIUMTEXT -
SMALLINT -
TEXT -
TIME -
TIMESTAMP -
TINYBLOB -
TINYINT -
TINYTEXT -
VARBINARY -
VARCHAR -
VECTOR -
YEAR
Limitaciones y aclaraciones
Al ejecutar Oracle GoldenGate para MySQL, tenga en cuenta lo siguiente:
-
Los índices funcionales no están soportados para la captura o entrega.
-
Oracle GoldenGate no soporta los tipos
BLOBoTEXTcuando se utiliza como clave primaria. -
Oracle GoldenGate soporta un rango de tipos
TIMEde 00:00:00 a 23:59:59. -
Oracle GoldenGate soporta datos de registro de hora de
0001/01/03:00:00:00a9999/12/31:23:59:59. Si se convierte un registro de hora de GMT a la hora local, estos límites también se aplican al registro de hora resultante. Dependiendo de la zona horaria, la conversión puede sumar o restar horas, lo que puede hacer que el registro de hora supere el límite admitido inferior o superior. -
Oracle GoldenGate no admite fechas negativas.
-
El soporte de rango y precisión para los números de punto flotante depende de la máquina host. En general, la precisión es de 16 dígitos significativos, pero debe revisar la documentación de la base de datos para determinar las aproximaciones esperadas. Oracle GoldenGate redondea o trunca los valores que superan la precisión soportada.
-
Al utilizar el tipo
ENUMensql_modeno estricto, el valorsql_modeno estricto no impide introducir un valorENUMno válido y se devolverá un error. Para evitar esta situación, realice una de las siguientes acciones:-
Utilice
sql_modecomoSTRICTy reinicie Extract. Esto evita que los usuarios introduzcan valores no válidos para cualquiera de los tipos de dato. Un usuario de IE solo puede introducir valores válidos para esos tipos de dato. -
Siga utilizando
sql_modeno estricto, pero no utilice tipos de datoENUM. -
Siga utilizando
sql_modeno estricto y utilice tipos de datoENUMcon valores válidos en la base de datos. Si especifica valores no válidos, la base de datos los aceptará de forma silenciosa y Extract finalizará de forma anormal.
-
-
La tabla con una sola columna no está soportada para el tipo de dato JSON. La extracción finalizará de forma anormal en caso de que se configure para una tabla que tenga una única columna de tipo de dato
JSON. -
El tipo de dato
JSONno admite CDR. El siguiente mensaje se registra en el archivo de informe siGETBEFORECOLSestá configurado y la tabla tiene columnas de tipos de datoJSON:INFO OGG-06556 The following columns will not be considered for CDRLas limitaciones de CDR se aplican a los casos en los que se utilizan
GETBEFORECOLSyCOMPARECOLS. -
La extracción MySQL no finaliza de forma anormal y procesa los valores de columna
ENUMque no están definidos en la definición de tabla como 'invalid_enum'.
Tipos de dato MySQL no soportados
Oracle GoldenGate para MySQL no soporta los siguientes tipos de dato:
Todos los tipos espaciales (GEOMETRY, etc.) y SET.
No se admiten todos los siguientes tipos GEOMETRY en MySQL:
-
PUNTO
-
CADENA DE LÍNEAS
-
POLÍGONO
-
MULTIPUNTO
-
MULTILÍNEA
-
MULTIPOLÍGONO
-
Nota: La extracción finaliza de forma anormal si está configurada para capturar de tablas que contienen cualquiera de los tipos de dato no soportados, de modo que asegúrese de que Extract no esté configurado para capturar de tablas que contienen columnas de tipos de dato no soportados.
Objetos y operaciones soportados para MySQL
Oracle GoldenGate for MySQL soporta los siguientes objetos y operaciones:
-
Oracle GoldenGate soporta las siguientes operaciones DML en las tablas transaccionales de la base de datos de origen y destino:
-
Insertar operación
-
Operación de actualización (comprimida incluida)
-
Operación de supresión (comprimida incluida)
-
Truncar operación
-
-
Oracle GoldenGate soporta la extracción y replicación de operaciones DDL (lenguaje de definición de datos).
-
Oracle GoldenGate soporta tablas transaccionales hasta el tamaño de fila completo y el número máximo de columnas soportadas por MySQL y el motor de almacenamiento de base de datos que se está utilizando. InnoDB soporta hasta 1017 columnas.
-
Oracle GoldenGate soporta la extracción de columnas generadas.
-
No se permite la replicación en una columna generada MySQL, por lo que cualquier dato de columna generada de origen debe asignarse a una columna no generada.
-
Oracle GoldenGate soporta el atributo de columna
AUTO_INCREMENT. El valor de incremento se captura del log binario mediante Extract y se aplica a la tabla de destino en una operación de inserción de Replicat. -
Oracle GoldenGate puede funcionar simultáneamente con la replicación nativa MySQL.
-
Oracle GoldenGate soporta la función
DYNSQLpara MySQL.
Nota: Las transacciones XA no se admiten para la captura y las transacciones XA registradas en binlog provocan que Extract finalice de forma anormal. Por lo tanto, no debe utilizar transacciones XA en una base de datos que Extract esté configurada para capturar. Si se están utilizando transacciones XA para bases de datos que no están configuradas para la captura de Oracle GoldenGate, excluya esas bases de datos de la conexión a los logs binarios MySQL mediante el parámetro binlog-ignore-db en el archivo de configuración del servidor MySQL.
Las limitaciones en el soporte de la tabla automática de latidos son las siguientes:
-
Asegúrese de que la base de datos en la que se va a crear la tabla de latidos ya existe para evitar errores al agregar la tabla de latidos.
-
En la vista de demora del historial de latidos, la información de campos como
heartbeat_received_ts,incoming_heartbeat_ageyoutgoing_heartbeat_agese muestra con respecto a la hora del sistema. Debe asegurarse de que la hora del sistema operativo esté configurada con la información de zona horaria correcta y actual. -
Posición por fin de archivo (EOF) se admite en MySQL. Oracle GoldenGate Extract para MySQL busca la posición correspondiente al final del archivo e inicia la lectura del archivo desde esta. La posición de EOF no es exacta si los datos se escriben continuamente en el log binario.
El Extract se agrega y modifica mediante:
ADD EXTRACT *group_name*, TRANLOG, EOFALTER EXTRACT *group_name*, EOF
Detalles de Soporte para Objetos y Operaciones en DDL MySQL
A continuación, se muestra una lista de los objetos MySQL y los tipos de operación que soporta Oracle GoldenGate para la captura y replicación de operaciones DDL.
-
La replicación de DDL para MySQL solo está soportada entre las bases de datos MySQL como orígenes y destinos.
-
La extracción y replicación de operaciones DDL están soportadas para MySQL 8.0 y versiones posteriores. Las operaciones DDL soportadas incluyen:
-
CREATE TABLE(excluidoCREATE TABLE AS SELECT) -
DROP TABLE -
TRUNCATE TABLE(Soporte conGETTRUNCATES) -
ALTER TABLE TRUNCATE PARTITION -
ALTER TABLE ADD COLUMN -
ALTER TABLE ADD COLUMN AFTER -
ALTER TABLE DROP COLUMN -
ALTER TABLE MODIFY COLUMN(COLUMN_NAME,TYPE,SIZE) -
ALTER TABLE ADD (constraints) PRIMARY KEY -
ALTER TABLE DROP PRIMARY KEY
-
-
Para MySQL 8.0, se soporta la captura de DDL local y remota.
-
Las operaciones
TRUNCATEestán soportadas como DML mediante el parámetro Extract y ReplicatGETTRUNCATESy no necesitan configurar Oracle GoldenGate para el soporte de DDL MySQL. -
La replicación de DDL no está soportada en una configuración bidireccional de Oracle GoldenGate.
-
La replicación de DDL no está soportada para los servicios de base de datos basados en la nube en los que el valor de base de datos
binlog_row_metadatano se puede definir enFULL.
Objetos y Operaciones No Soportados para MySQL
Oracle GoldenGate para MySQL no soporta los siguientes objetos y operaciones:
-
Columnas invisibles
-
Función
BATCHSQLde Oracle GoldenGate para Replicat. -
Los siguientes juegos de caracteres no están soportados:
-
ULIB_CS_ARMSCII8, /* Nacional Americano 166-9 */
-
ULIB_CS_GEOSTD8, /* Geogian Standard */
-
ULIB_CS_KEYBCS2, /* Kemennicky MS-DOS
-
-
La captura de datos LOB de NLS mediante las opciones
FETCHMOCOLSyFETCHMODCOLEXCEPTTABLE no está soportada cuando DDL está activado. -
Cambio de Nombre de las Tablas
-
Las sentencias DDL dentro de los procedimientos almacenados no están soportadas.
-
Cuando la zona horaria del servidor de instalación de Oracle GoldenGate no coincide con la zona horaria del servidor de base de datos origen, los datos de TIMESTAMP enviados a la base de datos destino serán diferentes de la base de datos origen. Para las instalaciones de Oracle GoldenGate Microservices, independientemente de que las zonas horarias sean las mismas, Extract resolverá la zona horaria en UTC. Determine la zona horaria de la base de datos origen ejecutando la siguiente consulta:
select @@system_time_zone;Esto devolverá un valor de zona horaria, como PDT.
Cree una variable en el despliegue que contenga el Extract de origen, denominado
TZy defínala en el valor de la zona horaria de la base de datos de origen. Después de esto, pare cualquier proceso de Oracle GoldenGate en ejecución y reinicie el servicio de administración y, a continuación, inicie Extracts y Replicats. -
La extracción y replicación desde y hacia vistas no están soportadas.
-
Las transacciones aplicadas por el esclavo se registran en los logs de retransmisión y no en
binlogdel esclavo. Si desea que un esclavo escriba las transaccionesbinlogque recibe del maestro, debe iniciar el esclavo de replicación con la opción de actualizaciones esclavas de log como 1 enmy.cnf. Esto se suma a los otros parámetros de registro binario. Después de que las transacciones del maestro estén enbinlogdel esclavo, puede configurar una captura regular en el esclavo para capturar y procesarbinlogdel esclavo.
Limitaciones de objetos y operaciones SingleStoreDB
Oracle GoldenGate for MySQL ahora soporta SingleStoreDB y SingleStoreDB Cloud, pero con las siguientes limitaciones:
-
La replicación en vistas dentro de SingleStoreDB no está soportada, ya que solo las tablas base se pueden escribir.
-
Las actualizaciones de las columnas que forman parte de la clave
SHARDno están soportadas. -
Las actualizaciones de clave primaria en tablas sin clave
SHARDexplícita no están soportadas. Esto se debe a que SingleStoreDB asigna la clave primaria como claveSHARDen esta situación y no se permiten las actualizaciones en las columnas de claveSHARD. -
El comportamiento
DBOPTIONS LIMITROWSde Replicat para tablas SingleStoreDB sin una clave primaria o única que se distribuya en varias particiones no está soportado. -
Las opciones de los parámetros
DBOPTIONS LIMITROWSyNOLIMITROWSno están soportadas para SingleStoreDB. -
SingleStoreDB no soporta transacciones entre bases de datos, lo que significa que un Replicat solo puede soportar la asignación a un único esquema/base de datos. Esto incluye asignaciones para tablas de puntos de control y latidos, por lo que estos objetos se deben crear en el mismo esquema/base de datos que las tablas de usuario que se van a replicar.
Esquemas de Sistema
Oracle GoldenGate no replica automáticamente los siguientes esquemas u objetos a menos que se especifiquen explícitamente sin un comodín.
-
MySQL
-
'information_schema' -
'performance_schema' -
'mysql' -
'sys'
-
-
SingleStore
-
'information_schema' -
'cluster' -
'memsql'
-