Limitazioni e oggetti e operazioni non supportati
GoldenGate Replicat comporta le stesse limitazioni esistenti in Google Cloud Spanner. Lo sviluppatore dell'applicazione dovrebbe essere consapevole di queste limitazioni e deve progettare il loro carico di applicazione di conseguenza.
Di seguito sono riportate le operazioni non supportate da Oracle GoldenGate Replicat per Google Spanner nella release corrente.
-
Replicat parallelo non supportato nella release di anteprima.
-
Replica DDL non supportata con Replicat per Google Cloud Spanner.
-
SQLEXEC non supportato.
-
Evoluzione automatica schema non supportata.
-
Il rilevamento e la risoluzione dei conflitti non sono supportati con Replicat per Google Cloud Spanner.
-
Oracle GoldenGate Replicat non supporta
PKUPDATEper le tabelle che hanno applicato un vincolo di integrità referenziale (sia perON DELETE CASCADEche perON DELETE NO ACTION). -
Replicat per Google Spanner non supporta
SUSPEND EVENT ACTIONperché il database di Google Cloud Spanner abortisce automaticamente qualsiasi transazione di lettura/scrittura inattiva per più di 10 secondi e non supporta alcuna configurazione che consenta di aumentare il timeout di inattività di 10 secondi. Se si utilizzaSUSPENDcome azione evento, la transazione rimarrà aperta per più di 10 secondi e verrà eseguita l'aborto automatico suRESUME.In questi casi, è possibile utilizzare la regola
REPERROR RETRYin caso di erroreABORTED(codice di errore 10) per riprovare a eseguire la transazione quando la replica rileva una transazione interrotta. Ciò vale anche per le regole DMLREPERROR RETRYin cui il nuovo tentativo di esecuzione del DML dopo più di 10 secondi causerà l'aborto automatico della transazione in corso da parte di Spanner. -
Se Replicat for Spanner trova una tabella che ha applicato una chiave esterna, si interrompe con il seguente errore.
Google Spanner does not natively support PKUpdate. The PKUpdate operation is implemented in GoldenGate as DELETE followed by INSERT OR IGNORE operation. If the table contains enforced foreign key, PKUpdate (delete followed by insert) might unintentionally delete the records from the child table. In this case, you can take any of the following actions to continue: 1. If you do not intend to perform PKUpdate on table, use ALLOW_ENFORCED_FK in the Replicat parameter file. 2. Modify the enforced foreign keys to informational foreign keys 3. If the table is not required, exclude the target table from Replicat mapping to continue. -
Di seguito sono riportati i dettagli relativi alle limitazioni del supporto heartbeattable:
-
Google Spanner supporta solo Oracle GoldenGate Replicat not Extract, pertanto il parametro
TARGETONLY/NOTARGETONLYnon è esplicitamente supportato su Google Spanner come nei database TimesTen e Teradata. -
Oracle GoldenGate supporta la consegna solo su Google Spanner, pertanto non è necessario alcun meccanismo per popolare o aggiornare le tabelle di heartbeat utilizzando qualsiasi scheduler di eventi o job.
-
Il comando
ADD HEARTBEATTABLEcon le opzioniFREQUENCY,PURGE_FREQUENCYoRETENTION_TIMEnon è supportato in Google Spanner. Quando si specifica una di queste opzioni con il comandoADD HEARTBEATTABLE, viene visualizzato un messaggio informativo che indica che l'opzione viene ignorata. -
I job e le frequenze di heartbeat non sono supportati in Google Spanner, pertanto il comando
ALTER HEARTBEATTABLEnon è supportato in Google Spanner. Se usato, il comando viene ignorato silenziosamente. -
Spanner non dispone di scheduler di eventi o job interni, pertanto non è possibile eseguire la rimozione automatica delle tabelle della cronologia di heartbeat. È necessario troncare in modo esplicito gli oggetti heartbeat corrispondenti.
-
-
Se una transazione causa più di 80.000 mutazioni, Spanner restituisce un errore e Replicat interrompe tale errore.
Allo stesso modo, la dimensione della transazione di Spanner è 100 MiB e se i dati scritti dalla transazione superano 100 MiB (inclusi indici e flussi di modifica), la transazione non riesce e Replicat viene interrotta con errore.
Per gestire i limiti di transazione di 80000 mutazione/100 MB di Spanner, è necessario utilizzare il parametro Replicat
MAXTRANSOPSper suddividere transazioni di origine di grandi dimensioni in batch di destinazione più piccoli, prima di raggiungere i limiti di commit di Spanner. -
Spanner applica che una transazione di lettura-scrittura visualizzi una singola versione dello schema coerente dall'inizio alla fine. Quando viene eseguito il commit di un'istruzione DDL (qualsiasi tabella/indice nel database), la versione dello schema del database avanza. Le transazioni iniziate con la versione precedente vengono interrotte con un errore che indica la modifica dello schema. L'interruzione è di progettazione e viene trattata in modo simile a quello degli altri aborti riprovabili a causa di conflitti o errori transitori. Per eseguire il ripristino da questo errore, attendere il completamento dell'operazione DDL in corso, quindi riavviare Replicat.