Einschränkungen und nicht unterstützte Objekte und Vorgänge
GoldenGate Replicat hat dieselben Einschränkungen wie in Google Cloud Spanner. Der Anwendungsentwickler sollte sich dieser Einschränkungen bewusst sein und seine Anwendungslast entsprechend entwerfen müssen.
Die folgenden Vorgänge werden von Oracle GoldenGate Replicat for Google Spanner im aktuellen Release nicht unterstützt:
-
Paralleles Replicat wird im Preview-Release nicht unterstützt.
-
Die DDL-Replikation wird mit Replicat für Google Cloud Spanner nicht unterstützt.
-
SQLEXEC wird nicht unterstützt.
-
Automatische Schemaentwicklung wird nicht unterstützt.
-
Konflikterkennung und -lösung werden mit Replicat für Google Cloud Spanner nicht unterstützt.
-
Oracle GoldenGate Replicat unterstützt
PKUPDATEnicht für die Tabellen, die das referenzielle Integritäts-Constraint durchgesetzt haben (sowohl fürON DELETE CASCADEals auch fürON DELETE NO ACTION). -
Replicat für Google Spanner unterstützt
SUSPEND EVENT ACTIONnicht, da die Google Cloud Spanner-Datenbank jede Lese-/Schreibtransaktion, die länger als 10 Sekunden im Leerlauf ist, automatisch abbricht und keine Konfiguration unterstützt, die eine Erhöhung des Leerlaufzeit-Timeouts von 10 Sekunden ermöglicht. Wenn SieSUSPENDals Ereignisaktion verwenden, bleibt die Transaktion länger als 10 Sekunden offen und wird automatisch aufRESUMEabgebrochen.In solchen Fällen können Sie die Regel
REPERROR RETRYfür den FehlerABORTED(Fehlercode 10) verwenden, um die Transaktion zu wiederholen, wenn replicat auf eine abgebrochene Transaktion trifft. Dies gilt auch fürREPERROR RETRY-Regeln pro DML, bei denen die Wiederholung der DML nach mehr als 10 Sekunden dazu führt, dass Spanner die laufende Transaktion automatisch abbricht. -
Wenn das Replicat for Spanner eine Tabelle findet, die einen Fremdschlüssel durchgesetzt hat, wird der folgende Fehler angezeigt.
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. -
Im Folgenden werden die Einschränkungen der Heartbeattable-Unterstützung beschrieben:
-
Google Spanner unterstützt nur Oracle GoldenGate Replicat, nicht Extract. Daher wird der Parameter
TARGETONLY/NOTARGETONLYexplizit nicht auf Google Spanner unterstützt, wie in TimesTen- und Teradata-Datenbanken. -
Oracle GoldenGate unterstützt nur die Zustellung auf Google Spanner. Daher ist kein Mechanismus erforderlich, um die Heartbeat-Tabellen mit Ereignis- oder Jobplanern aufzufüllen oder zu aktualisieren.
-
Der Befehl
ADD HEARTBEATTABLEmit den OptionenFREQUENCY,PURGE_FREQUENCYoderRETENTION_TIMEwird in Google Spanner nicht unterstützt. Wenn eine dieser Optionen mit dem BefehlADD HEARTBEATTABLEangegeben wird, wird eine Informationsmeldung angezeigt, die angibt, dass die Option ignoriert wird. -
Die Heartbeat-Jobs und -Frequenzen werden in Google Spanner nicht unterstützt. Daher wird der Befehl
ALTER HEARTBEATTABLEin Google Spanner nicht unterstützt. Bei Verwendung wird der Befehl stillschweigend ignoriert. -
Spanner verfügt über keine internen Ereignis- oder Jobplaner. Daher kann das automatische Löschen von Heartbeat-Historiestabellen nicht erfolgen. Sie müssen die entsprechenden Heartbeat-Objekte explizit kürzen.
-
-
Wenn eine Transaktion mehr als 80.000 Mutationen verursacht, gibt Spanner einen Fehler zurück und Replicat wird mit diesem Fehler beendet.
Ebenso beträgt die Transaktionsgröße von Spanner 100 MiB. Wenn die von der Transaktion geschriebenen Daten 100 MiB (einschließlich Indizes und Änderungsstreams) überschreiten, verläuft diese Transaktion nicht erfolgreich, und Replicat wird mit einem Fehler abgebrochen.
Um die Transaktionslimits für 80000 Mutationen/100 MB von Spanner zu verarbeiten, müssen Sie den Replicat-Parameter
MAXTRANSOPSverwenden, um große Quelltransaktionen in kleinere Zielbatches aufzuteilen, bevor Sie die Commit-Limits von Spanner erreichen. -
Spanner erzwingt, dass eine Lese-/Schreibtransaktion eine einzelne, konsistente Schemaversion von Anfang bis Ende sieht. Wenn eine DDL-Anweisung (eine beliebige Tabelle/ein beliebiger Index in der Datenbank) festgeschrieben wird, wird die Schemaversion der Datenbank weiterentwickelt. Die Transaktionen, die unter der vorherigen Version gestartet wurden, werden mit einem Fehler abgebrochen, der auf eine Schemaänderung hinweist. Der Abbruch ist entworfen und wird in einer ähnlichen Weise behandelt wie die anderen wiederholbaren Abbrüche aufgrund von Konflikten oder vorübergehenden Fehlern. Um diesen Fehler zu beheben, warten Sie, bis der laufende DDL-Vorgang abgeschlossen ist, und starten Sie dann das Replicat neu.