Sybase: tipi di dati, oggetti e operazioni supportati
Questa sezione contiene informazioni sui tipi di dati, gli oggetti e le operazioni supportati per Oracle GoldenGate for Sybase.
Tipi di dati Sybase supportati
Numero intero
-
BIGINT -
BIT -
DECIMAL -
INT(firmato e non firmato) -
TINYINT(firmato e non firmato) -
NUMERIC -
SMALLINT(firmato e non firmato)
Limitazioni del supporto
-
NUMERICeDECIMAL(punto fisso) sono supportati senza alcuna perdita di integrità quando si spostano i dati in una colonna di destinazione dello stesso tipo di dati senza eseguire calcoli o trasformazioni. Quando è necessario eseguire calcoli o trasformazioni, Oracle GoldenGate supporta un valore massimo di un numero intero lungo firmato (32 bit). -
BITè supportato per il mapping automatico tra i database Sybase. Per spostare i datiBITtra Sybase e un altro tipo di database, Oracle GoldenGate considera i datiBITcome dati binari. In questo caso, sono necessari i seguenti elementi:- La colonna
BITdeve essere mappata alla colonna di origine o di destinazione corrispondente con una clausolaCOLMAPin un'istruzioneTABLEoMAP.
- La colonna
-
Per le release Sybase 15.7 e successive, questi tipi di dati non possono essere replicati:
-
BIGINT(come colonna chiave) -
BIGDATETIME -
BIGTIME
-
-
Quando la replica di
TINYINTed Extract non è nella stessa versione di Replicat, sarà necessario creare un filesourcedefe/otargetdefanche se si sta replicando tra versioni Sybase identiche.Vedere anche Tipi di dati Sybase non supportati.
Numeri a virgola mobile
-
DOUBLE -
FLOAT -
REAL
Limitazioni del supporto
Il supporto della gamma e della precisione per i numeri a virgola mobile dipende dalla macchina host. In generale, la precisione è accurata 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.
Dati carattere
-
CHAR -
NCHAR -
NVARCHAR -
VARCHAR -
UNICHAR UNIVARCHARLimitazioni del supporto-
Questi tipi di dati sono supportati fino alla lunghezza massima supportata dal database, ovvero la dimensione massima della pagina.
- Il recupero dei risultati della replica
NVARCHARmediante le funzioni Sybasechar_lengthodatalengthquando un database Sybase è la destinazione e l'origine è un database eterogeneo e la replica dall'origine alla destinazione può causare un problema di integrità dei dati. Questo si verifica quando si utilizza una release Sybase precedente ad Adaptive Server Enterprise 15.5 per la piattaforma Windows x64 EBF 21262: 15.5 ESD #5.3.
Date e indicatori orari
-
BIGDATETIME -
BIGTIME -
DATE -
DATETIME -
SMALLDATETIME -
TIME
Limitazioni del supporto
-
Oracle GoldenGate supporta i dati dell'indicatore orario da 0001/01/03:00:00:00 a 9999/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.
Grandi oggetti
-
BINARY -
IMAGE -
TEXT -
UNITEXT -
VARBINARY
Limitazioni del supporto
-
TEXT,UNITEXTeIMAGEsono supportati fino a 2 GB di lunghezza. -
Gli oggetti di grandi dimensioni replicati da altri database (ad esempio Oracle
BLOBeCLOB) possono essere mappati alle colonne SybaseCHAR,VARCHAR,BINARYeVARBINARY. Per evitare che Replicat venga interrotto se l'oggetto di grandi dimensioni replicato è più grande della dimensione della colonna di destinazione, utilizzare il parametroDBOPTIONScon l'opzioneALLOWLOBDATATRUNCATEnel file dei parametri Replicat. Per ulteriori informazioni, vedere Riferimento per Oracle GoldenGate per Windows e UNIX. -
Per spostare i dati in una destinazione Sybase da un database di origine che consente colonne
LOBvuote, utilizzare il parametroDBOPTIONScon l'opzioneEMPTYLOBSTRINGnel file dei parametri Replicat. Questo parametro accetta un valore stringa e impedisce a Replicat di impostare la colonna di destinazione suNULL, che non è consentito da Sybase. Per ulteriori informazioni, vedere Riferimento per Oracle GoldenGate per Windows e UNIX. -
Quando una tabella di origine contiene più righe identiche, può causare incoerenze
LOBnella tabella di destinazione. Ciò si verifica quando nella tabella di origine manca una chiave primaria o un altro identificativo di riga univoco. Le righe vengono inserite da Replicat nella destinazione, ma se i datiLOBvengono aggiornati in un'operazione di origine successiva, verranno replicati solo nella prima riga inserita nella destinazione. -
Non utilizzare i vincoli
NOT NULLnella colonna LOB in riga. Se si desidera utilizzare i vincoliNOT NULL, utilizzarli nella colonna LOB off-row. -
Se è necessario recuperare i dati LOB in riga direttamente dalla tabella, è necessario utilizzare
FETCHCOLS/FETCHMODCOLS. -
Oracle GoldenGate per Sybase 15.7 e versioni successive non supporta la replica delle colonne LOB in riga (tuttavia, può comunque eseguire il push dei dati nella colonna LOB in riga nel database Replicat). Ciò significa che le tabelle incluse nella replica non possono avere colonne LOB in riga. Oracle GoldenGate verrà interrotto se una tabella di replica include una colonna LOB in riga. Se hai bisogno di supporto LOB in linea, contatta il Supporto Oracle per ulteriori informazioni.
Tipi di moneta
-
MONEY -
SMALLMONEY
Limitazioni di cenat
I tipi di dati monetari sono supportati senza alcuna perdita di integrità quando si spostano i dati in una colonna target dello stesso tipo di dati senza eseguire calcoli o trasformazioni. Quando è necessario eseguire calcoli o trasformazioni, Oracle GoldenGate supporta un valore massimo di un numero intero lungo firmato (32 bit).
Tipo di IDENTITY
Il tipo di dati IDENTITY è supportato per la replica in una sola direzione, ma non per una configurazione bidirezionale.
testo, immagine e unitext Tipi di dati
Con la versione Sybase 15.7, i tipi di dati LOB di testo, immagine e unidirezionale sono ora supportati in modalità BATCHSQL. La lunghezza dei dati del LOB è limitata a 4K. Se i record contenenti colonne LOB e la dimensione superano più di 4K, tali record vengono esclusi dai batch e vengono eseguiti uno alla volta. Le colonne LOB in sono ora associate, mentre nella versione Sybase precedente (15.5 o 15.0) i LOB non erano associati. È possibile utilizzare il comportamento precedente utilizzando il parametro DBPOTIONS LEGACYLOBREPLICATION. Questo supporto è applicabile solo a Replicat in esecuzione su Sybase versione 15.7 e successive.
Tipi di dati definiti dall'utente
I tipi di dati definiti dall'utente sono completamente supportati.
Tipi di dati Sybase non supportati
In questa sezione vengono elencati i tipi di dati Sybase non supportati da Oracle GoldenGate.
-
Dati
TIMESTAMPnon supportati. I dati delle colonne indicatore orario vengono acquisiti anche se i dati non possono essere applicati alla colonna indicatore orario Sybase a causa di una limitazione del database. Il database inserisce automaticamente questa colonna una volta inserita o aggiornata la riga corrispondente. Per escludere l'acquisizione delle colonne indicatore orario da parte di Oracle GoldenGate, utilizzare l'opzioneCOLSEXCEPTdel parametroTABLE. Poiché il sistema genera gli indicatori orari, i valori di origine e di destinazione saranno diversi. -
Il tipo di dati
rowobjectJava non è supportato.
Operazioni e oggetti supportati per Sybase
In questa sezione vengono elencate le operazioni dati e gli oggetti di database supportati da Oracle GoldenGate.
-
Estrazione e replica delle operazioni di inserimento, aggiornamento ed eliminazione nelle tabelle Sybase che contengono righe di lunghezza massima di 512 KB.
-
Il numero massimo di colonne e la dimensione massima per tabella supportata dal database.
-
Inserimenti differiti, inserimenti indiretti differiti, aggiornamenti differiti ed eliminazioni differite. È possibile che l'uso di aggiornamenti differiti possa causare violazioni dei vincoli di chiave primaria per l'istruzione SQL interessata nella destinazione. Se si verificano questi errori, utilizzare il parametro Replicat
HANDLECOLLISIONS. -
TRUNCATE TABLEse i nomi delle tabelle interessate sono univoci in tutti gli schemi. Se i nomi delle tabelle non sono univoci in tutti gli schemi, utilizzare il parametroIGNORETRUNCATESper tali tabelle per impedire l'interruzione di Replicat. -
GETTRUNCATESeIGNORETRUNCATESper Extract e Replicat. -
Dati cifrati con una password cifrata dal sistema.
-
Recupero degli array durante i caricamenti iniziali, controllato dal parametro
FETCHBATCHSIZE. -
La funzione Replicat
BATCHSQLsu ASE 15.7 SP110 e versioni successive sulle seguenti piattaforme:-
AIX
-
Linux x64
-
Sun Solaris SPARC
-
Sun Solaris x64
-
Windows x64
In alcuni scenari, i tipi di dati
CS_NUMERICeCS_DECIMALnon sono supportati daBatchSQLa causa di un bug nella libreria CT specifica di Sybase. La replica LOB è supportata in modalità BatchSql per il database Sybase versione 157 SP110 in avanti. Ciò migliorerà le prestazioni di replica LOB. È limitato a 16384 byte di dati LOB che significa che se i dati LOB sono più di 16384 byte, i dati non sarebbero elaborati tramite la modalitàBATCHSQLinvece la modalità è passata a Normale. -
-
I limiti al supporto delle colonne calcolate sono i seguenti:
-
Supporta completamente le colonne calcolate persistenti. I valori di modifica sono presenti nel log delle transazioni e possono essere acquisiti nel trail.
-
Non è possibile utilizzare i vincoli
NOT NULLnelle colonne LOB in riga. Se è necessario utilizzare i vincoliNOT NULL, eseguire questa operazione solo con le colonne LOB off-row. -
Tabelle con colonne calcolate non persistenti, ma non acquisiscono i dati di modifica per queste colonne perché il database non le scrive nel log delle transazioni. Per replicare i dati per le colonne calcolate non persistenti, utilizzare l'opzione
FETCHCOLSoFETCHMODCOLSdel parametroTABLEper recuperare i dati delle colonne dalla tabella. Tenere presente che possono esserci discrepanze causate da differenze nei valori dei dati tra quando la colonna è stata modificata nel database e quando Extract recupera i dati per il record transazione in fase di elaborazione. -
Replicat non applica DML ad alcuna colonna calcolata, anche se i dati per tale colonna sono nel trail, perché il database non consente DML su quel tipo di colonna. I dati di una colonna calcolata persistente di origine o di una colonna non persistente recuperata possono essere applicati a una colonna di destinazione che non è una colonna calcolata.
-
In un caricamento iniziale, tutti i dati vengono selezionati direttamente dalle tabelle di origine, non dal log delle transazioni. Pertanto, in un caricamento iniziale, i valori dei dati per tutte le colonne, incluse le colonne calcolate non persistenti, vengono scritti nel trail o inviati alla destinazione, a seconda del metodo utilizzato. Come quando si applicano i dati di modifica, Replicat non applica i dati di caricamento iniziale alle colonne calcolate, poiché il database non consente DML su quel tipo di colonna.
-
La colonna calcolata persistente definita come colonna chiave, colonna indice o che fa parte di una clausola
KEYCOLSin un'istruzioneTABLEoMAPnon viene utilizzata. Se una chiave o un indice univoco include una colonna calcolata e Oracle GoldenGate deve utilizzare tale chiave, la colonna calcolata verrà ignorata. Inoltre, se una chiave o un indice univoco contiene una colonna calcolata ed è l'unico identificativo univoco nella tabella, vengono utilizzate tutte le colonne tranne la colonna calcolata come identificativo per trovare la riga di destinazione. Pertanto, la presenza di una colonna calcolata in una chiave o in un indice influisce sull'integrità dei dati se le colonne rimanenti non applicano l'univocità. Sybase non supporta colonne calcolate non persistenti come parte di una chiave, pertanto non supporta Oracle GoldenGate. -
Per supportare
TRUNCATE TABLE, tutti i nomi di tabella devono essere univoci in tutti gli schemi di un database. Questa regola si applica a Extract e Replicat.
-
-
Le limitazioni al supporto automatico delle tabelle heartbeat sono le seguenti:
-
La frequenza di heartbeat è accettata in minuti e deve essere un numero intero compreso tra 1 e 133 (entrambi inclusi).
-
Il troncamento dei dati si verifica quando Replicat termina quando supera i 1500 caratteri per le tabelle
incoming_routing_patheoutgoing_routing_pathdelle tabelleGG_HEARTBEAT_SEED,GG_HEARTBEATeGG_HEARTBEAT_HISTORY. La dimensioneincoming_routing_patheoutgoing_routing_pathdi queste tabelle è impostata su 1500 caratteri in ASCII ed è un massimo di 500 byte in caratteri multibyte. Assicurarsi che le stringhe del percorso di instradamento in entrata e in uscita rientrino nel limite specificato. -
Lo scheduler di job Sybase deve essere configurato sul server ASE prima di eseguire la funzionalità heartbeat di Oracle GoldenGate.
-
Affinché la funzionalità della tabella di heartbeat funzioni correttamente, l'utente di login deve disporre dei ruoli
replication_role,js_admin_roleejs_user_role.
-
Operazioni e oggetti non supportati per Sybase
In questa sezione vengono elencate le operazioni dati e gli oggetti di database non supportati da Oracle GoldenGate.
-
La replica delle viste materializzate o dei set di risultati precalcolati non è supportata. Pertanto, non è possibile aggiungere trandata per le viste materializzate. Per ulteriori informazioni, consulta la documentazione di Sybase ASE.
-
Dati cifrati con una password definita dall'utente.
-
Estrazione o replica delle operazioni DDL (data definition language).
-
Configurazione con più estrazioni. Solo un Extract può riservare un contesto per leggere i log delle transazioni Sybase.
-
Poiché
SHOWSYNTAXè supportato in modalitàDYNSQL,NODYNSQLnon è più valido. -
I nomi di tabella che contengono dati con un carattere di sottolineatura seguito da alcuni caratteri, quindi uno spazio (ad esempio,
'zzz_j') non è supportato. Oracle GoldenGate non può elaborare i record contenenti questo tipo di stringa di caratteri con GGSCI,DEFGEN,EXTRACToREPLICAT. Inoltre, questo tipo di dati non può essere utilizzato con il carattere jolly di Oracle GoldenGate (*). Se si dispone di questo tipo di dati nel nome tabella, è necessario eliminare questo tipo di nome tabella dal database e quindi riavviare l'applicazione per elaborare e rispettare i caratteri jolly di Oracle GoldenGate.