Einschränkungen
Beachten Sie die folgenden Einschränkungen, wenn Sie die Funktion "Automatische Schemaentwicklung" verwenden möchten:
-
Replicat unterstützt "Automatisches Schema" nur im klassischen und koordinierten Modus (Parallelmodus wird nicht unterstützt).
-
Automatisches Schema wird für bidirektionale Replikation nicht unterstützt.
-
Das automatische Schema gilt nicht für die Tabelle, die in der MAPEXCEPTION-Klausel verwendet wird. Benutzer müssen die entsprechende Ausnahmetabelle explizit erstellen, bevor sie das Replicat starten.
-
Automatisches Schema unterstützt keinen COLMATCH-Parameter.
-
Das automatische Schema propagiert keine unsichtbaren/verborgenen Quellspalten von der Quelle zum Ziel.
-
Das automatische Schema berücksichtigt den DDLSUBST-Parameter nicht.
-
Automatic Schema propagiert nicht alle Indizes oder Constraints, die in der Quelltabelle vorhanden sind, in die entsprechende Zieltabelle.
-
Automatic Schema berücksichtigt keinen Zeichensatz und/oder keine Sortierung auf Quellspaltenebene. Der entsprechende Zeichensatz oder die entsprechende Sortierung auf Spaltenebene ist nicht mit den Zielspalten verknüpft.
-
Automatic Schema verknüpft keinen Zeichensatz auf Tabellenebene mit den Zieltabellen.
-
"Automatisches Schema" verknüpft keinen Zeichensatz oder keine Sortierung auf Spaltenebene mit den Zielspalten.
Achten Sie bei der Verwendung des automatischen Schemas darauf, die Zeichensätze zu prüfen, die in der Quelle verwendet werden, und die Zeichensätze, die in den Zielsystemen verfügbar sind. Gehen Sie nicht davon aus, dass die Quellzeichensätze unbedingt im Zielsystem verfügbar sind. Dies gilt insbesondere, wenn die Datenbanken nicht alle eine Form von Unicode verwenden. Bei der Verwendung von Automatic Schema wird derzeit die beste Kompatibilität mit Zeichensätzen der Quelldatenbank bereitgestellt, indem sichergestellt wird, dass jede Zieldatenbank UTF-8 oder UTF-16 als Zeichenspalten verwendet. Dies wird am deutlichsten gezeigt, wenn IBM Db2-Datenbanken die Quelle sind. Für Db2 für z/OS und Db2 für i sind die Quelldaten oft eine Form von EBCDIC. Wenn es sich bei dem Ziel um eine andere Datenbankfamilie handelt, ist es unwahrscheinlich, dass diese Zeichensätze direkt im Ziel dargestellt werden können. Eine ähnliche Sorge kann auch für ASCII-Zeichensätze gemacht werden, da nicht alle Datenbanken sie alle allgemein unterstützen.
WICHTIG: Die Verwendung von Unicode für die Zieldatenbank erfordert möglicherweise eine Erweiterung der Länge der Zeichenfelder, um sicherzustellen, dass die richtige Größe verfügbar ist, wenn eine Zuordnung von einer Quelle erfolgt, die nicht Unicode selbst ist. Wenn die Zieldatenbank mehr Byte verwendet, um ein Zeichen darzustellen, als die Anzahl der von der Quelldatenbank verwendeten Byte, müssen Benutzer
AUTOSCHEMAOPTIONS TYPEMAPfür alle diese Spalten verwenden und einen breiteren und kompatiblen Zieldatentyp verwenden, um eine mögliche Datenkürzung zu vermeiden. -
-
Das automatische Schema unterstützt die Quellspalten des Typs
AUTO-INCREMENTnicht und erstellt/ändert die entsprechenden Zielspalten nicht mit denselben Eigenschaften für die automatische Erhöhung. -
Das automatische Schema erstellt den Primär-/Eindeutigkeitsschlüssel möglicherweise nicht korrekt in der Zieltabelle, wenn die MySQL-Quelltabelle nur einen eindeutigen Schlüssel und keinen Primärschlüssel enthält. MySQL-Datenbank, die nicht die richtigen Schlüsselinformationen bereitstellt.
HINWEIS: Dies ist keine Einschränkung durch Automatic Schema, sondern durch die Quelle MySQL.
- Wenn die Quelldatenbank Oracle Database 19c ist, kann Automatic Schema die Nullfähigkeit der Zielspalten möglicherweise nicht korrekt ableiten.
HINWEIS: Dies ist keine automatische Schemabegrenzung, aber es ist die Oracle Database-Quelldatei 19c, die nicht die richtigen Schlüsselinformationen bereitstellt. Die Spalten vom Typ char und varchar2 der Oracle-Quelle werden immer mit Byte-Semantik ausgewertet, selbst wenn die Quell-DDL die char-Semantik verwendet.
-
Wenn in der Oracle-Quelltabelle kein Primärschlüssel definiert ist, aber nur einen eindeutigen Schlüssel enthält, der eine der virtuellen Spalten, auf Null setzbare Spalten, benutzerdefinierte Datentypen, erweiterte lange
varchar-Spalten oder funktionsbasierte Indexspalten als gültige Schlüsselspalten enthält, erstellt Automatic Schema diese Spalten nicht als primären/eindeutigen Schlüssel in der Zieltabelle. -
Wenn die Quelle die Datenbank PostgreSQL ist und die Quelltabelle LOB-Spalten als Teil des Schlüssels enthält, müssen die Benutzer
DBOPTIONS MAXLOBKEYLEN <value>in ihrer Extract-Parameterdatei angeben. Andernfalls erstellt das automatische Schema standardmäßig (ohneAUTOSCHEMAOPTIONS TYPEMAP) entsprechende Spalten mit der Länge Null auf dem Ziel. -
Für den Typ PostgreSQL
Arrayder Quelle erstellt das automatische Schema den TypCLOBoder das entsprechende Äquivalent für die entsprechende Zielspalte.AUTOSCHEMAOPTIONS TYPEMAPmuss angegeben werden, um den geeigneten Zieltyp basierend auf dem Spaltennamen der Quelle PostgreSQLArrayauszuwählen. -
Bei
CLOB-Spalten der Oracle-Quelle mit Mehrbyte-Datenbankzeichensatz wird standardmäßigNCLOBoder ein äquivalenter Zieltyp für die Zielspalte ausgewählt. Zum Überschreiben mussTYPEMAPverwendet werden. -
Für Db2 für z/OS ist für die Replikation von UTF-16-Daten eine EBCDIC- oder Unicode-Datenbank erforderlich. Andere Doppelbyte-Codierungen werden nicht explizit unterstützt.
-
Für IBM Db2-(früher Db2 for LUW-)Datenbanken, die UTF-16-Daten replizieren, ist eine Unicode-Datenbank erforderlich. Andere Doppelbyte-Codierungen werden nicht explizit unterstützt.
-
Bei Spalten vom Typ
ENUMder Quelle wendet Automatic Schemacharals Zieltyp auf MySQL an. Verwenden Sie bei BedarfTYPEMAP, um stattdessenVARCHARzu verwenden. -
AUTOSCHEMAOPTIONS TYPEMAPmuss basierend auf dem Quellspaltennamen und nicht dem Quelldatentypnamen für numerische/dezimale Quellspalten mit einer Gesamtstellenzahl von weniger als 8 angegeben werden. AUTOSCHEMAOPTIONS TYPEMAPmuss basierend auf dem Quellspaltennamen angegeben werden und nicht basierend auf dem Quelldatentypnamen für Quellspalten des Typs:- Spalten vom Typ Char/Varchar mit einer Länge > 4000.
- ZEIT(p)
- ZEIT(p) OHNE ZEITZONE
- ZEIT(p) MIT ZEITZONE
- TIMESTAMP(p)
- TIMESTAMP(p) OHNE ZEITZONE
- TIMESTAMP(p) MIT TIME ZONE
- Alle INTERVAL Varianten
- SQL Server-Vektortypspalten für Quelle
-
Das automatische Schema unterstützt nicht die Verwendung der
COLMAP-Klausel mit Spaltennamen, die doppelte Anführungszeichen enthalten. Der Zielspaltenname, der in einer bestimmten Spaltenzuordnung in derCOLMAP-Klausel verwendet wird und einem Quellspaltennamen zugeordnet ist, darf nicht mit einem anderen Spaltennamen in der Quelltabelle identisch sein. -
Nur wenige Fehlermeldungen des automatischen Schemas können in ASCII angezeigt werden, wenn das Gebietsschema des Systems, auf dem GoldenGate ausgeführt wird, ein Multibyte-Zeichensatz ist, z.B. Chinesisch oder Japanisch (z.B. zh_CN.UTF-8).
-
Bei einem SQL Server-Ziel müssen Sie für jeden Quelltyp
datetime/timestampohne Sekundenbruchteile dieAUTOSCHEMAOPTIONS TYPEMAPfür den entsprechenden Quelltyp (oder Spaltennamen) mitdatetime2(0)als angegebenem Ersatzzieltyp angeben. -
Auf dem Ziel Db2 z/OS unterstützt das automatische Schema nicht das Löschen mehrerer Spalten mit einem einzelnen
ALTER TABLE DDL. Sie können die nicht erfolgreiche DDL erneut ausführen, die im OGG-Fehler (aus der Replicat-Berichtsdatei) gemeldet wird, und das Replicat neu starten. -
Auf dem Ziel SQLServer erkennt Automatic Schema die Spaltenänderung von
VARCHAR(n)inTEXToderVARCHAR(max)nicht korrekt und führt sie nicht aus. AUTOSCHEMAOPTIONS TYPEMAPfunktioniert bei Zieltypspezifikationen nicht:- NUMBER (p,s)
- NUMERISCH(p,s)
- DECIMAL(p,s)
- TIMESTAMP(p) mit Zeitzone
- TIME(p) mit Zeitzone: Workaround ist die Verwendung von TIME(p) als Zieltypnamenspezifikation anstelle von TIME(p) ohne Zeitzone, da beide semantisch äquivalent sind.
- TIMESTAMP(p) ohne Zeitzone Als Workaround können Sie
TIMESTAMP(p)als Zieltypnamenspezifikation anstelle vonTIMESTAMP(p)ohne Zeitzone verwenden, da beide semantisch äquivalent sind. - Varbinary(max)
- Varchar(max): Workaround ist die Verwendung von CLOB als Zieltypnamenspezifikation anstelle von varchar(max)
- Nvarchar(max): Workaround ist die Verwendung von NCLOB als Zieltypnamenspezifikation anstelle von nvarchar(max)
-
Auf dem Ziel SQLServer ist die Angabe der Dimension
Vectorin der Typspezifikation erforderlich. Die Angabe des Basistyps (wiefloat16oderfloat32) ist optional. -
Bei SQLServer-Quellspalten vom Typ
DATETIMEkann Autoschema nicht zwischenDATETIMEundDATETIME2(3)unterscheiden. Wenn Sie also eine expliziteTYPEMAP-Klausel verwenden, müssen Sie eine auf Quellspaltennamen basierendeTYPEMAPanstelle einer auf Quelltypen basierenden typemap konfigurieren. -
Bei den
NCHAR-Spalten des DB2AS400-Ziels erkennt Automatic Schema die erforderlichen Spaltentypänderungen nicht korrekt. -
Wenn eine Oracle GoldenGate Delivery-Datenbank auf PostgreSQL (oder einer PostgreSQL-kompatiblen) für die Verwendung des nativen ODBC-Treibers PostgreSQL konfiguriert ist, erkennt Automatic Schema die Fälle "Spalte ändern" nicht korrekt.
-
Für IBM Db2 für i ist es möglich, dass ein Job "hang" erscheint und keinen Fortschritt macht. Beispiel: Dies ist im Replicat wahrscheinlicher, wenn das automatische Schema verwendet wird, wenn der angeforderte Vorgang zu einem Problem mit der Datenabschneiden führen kann. Je nachdem, wie das IBM i-System konfiguriert ist, kann der Replicat-Job in einen Message Wait-(MSGW-)Status versetzt werden, in dem das System darauf wartet, dass ein Benutzer angibt, welche Aktion der Job ausführen soll, um das spezifische Problem zu beheben. Derzeit gibt es keine Möglichkeit für GoldenGate, dies direkt zu adressieren, und Sie müssen es auf der IBM i-Seite behandeln.
-
Für die Quell-Snowflake-Spaltentypen
TIMESTAMP_NTZ(p),TIMESTAMP_LTZ(p)oderTIMESTAMP_TZ(p)ordnet Automatic Schema sie den entsprechenden Zeitstempelspalten zu, wobei die Nachkommastellen für Datum und Uhrzeit jedoch 0 sind. Um zu vermeiden, dass Daten in Sekundenbruchteilen abgeschnitten werden, müssen SieAUTOSCHEMAOPTIONS TYPEMAPverwenden, um den erforderlichen Typ im Ziel auszuwählen. -
Das automatische Schema unterscheidet die Spaltentypen
JSONundJSONBder PostgreSQL-Quelle nicht. Sie müssenAUTOSCHEMAOPTIONS TYPEMAPbasierend auf dem Quellspaltennamen anstelle des Spaltentyps für die PostgreSQL-QuelltypenJSONBverwenden. -
Das automatische Schema unterscheidet nicht zwischen den numerischen Spaltentypen der Quelle PostgreSQL (numerisch ohne Nachkommastellen und Nachkommastellen) und der numerischen Quelle PostgreSQL (1000, 100). Sie müssen
AUTOSCHEMAOPTIONS TYPEMAPbasierend auf dem Quellspaltennamen anstelle des Spaltentyps für numerische Quellspalten vom Typ PostgreSQL (1000.100) verwenden. -
Für die Snowflake-Quellspaltentypen
ARRAY,GEOGRAPHYundGEOMETRYwird "Automatisches Schema" dem TypJSON(sofern unterstützt) oderCLOBauf dem Ziel zugeordnet. Um einen anderen Typ auf dem Ziel auszuwählen, müssen BenutzerAUTOSCHEMAOPTIONS TYPEMAPverwenden. - Die informativen Meldungen, die auf Quellspaltennamen basierende Spezifikationen in
AUTOSCHEMAOPTIONS TYPEMAPenthalten, werden nicht korrekt angezeigt.