MySQL: Tipos de Dados, Objetos e Operações Suportados
Esta seção contém informações de suporte para o Oracle GoldenGate no MySQL Database.
O Oracle GoldenGate for MySQL suporta o mapeamento, a filtragem e a transformação de dados de origem, a menos que seja observado o contrário neste documento, juntamente com a replicação de dados derivados de outros bancos de dados de origem suportados pelo Oracle GoldenGate, em bancos de dados MySQL.
Tipos de Dados Suportados pelo Oracle GoldenGate for MySQL
O Oracle GoldenGate for MySQL suporta os seguintes tipos de dados:
-
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
Limitações e Esclarecimentos
Ao executar o Oracle GoldenGate for MySQL, esteja ciente do seguinte:
-
Não há suporte para índices funcionais para Captura ou Entrega.
-
O Oracle GoldenGate não suporta os tipos
BLOBouTEXTquando usado como chave primária. -
O Oracle GoldenGate suporta uma faixa de tipos
TIMEde 00:00:00 a 23:59:59. -
O Oracle GoldenGate suporta dados de timestamp de
0001/01/03:00:00:00para9999/12/31:23:59:59. Se um timestamp for convertido de GMT para hora local, esses limites também se aplicarão ao timestamp resultante. Dependendo do fuso horário, a conversão pode adicionar ou subtrair horas, o que pode fazer com que o timestamp exceda o limite inferior ou superior suportado. -
O Oracle GoldenGate não suporta datas negativas.
-
O suporte de alcance e precisão para números de ponto flutuante depende da máquina host. Em geral, a precisão é precisa para 16 dígitos significativos, mas você deve revisar a documentação do banco de dados para determinar as aproximações esperadas. O Oracle GoldenGate arredonda ou trunca valores que excedem a precisão suportada.
-
Quando você usa o tipo
ENUMemsql_modenão estrito, osql_modenão estrito não impede que você informe um valorENUMinválido e um erro será retornado. Para evitar essa situação, execute um dos seguintes procedimentos:-
Use
sql_modecomoSTRICTe reinicie o processo Extract. Isso impede que os usuários insiram valores inválidos para qualquer um dos tipos de dados. Um usuário do IE só pode informar valores válidos para esses tipos de dados. -
Continue usando
sql_modenão restrito, mas não use tipos de dadosENUM. -
Continue usando tipos de dados
sql_modenão estritos e useENUMcom valores válidos no banco de dados. Se você especificar valores inválidos, o banco de dados os aceitará silenciosamente, e o Extract será anormal.
-
-
A tabela com coluna única não é suportada para o tipo de dados JSON. A extração será encerrada caso seja configurada para uma tabela que tenha uma única coluna do tipo de dados
JSON. -
O tipo de dados
JSONnão suporta CDR. A seguinte mensagem será registrada no arquivo de relatório seGETBEFORECOLSestiver configurado e a tabela tiver colunas de tipos de dadosJSON:INFO OGG-06556 The following columns will not be considered for CDRAs limitações do CDR se aplicam aos casos em que o
GETBEFORECOLSe oCOMPARECOLSsão usados. -
O Extract MySQL não é interrompido e processa os valores da coluna
ENUMque não estão definidos na definição da tabela como 'invalid_enum'.
Tipos de Dados MySQL Não Suportados
O Oracle GoldenGate for MySQL não suporta os seguintes tipos de dados:
Todos os tipos espaciais (GEOMETRY e assim por diante) e SET.
Todos os seguintes tipos de GEOMETRY não são suportados em MySQL:
-
PONTO
-
LINHO
-
POLÍGONO
-
MULTIPONTO
-
MULTILINESTRING
-
MULTIPOLÍGONO
-
GEOMCOLLECTION Observação: A extração será encerrada se estiver configurada para capturar de tabelas que contenham qualquer um dos tipos de dados não suportados, portanto, certifique-se de que a Extração não esteja configurada para capturar de tabelas que contenham colunas de tipos de dados não suportados.
Objetos e Operações Suportados para MySQL
O Oracle GoldenGate for MySQL suporta os seguintes objetos e operações:
-
O Oracle GoldenGate suporta as seguintes operações DML em tabelas transacionais de banco de dados de origem e de destino:
-
Inserir operação
-
Operação de atualização (compactada incluída)
-
Operação de exclusão (compactada incluída)
-
Truncar operação
-
-
O Oracle GoldenGate suporta a extração e a replicação de operações DDL (linguagem de definição de dados).
-
O Oracle GoldenGate suporta tabelas transacionais até o tamanho total da linha e o número máximo de colunas suportadas pelo MySQL e pelo mecanismo de armazenamento do banco de dados que está sendo usado. O InnoDB suporta até 1017 colunas.
-
O Oracle GoldenGate suporta a extração de colunas Geradas.
-
A replicação não é permitida para uma coluna Gerada MySQL; portanto, qualquer dado de coluna Gerado de origem precisa ser mapeado para uma coluna não Gerada.
-
O Oracle GoldenGate suporta o atributo de coluna
AUTO_INCREMENT. O valor do incremento é capturado do log de binários por Extract e aplicado à tabela de destino em uma operação de inserção de Replicat. -
O Oracle GoldenGate pode operar simultaneamente com a replicação nativa MySQL.
-
O Oracle GoldenGate suporta o recurso
DYNSQLpara MySQL.
Observação: as transações XA não são suportadas para captura e qualquer transação XA registrada em binlog faz com que a Extração seja encerrada. Portanto, não use transações XA em um banco de dados que o Extract esteja configurado para capturar. Se as transações XA estiverem sendo usadas para bancos de dados que não estão configurados para captura do Oracle GoldenGate, exclua esses bancos de dados do log-in nos logs binários MySQL usando o parâmetro binlog-ignore-db no arquivo de configuração do servidor MySQL.
As limitações no suporte automático da tabela de pulsação são as seguintes:
-
Verifique se o banco de dados no qual a tabela de integridade deve ser criada já existe para evitar erros ao adicionar a tabela de integridade.
-
Na exibição de atraso do histórico de pulsação, as informações em campos como
heartbeat_received_ts,incoming_heartbeat_ageeoutgoing_heartbeat_agesão mostradas em relação ao horário do sistema. Certifique-se de que a hora do sistema operacional esteja configurada com as informações de fuso horário corretas e atuais. -
A posição por fim de arquivo (EOF) é suportada no MySQL. O Oracle GoldenGate Extract para MySQL localiza a posição correspondente ao final do arquivo e inicia a leitura de transações a partir daí. A posição EOF não é exata, se os dados forem gravados continuamente no log de binários.
O Extract é adicionado e alterado usando-se:
ADD EXTRACT *group_name*, TRANLOG, EOFALTER EXTRACT *group_name*, EOF
Detalhes do Suporte a Objetos e Operações na DDL MySQL
Veja a seguir uma lista dos objetos MySQL e tipos de operação que o Oracle GoldenGate suporta para a captura e replicação de operações DDL.
-
A replicação de DDL para MySQL só é suportada entre bancos de dados MySQL como origens e destinos.
-
A extração e a replicação de operações DDL são suportadas para o MySQL 8.0 e versões posteriores. As operações DDL suportadas incluem:
-
CREATE TABLE(excluindoCREATE TABLE AS SELECT) -
DROP TABLE -
TRUNCATE TABLE(Suporte ao usarGETTRUNCATES) -
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 o MySQL 8.0, a captura de DDL local e remota é suportada.
-
As operações
TRUNCATEsão suportadas como DML por meio do parâmetro Extract e ReplicatGETTRUNCATESe não exigem a configuração do Oracle GoldenGate para suporte a DDL MySQL. -
Não há suporte para a replicação de DDL em uma configuração bidirecional do Oracle GoldenGate.
-
A replicação de DDL não é suportada para serviços de banco de dados baseados na nuvem nos quais a definição do banco de dados
binlog_row_metadatanão pode ser definida comoFULL.
Objetos e Operações Não Suportados para MySQL
O Oracle GoldenGate for MySQL não suporta os seguintes objetos e operações:
-
Colunas invisíveis
-
A funcionalidade
BATCHSQLdo Oracle GoldenGate para Replicat. -
Os seguintes conjuntos de caracteres não são suportados:
-
ULIB_CS_ARMSCII8, /* American National 166-9 */
-
ULIB_CS_GEOSTD8, /* Padrão Geogiano */
-
ULIB_CS_KEYBCS2, /* Kemennicky MS-DOS
-
-
A captura de dados NLS LOB usando as opções
FETCHMOCOLSeFETCHMODCOLEXCEPTTABLE não é suportada quando a DDL é ativada. -
Renomeando tabelas.
-
Instruções DDL dentro de procedimentos armazenados não são suportadas.
-
Quando o fuso horário do servidor de instalação do Oracle GoldenGate não corresponder ao fuso horário do servidor de banco de dados de origem, os dados TIMESTAMP enviados para o banco de dados de destino serão diferentes do banco de dados de origem. Para instalações do Oracle GoldenGate Microservices, independentemente de os fusos horários serem os mesmos, o Extract resolverá o fuso horário para UTC. Determine o fuso horário do banco de dados de origem executando a seguinte consulta:
select @@system_time_zone;Isso retornará um valor de fuso horário, como PDT.
Crie uma variável na implantação que contenha o Extract de origem, chamado
TZ, e defina-a com o valor do fuso horário do banco de dados de origem. Depois disso, interrompa todos os processos do Oracle GoldenGate em execução, reinicie o Serviço Administration e, em seguida, inicie os processos Extract e Replicats. -
Não há suporte para extração e replicação de e para views.
-
As transações aplicadas pelo subordinado são registradas nos logs de retransmissão e não no
binlogdo subordinado. Se quiser que um subordinado grave as transaçõesbinlogque ele recebe do mestre, você precisará iniciar o subordinado de replicação com a opção de atualizações de subordinado de log como 1 emmy.cnf. Isso é além dos outros parâmetros de log de binários. Depois que as transações do mestre estiverem nobinlogdo subordinado, você poderá configurar uma captura regular no subordinado para capturar e processar obinlogdo subordinado.
Limitações de Objetos e Operações SingleStoreDB
O Oracle GoldenGate for MySQL agora suporta SingleStoreDB e SingleStoreDB Cloud, mas com as seguintes limitações:
-
Não há suporte para replicação em views dentro de SingleStoreDB, pois somente as tabelas base podem ser gravadas.
-
Não há suporte para atualizações em colunas que fazem parte da chave
SHARD. -
Não há suporte para atualizações de chave primária em tabelas sem chave
SHARDexplícita. Isso ocorre porque SingleStoreDB designa a chave primária como a chaveSHARDnessa situação e as atualizações para colunas de chaveSHARDnão são permitidas. -
Não há suporte para o comportamento
DBOPTIONS LIMITROWSdo Replicat para tabelas SingleStoreDB sem uma chave primária ou exclusiva distribuída entre várias partições. -
As opções de parâmetro
DBOPTIONS LIMITROWSeNOLIMITROWSnão são suportadas para SingleStoreDB. -
SingleStoreDB não suporta transações entre bancos de dados, o que significa que um Replicat só pode suportar mapeamento para um único esquema/banco de dados. Isso inclui mapeamentos para tabelas de checkpoint e heartbeat, portanto, esses objetos devem ser criados no mesmo esquema/banco de dados que as tabelas do usuário a serem replicadas.
Esquemas do Sistema
Os esquemas ou objetos a seguir não são replicados automaticamente pelo Oracle GoldenGate, a menos que sejam especificados explicitamente sem um curinga.
-
MySQL
-
'information_schema' -
'performance_schema' -
'mysql' -
'sys'
-
-
SingleStore
-
'information_schema' -
'cluster' -
'memsql'
-