Sybase: Unterstützte Datentypen, Objekte und Vorgänge
Dieser Abschnitt enthält Informationen zu unterstützten Datentypen, Objekten und Vorgängen für Oracle GoldenGate für Sybase.
Unterstützte Sybase-Datentypen
Ganzzahlen
-
BIGINT -
BIT -
DECIMAL -
INT(signiert und nicht signiert) -
TINYINT(signiert und nicht signiert) -
NUMERIC -
SMALLINT(signiert und nicht signiert)
Einschränkungen des Supports
-
NUMERICundDECIMAL(Festpunkt) werden ohne Integritätsverlust unterstützt, wenn Daten ohne Berechnungen oder Transformation in eine Zielspalte desselben Datentyps verschoben werden. Wenn Berechnungen oder Transformation ausgeführt werden müssen, unterstützt Oracle GoldenGate einen Höchstwert einer vorzeichenbehafteten langen Ganzzahl (32 Bit). -
BITwird für die automatische Zuordnung zwischen Sybase-Datenbanken unterstützt. UmBIT-Daten zwischen Sybase und einem anderen Datenbanktyp zu verschieben, behandelt Oracle GoldenGateBIT-Daten als Binärdaten. In diesem Fall ist Folgendes erforderlich:- Die Spalte
BITmuss der entsprechenden Quell- oder Zielspalte mit einerCOLMAP-Klausel in einerTABLE- oderMAP-Anweisung zugeordnet werden.
- Die Spalte
-
Für die Sybase-Releases 15.7 und höher können diese Datentypen nicht repliziert werden:
-
BIGINT(als Schlüsselspalte) -
BIGDATETIME -
BIGTIME
-
-
Wenn sich die Replikation von
TINYINTund Extract nicht in derselben Replicat-Version befindet, müssen Sie einesourcedef- und/odertargetdef-Datei erstellen, auch wenn Sie zwischen identischen Sybase-Versionen replizieren.Siehe auch Nicht unterstützte Sybase-Datentypen.
Gleitkommazahlen
-
DOUBLE -
FLOAT -
REAL
Einschränkungen des Supports
Die Unterstützung von Reichweite und Genauigkeit für Gleitkommazahlen hängt vom Hostrechner ab. Im Allgemeinen ist die Genauigkeit auf 16 signifikante Stellen genau, aber Sie sollten die Datenbankdokumentation lesen, um die erwarteten Näherungen zu ermitteln. Oracle GoldenGate rundet oder schneidet Werte ab, die den unterstützten Nachkommastellenwert überschreiten.
Zeichendaten
-
CHAR -
NCHAR -
NVARCHAR -
VARCHAR -
UNICHAR UNIVARCHARSupporteinschränkungen-
Diese Datentypen werden bis zur maximalen Länge unterstützt, die von der Datenbank unterstützt wird. Dies ist die maximale Seitengröße.
- Das Abrufen von
NVARCHAR-Replikationsergebnissen mit den Sybase-Funktionenchar_lengthoderdatalength, wenn eine Sybase-Datenbank das Ziel ist und die Quelle eine heterogene Datenbank ist und Sie von der Quelle in das Ziel replizieren, kann zu einem Datenintegritätsproblem führen. Dies tritt auf, wenn Sie ein Sybase-Release vor Adaptive Server Enterprise 15.5 für die Windows x64-Plattform EBF 21262: 15.5 ESD #5.3 verwenden.
Termine und Zeitstempel
-
BIGDATETIME -
BIGTIME -
DATE -
DATETIME -
SMALLDATETIME -
TIME
Einschränkungen des Supports
-
Oracle GoldenGate unterstützt Zeitstempeldaten von 0001/01/03:00:00:00 bis 9999/12/31:23:59:59. Wenn ein Zeitstempel von GMT in Ortszeit konvertiert wird, gelten diese Grenzwerte auch für den resultierenden Zeitstempel. Je nach Zeitzone kann die Konvertierung Stunden addieren oder subtrahieren, was dazu führen kann, dass der Zeitstempel den unteren oder oberen unterstützten Grenzwert überschreitet.
-
Oracle GoldenGate unterstützt keine negativen Datumsangaben.
Große Objekte
-
BINARY -
IMAGE -
TEXT -
UNITEXT -
VARBINARY
Einschränkungen des Supports
-
TEXT,UNITEXTundIMAGEwerden bis zu 2 GB lang unterstützt. -
Große Objekte, die aus anderen Datenbanken (wie Oracle
BLOBundCLOB) repliziert werden, können Sybase-SpaltenCHAR,VARCHAR,BINARYundVARBINARYzugeordnet werden. Um zu verhindern, dass Replicat abbricht, wenn das replizierte große Objekt größer als die Größe der Zielspalte ist, verwenden Sie den ParameterDBOPTIONSmit der OptionALLOWLOBDATATRUNCATEin der Replicat-Parameterdatei. Weitere Informationen finden Sie unter Referenz für Oracle GoldenGate für Windows und UNIX. -
Um Daten aus einer Quelldatenbank, die leere
LOB-Spalten zulässt, in ein Sybase-Ziel zu verschieben, verwenden Sie den ParameterDBOPTIONSmit der OptionEMPTYLOBSTRINGin der Replicat-Parameterdatei. Dieser Parameter akzeptiert einen Zeichenfolgenwert und verhindert, dass Replicat die Zielspalte aufNULLsetzt, was von Sybase nicht zulässig ist. Weitere Informationen finden Sie unter Referenz für Oracle GoldenGate für Windows und UNIX. -
Wenn eine Quelltabelle mehrere identische Zeilen enthält, kann dies
LOB-Inkonsistenzen in der Zieltabelle verursachen. Dies tritt auf, wenn der Quelltabelle kein Primärschlüssel oder eine andere eindeutige Zeilen-ID fehlt. Die Zeilen werden von Replicat in das Ziel eingefügt. Wenn dieLOB-Daten jedoch in einem nachfolgenden Quellvorgang aktualisiert werden, werden sie nur in der ersten Zeile repliziert, die in das Ziel eingefügt wurde. -
Verwenden Sie keine
NOT NULL-Constraints für die LOB-Spalte in der Zeile. Wenn SieNOT NULL-Constraints verwenden möchten, verwenden Sie diese in der Spalte für nicht zeilenbezogene LOBs. -
Wenn Sie die in der Zeile enthaltenen LOB-Daten direkt aus der Tabelle abrufen müssen, müssen Sie
FETCHCOLS/FETCHMODCOLSverwenden. -
Oracle GoldenGate für Sybase 15.7 und höher unterstützt die Replikation von LOB-Spalten in der Zeile nicht (die Daten können jedoch weiterhin in die LOB-Spalte in der Replicat-Datenbank übertragen werden). Das bedeutet, dass die in der Replikation enthaltenen Tabellen keine LOB-Spalten in der Zeile enthalten können. Oracle GoldenGate wird abgebrochen, wenn eine Replikationstabelle eine LOB-Spalte in der Zeile enthält. Wenn Sie LOB-Support in der Reihe benötigen, wenden Sie sich an Oracle Support, um weitere Informationen zu erhalten.
Geldtypen
-
MONEY -
SMALLMONEY
Einschränkungen des Support
Gelddatentypen werden ohne Integritätsverlust unterstützt, wenn Daten ohne Berechnungen oder Transformation in eine Zielspalte desselben Datentyps verschoben werden. Wenn Berechnungen oder Transformation ausgeführt werden müssen, unterstützt Oracle GoldenGate einen Höchstwert einer vorzeichenbehafteten langen Ganzzahl (32 Bit).
IDENTITY-Typ
Der Datentyp IDENTITY wird nur für die Replikation in eine Richtung unterstützt, nicht jedoch für eine bidirektionale Konfiguration.
Text-, Bild- und Unitextdatentypen
Mit der Sybase 15.7-Version werden die Datentypen LOB-Text, Bild und Unitext jetzt im BATCHSQL-Modus unterstützt. Die Datenlänge des LOB ist auf 4K beschränkt. Wenn die Datensätze, die LOB-Spalten enthalten und die Größe mehr als 4K überschreitet, werden diese Datensätze aus den Batches ausgeschlossen und nacheinander ausgeführt. Die LOB-Spalten in sind jetzt gebunden, während in der vorherigen Sybase-Version (15.5 oder 15.0) die LOBs nicht gebunden waren. Sie können das ältere Verhalten mit dem Parameter DBPOTIONS LEGACYLOBREPLICATION verwenden. Diese Unterstützung gilt nur für Replicat, das auf Sybase Version 15.7 und höher ausgeführt wird.
Benutzerdefinierte Datentypen
Benutzerdefinierte Datentypen werden vollständig unterstützt.
Nicht unterstützte Sybase-Datentypen
In diesem Abschnitt werden die Sybase-Datentypen aufgeführt, die Oracle GoldenGate nicht unterstützt.
-
Die Daten der
TIMESTAMPwerden nicht unterstützt. Zeitstempelspaltendaten werden erfasst, obwohl die Daten aufgrund einer Datenbankbegrenzung nicht auf die Sybase-Zeitstempelspalte angewendet werden können. Die Datenbank füllt diese Spalte automatisch aus, sobald die entsprechende Zeile eingefügt oder aktualisiert wurde. Um die Erfassung von Zeitstempelspalten durch Oracle GoldenGate auszuschließen, verwenden Sie die OptionCOLSEXCEPTdes ParametersTABLE. Da das System die Zeitstempel generiert, unterscheiden sich die Quell- und Zielwerte. -
Der Java-Datentyp
rowobjectwird nicht unterstützt.
Unterstützte Vorgänge und Objekte für Sybase
In diesem Abschnitt werden die Datenvorgänge und Datenbankobjekte aufgeführt, die Oracle GoldenGate unterstützt.
-
Die Extraktion und Replikation von Einfüge-, Aktualisierungs- und Löschvorgängen für Sybase-Tabellen, die Zeilen mit einer Länge von bis zu 512 KB enthalten.
-
Die maximale Anzahl von Spalten und die maximale Spaltengröße pro Tabelle, die von der Datenbank unterstützt wird.
-
Verzögerte Einfügevorgänge, verzögerte indirekte Einfügevorgänge, verzögerte Updates und verzögerte Löschvorgänge. Möglicherweise kann die Verwendung von verzögerten Updates zu Verletzungen des Primärschlüssel-Constraints für das betroffene SQL auf dem Ziel führen. Wenn diese Fehler auftreten, verwenden Sie den Replicat-Parameter
HANDLECOLLISIONS. -
TRUNCATE TABLE, wenn die Namen der betroffenen Tabellen in allen Schemas eindeutig sind. Wenn die Tabellennamen nicht in allen Schemas eindeutig sind, verwenden Sie den ParameterIGNORETRUNCATESfür diese Tabellen, um einen Abbruch von Replicat zu verhindern. -
GETTRUNCATESundIGNORETRUNCATESdurch Extract und Replicat. -
Daten, die mit einem systemverschlüsselten Passwort verschlüsselt werden.
-
Array wird beim ersten Laden abgerufen, wie vom Parameter
FETCHBATCHSIZEgesteuert. -
Das Replicat-Feature
BATCHSQLauf ASE 15.7 SP110 und höher auf den folgenden Plattformen:-
AIX
-
Linux x64
-
Sun Solaris SPARC
-
Sun Solaris x64
-
Fenster x64
In bestimmten Szenarios werden die Datentypen
CS_NUMERICundCS_DECIMALvonBatchSQLnicht unterstützt, weil ein Bug in der Sybase-spezifischen CT-Bibliothek vorhanden ist. Die LOB-Replikation wird im BatchSql-Modus für Sybase-Datenbank ab Version 157 SP110 unterstützt. Dadurch wird die Performance der LOB-Replikation verbessert. Es ist auf 16384 Byte LOB-Daten beschränkt, d.h. wenn LOB-Daten mehr als 16384 Byte umfassen, werden die Daten nicht imBATCHSQL-Modus verarbeitet, sondern im Modus auf Normal umgestellt. -
-
Die Unterstützung für berechnete Spalten ist wie folgt eingeschränkt:
-
Unterstützt dauerhaft berechnete Spalten vollständig. Die Änderungswerte sind im Transaktionslog vorhanden und können im Trail erfasst werden.
-
Sie können keine
NOT NULL-Constraints für LOB-Spalten in der Zeile verwenden. Wenn SieNOT NULL-Constraints verwenden müssen, sollten Sie dies nur mit LOB-Spalten außerhalb der Zeilen tun. -
Tabellen mit nicht persistierten berechneten Spalten, erfassen jedoch keine Änderungsdaten für diese Spalten, da die Datenbank sie nicht in das Transaktionslog schreibt. Um Daten für nicht persistierte berechnete Spalten zu replizieren, verwenden Sie die Option
FETCHCOLSoderFETCHMODCOLSdes ParametersTABLE, um die Spaltendaten aus der Tabelle abzurufen. Beachten Sie, dass es Abweichungen geben kann, die durch Unterschiede bei den Datenwerten zwischen dem Zeitpunkt der Änderung der Spalte in der Datenbank und dem Zeitpunkt des Abrufs der Daten für den verarbeiteten Transaktionsdatensatz entstehen. -
Replicat wendet DML nicht auf berechnete Spalten an, selbst wenn sich die Daten für diese Spalte im Trail befinden, da die Datenbank keine DML für diesen Spaltentyp zulässt. Daten aus einer persistenten berechneten Quellspalte oder aus einer abgerufenen nicht persistenten Spalte können auf eine Zielspalte angewendet werden, die keine berechnete Spalte ist.
-
Beim ersten Laden werden alle Daten direkt aus den Quelltabellen und nicht aus dem Transaktionslog ausgewählt. Daher werden bei einem anfänglichen Ladevorgang Datenwerte für alle Spalten, einschließlich nicht persistierter berechneter Spalten, in den Trail geschrieben oder an das Ziel gesendet, je nachdem, welche Methode verwendet wird. Wie beim Anwenden von Änderungsdaten wendet Replicat jedoch keine anfänglichen Ladedaten auf berechnete Spalten an, da die Datenbank keine DML für diesen Spaltentyp zulässt.
-
Persistierte berechnete Spalten, die als Schlüsselspalte, Indexspalte oder Teil einer
KEYCOLS-Klausel in einerTABLE- oderMAP-Anweisung definiert sind, werden nicht verwendet. Wenn ein eindeutiger Schlüssel oder Index eine berechnete Spalte enthält und Oracle GoldenGate diesen Schlüssel verwenden muss, wird die berechnete Spalte ignoriert. Wenn ein eindeutiger Schlüssel oder Index eine berechnete Spalte enthält und die einzige eindeutige ID in der Tabelle ist, werden alle Spalten mit Ausnahme der berechneten Spalte als ID für die Suche nach der Zielzeile verwendet. Daher wirkt sich das Vorhandensein einer berechneten Spalte in einem Schlüssel oder Index auf die Datenintegrität aus, wenn die restlichen Spalten die Eindeutigkeit nicht erzwingen. Sybase unterstützt keine nicht persistierten berechneten Spalten als Teil eines Schlüssels. Daher unterstützt Oracle GoldenGate auch nicht. -
Um
TRUNCATE TABLEzu unterstützen, müssen alle Tabellennamen für alle Schemas in einer Datenbank eindeutig sein. Diese Regel gilt für Extract und Replicat.
-
-
Die Unterstützung der automatischen Heartbeat-Tabelle ist wie folgt eingeschränkt:
-
Taktüberwachungsfrequenz wird in Minuten akzeptiert und sollte eine Ganzzahl zwischen 1 und 133 (beide inklusive) sein.
-
Das Abschneiden von Daten erfolgt mit einem Replicat abend, wenn es mehr als 1500 Zeichen für die Tabellen
incoming_routing_pathundoutgoing_routing_pathder TabellenGG_HEARTBEAT_SEED,GG_HEARTBEATundGG_HEARTBEAT_HISTORYüberschreitet. Die Größe vonincoming_routing_pathundoutgoing_routing_pathdieser Tabelle ist in ASCII auf 1500 Zeichen gesetzt und beträgt maximal 500 Byte in Multibyte-Zeichen. Stellen Sie sicher, dass die eingehenden und ausgehenden Routingpfadzeichenfolgen innerhalb des angegebenen Limits liegen. -
Sybase-Jobplaner muss auf dem ASE-Server konfiguriert werden, bevor die Heartbeat-Funktion von Oracle GoldenGate ausgeführt wird.
-
Damit die Heartbeat-Tabellenfunktionalität ordnungsgemäß funktioniert, muss der Anmeldebenutzer die Rollen
replication_role,js_admin_role,js_user_roleaufweisen.
-
Nicht unterstützte Vorgänge und Objekte für Sybase
In diesem Abschnitt werden die Datenvorgänge und Datenbankobjekte aufgeführt, die Oracle GoldenGate nicht unterstützt.
-
Die Replikation von Materialized Views oder vorab berechneten Ergebnissätzen wird nicht unterstützt. Daher können Sie keine Trandata für Materialized Views hinzufügen. Weitere Informationen finden Sie in der Dokumentation zu Sybase ASE.
-
Daten, die mit einem benutzerdefinierten Kennwort verschlüsselt werden.
-
Extrahierung oder Replikation von DDL-(Data Definition Language-)Vorgängen.
-
Konfiguration mit mehreren Extrakten. Nur ein Extract kann einen Kontext zum Lesen der Sybase-Transaktionslogs reservieren.
-
Da
SHOWSYNTAXimDYNSQL-Modus unterstützt wird, istNODYNSQLveraltet. -
Tabellennamen, die Daten mit einem Unterstrich gefolgt von einigen Zeichen enthalten, dann wird ein Leerzeichen (z.B.
'zzz_j') nicht unterstützt. Oracle GoldenGate kann keine Datensätze verarbeiten, die diesen Zeichentyp mit GGSCI,DEFGEN,EXTRACToderREPLICATenthalten. Darüber hinaus kann dieser Datentyp nicht mit dem Oracle GoldenGate-Platzhalter (*) verwendet werden. Wenn dieser Datentyp in Ihrem Tabellennamen enthalten ist, müssen Sie diese Art von Tabellennamen aus Ihrer Datenbank löschen und die Anwendung dann neu starten, um den Oracle GoldenGate-Platzhalter zu verarbeiten und zu beachten.