MySQL: tipi di dati, oggetti e operazioni supportati
Questa sezione contiene informazioni sul supporto per Oracle GoldenGate su MySQL Database.
Oracle GoldenGate for MySQL supporta il mapping, il filtro e la trasformazione dei dati di origine, a meno che non sia indicato diversamente in questo documento, nonché la replica dei dati derivati da altri database di origine supportati da Oracle GoldenGate, nei database MySQL.
Tipi di dati supportati da Oracle GoldenGate per MySQL
Oracle GoldenGate for MySQL supporta i tipi di dati riportati di seguito.
-
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
Limiti e chiarimenti
Quando si esegue Oracle GoldenGate per MySQL, tenere presente quanto riportato di seguito.
-
Gli indici funzionali non sono supportati per Acquisizione o Consegna.
-
Oracle GoldenGate non supporta i tipi
BLOBoTEXTquando viene utilizzato come chiave primaria. -
Oracle GoldenGate supporta un intervallo di tipo
TIMEdalle 00:00:00 alle 23:59:59. -
Oracle GoldenGate supporta i dati dell'indicatore orario da
0001/01/03:00:00:00a9999/12/31:23:59:59. Se un indicatore orario viene convertito da GMT all'ora locale, questi limiti si applicano anche all'indicatore orario risultante. A seconda del fuso orario, la conversione può aggiungere o sottrarre ore, il che può causare il superamento dell'indicatore orario del limite supportato inferiore o superiore. -
Oracle GoldenGate non supporta date negative.
-
Il supporto della gamma e della precisione per i numeri a virgola mobile dipende dalla macchina host. In generale, la precisione è precisa a 16 cifre significative, ma è necessario esaminare la documentazione del database per determinare le approssimazioni previste. Oracle GoldenGate arrotonda o tronca i valori che superano la precisione supportata.
-
Quando si utilizza il tipo
ENUMinsql_modenon rigoroso, il valore non rigorososql_modenon impedisce di immettere un valoreENUMnon valido e verrà restituito un errore. Per evitare questa situazione, effettuare una delle operazioni riportate di seguito.-
Utilizzare
sql_modecomeSTRICTe riavviare Extract. Ciò impedisce agli utenti di immettere valori non validi per uno qualsiasi dei tipi di dati. Un utente IE può immettere solo valori validi per tali tipi di dati. -
Continuare a utilizzare
sql_modenon rigoroso, ma non utilizzare i tipi di datiENUM. -
Continuare a utilizzare
sql_modenon rigoroso e utilizzare i tipi di datiENUMcon valori validi nel database. Se si specificano valori non validi, il database li accetterà in silenzio e Extract verrà interrotto.
-
-
La tabella con colonna singola non è supportata per il tipo di dati JSON. Extract verrà interrotto se è configurato per una tabella con un'unica colonna di tipo dati
JSON. -
Il tipo di dati
JSONnon supporta il CDR. Il messaggio seguente viene registrato nel file di report se è configuratoGETBEFORECOLSe la tabella dispone di colonne di tipi di datiJSON:INFO OGG-06556 The following columns will not be considered for CDRLe limitazioni per il CDR si applicano ai casi in cui vengono utilizzati
GETBEFORECOLSeCOMPARECOLS. -
L'estrazione MySQL non viene interrotta ed elabora i valori della colonna
ENUMnon definiti nella definizione della tabella come 'invalid_enum'.
Tipi di dati MySQL non supportati
Oracle GoldenGate for MySQL non supporta i tipi di dati riportati di seguito.
Tutti i tipi spaziali (GEOMETRY e così via) e SET.
Tutti i seguenti tipi GEOMETRY non sono supportati in MySQL:
-
PUNTO
-
FODERA
-
POLIGONO
-
MULTIPUNTO
-
MULTILINEA
-
MULTIPOLIGONO
-
GEOMCOLLECTION Nota: l'estrazione viene interrotta se è configurata per l'acquisizione da tabelle che contengono uno qualsiasi dei tipi di dati non supportati, pertanto assicurarsi che Extract non sia configurato per l'acquisizione da tabelle contenenti colonne di tipi di dati non supportati.
Oggetti e operazioni supportati per MySQL
Oracle GoldenGate for MySQL supporta gli oggetti e le operazioni riportati di seguito.
-
Oracle GoldenGate supporta le operazioni DML riportate di seguito nelle tabelle transazionali del database di origine e di destinazione.
-
Inserisci operazione
-
Operazione di aggiornamento (compressa inclusa)
-
Operazione di eliminazione (compressa inclusa)
-
Operazione di troncamento
-
-
Oracle GoldenGate supporta l'estrazione e la replica delle operazioni DDL (data definition language).
-
Oracle GoldenGate supporta tabelle transazionali fino alla dimensione riga completa e al numero massimo di colonne supportate da MySQL e dal motore di storage del database utilizzato. InnoDB supporta fino a 1017 colonne.
-
Oracle GoldenGate supporta l'estrazione delle colonne generate.
-
La replica non è consentita a una colonna generata MySQL, pertanto è necessario mappare i dati delle colonne generate di origine a una colonna non generata.
-
Oracle GoldenGate supporta l'attributo colonna
AUTO_INCREMENT. Il valore di incremento viene acquisito dal log binario mediante Extract e applicato alla tabella di destinazione in un'operazione di inserimento Replicat. -
Oracle GoldenGate può funzionare contemporaneamente con la replica nativa MySQL.
-
Oracle GoldenGate supporta la funzione
DYNSQLper MySQL.
Nota: le transazioni XA non sono supportate per l'acquisizione e le transazioni XA registrate in binlog causano l'interruzione dell'estrazione. Pertanto, non è necessario utilizzare le transazioni XA per un database configurato per l'acquisizione da Extract. Se le transazioni XA vengono utilizzate per database non configurati per l'acquisizione di Oracle GoldenGate, escludere tali database dal login ai log binari MySQL utilizzando il parametro binlog-ignore-db nel file di configurazione del server MySQL.
Le limitazioni al supporto automatico delle tabelle heartbeat sono le seguenti:
-
Assicurarsi che il database in cui deve essere creata la tabella heartbeat esista già per evitare errori durante l'aggiunta della tabella heartbeat.
-
Nella vista lag della cronologia di heartbeat, le informazioni in campi quali
heartbeat_received_ts,incoming_heartbeat_ageeoutgoing_heartbeat_agevengono visualizzate in relazione all'ora di sistema. Verificare che l'ora del sistema operativo sia impostata con le informazioni corrette e aggiornate sul fuso orario. -
Position by End of File (EOF) è supportato in MySQL. Oracle GoldenGate Extract for MySQL trova la posizione corrispondente alla fine del file e comincia a leggere le transazioni da quella posizione. La posizione EOF non è esatta se i dati sono scritti in modo costante nel log binario.
L'estratto viene aggiunto e modificato utilizzando:
ADD EXTRACT *group_name*, TRANLOG, EOFALTER EXTRACT *group_name*, EOF
Dettagli del supporto per oggetti e operazioni in DDL MySQL
Di seguito è riportata una lista degli oggetti MySQL e dei tipi di operazione supportati da Oracle GoldenGate per l'acquisizione e la replica delle operazioni DDL.
-
La replica DDL per MySQL è supportata solo tra i database MySQL come origini e destinazioni.
-
L'estrazione e la replica delle operazioni DDL sono supportate per MySQL 8.0 e versioni successive. Le operazioni DDL supportate includono:
-
CREATE TABLE(esclusoCREATE TABLE AS SELECT) -
DROP TABLE -
TRUNCATE TABLE(Supporto tramiteGETTRUNCATES) -
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
-
-
Per MySQL 8.0, è supportata l'acquisizione DDL locale e remota.
-
Le operazioni
TRUNCATEsono supportate come DML tramite il parametro Extract e ReplicatGETTRUNCATESe non richiedono la configurazione di Oracle GoldenGate per il supporto DDL MySQL. -
La replica DDL non è supportata in una configurazione bidirezionale di Oracle GoldenGate.
-
La replica DDL non è supportata per i servizi di database basati su cloud in cui l'impostazione del database
binlog_row_metadatanon può essere impostata suFULL.
Oggetti e operazioni non supportati per MySQL
Oracle GoldenGate for MySQL non supporta gli oggetti e le operazioni riportati di seguito.
-
Colonne invisibili
-
Funzione
BATCHSQLdi Oracle GoldenGate per Replicat. -
I seguenti set di caratteri non sono supportati:
-
ULIB_CS_ARMSCII8, /* Nazionale Americana 166-9 */
-
ULIB_CS_GEOSTD8, /* Geogian Standard */
-
ULIB_CS_KEYBCS2, /* Kemennicky MS-DOS
-
-
L'acquisizione dei dati LOB NLS mediante le opzioni
FETCHMOCOLSeFETCHMODCOLEXCEPTTABLE non è supportata quando DDL è abilitato. -
Ridenominazione di tabelle.
-
Le istruzioni DDL all'interno delle stored procedure non sono supportate.
-
Quando il fuso orario del server di installazione di Oracle GoldenGate non corrisponde al fuso orario del database server di origine, i dati TIMESTAMP inviati al database di destinazione saranno diversi dal database di origine. Per le installazioni di microservizi Oracle GoldenGate, indipendentemente dai fusi orari, Extract risolverà il fuso orario in UTC. Determinare il fuso orario del database di origine eseguendo la query seguente:
select @@system_time_zone;Verrà restituito un valore di fuso orario, ad esempio PDT.
Creare una variabile nella distribuzione contenente l'estrazione di origine, denominata
TZ, e impostarla sul valore del fuso orario del database di origine. Successivamente, arrestare tutti i processi Oracle GoldenGate in esecuzione e riavviare il servizio di amministrazione, quindi avviare Estrazioni e repliche. -
Estrazione e replica da e verso le viste non supportate.
-
Le transazioni applicate dallo slave vengono registrate nei log del relè e non nel file slave
binlog. Se si desidera che uno slave scriva le transazionibinlogche riceve dal master, è necessario avviare lo slave di replica con l'opzione di aggiornamento slave di log 1 inmy.cnf. Questo è in aggiunta agli altri parametri di log binari. Dopo che le transazioni del master si trovano nel file slavebinlog, è possibile impostare un'acquisizione regolare sullo slave per acquisire ed elaborare il file slavebinlog.
Limitazioni di oggetti e operazioni SingleStoreDB
Oracle GoldenGate for MySQL ora supporta SingleStoreDB e SingleStoreDB Cloud, ma con le seguenti limitazioni:
-
La replica alle viste all'interno di SingleStoreDB non è supportata, poiché sono scrivibili solo le tabelle di base.
-
Gli aggiornamenti alle colonne che fanno parte della chiave
SHARDnon sono supportati. -
Gli aggiornamenti della chiave primaria nelle tabelle senza chiave
SHARDesplicita non sono supportati. Questo perché SingleStoreDB assegna la chiave primaria come chiaveSHARDin questa situazione e gli aggiornamenti alle colonne chiaveSHARDnon sono consentiti. -
Il funzionamento
DBOPTIONS LIMITROWSdi Replicat per le tabelle SingleStoreDB senza una chiave primaria o univoca distribuita su più partizioni non è supportato. -
Le opzioni dei parametri
DBOPTIONS LIMITROWSeNOLIMITROWSnon sono supportate per SingleStoreDB. -
SingleStoreDB non supporta le transazioni tra database, il che significa che Replicat può supportare solo il mapping a un singolo schema/database. Ciò include i mapping per le tabelle di checkpoint e heartbeat, pertanto questi oggetti devono essere creati nello stesso schema/database delle tabelle utente da replicare.
Schemi di sistema
Gli schemi o gli oggetti riportati di seguito non vengono replicati automaticamente da Oracle GoldenGate a meno che non vengano specificati in modo esplicito senza un carattere jolly.
-
MySQL
-
'information_schema' -
'performance_schema' -
'mysql' -
'sys'
-
-
SingleStore
-
'information_schema' -
'cluster' -
'memsql'
-