Sybase: tipos de dato, objetos y operaciones soportados
Esta sección contiene información sobre los tipos de dato, objetos y operaciones soportados para Oracle GoldenGate for Sybase.
Tipos de datos de Sybase soportados
Enteros
-
BIGINT -
BIT -
DECIMAL -
INT(firmado y sin firmar) -
TINYINT(firmado y sin firmar) -
NUMERIC -
SMALLINT(firmado y sin firmar)
Limitaciones del soporte
-
NUMERICyDECIMAL(punto fijo) están soportados sin pérdida de integridad al mover datos a una columna de destino del mismo tipo de dato sin implicar cálculos ni transformación. Cuando se deben realizar cálculos o transformaciones, Oracle GoldenGate soporta un valor máximo de un entero largo firmado (32 bits). -
BITestá soportado para la asignación automática entre bases de datos Sybase. Para mover datosBITentre Sybase y otro tipo de base de datos, Oracle GoldenGate trata los datosBITcomo binarios. En este caso, se requiere lo siguiente:- La columna
BITse debe asignar a la columna de origen o destino correspondiente con una cláusulaCOLMAPen una sentenciaTABLEoMAP.
- La columna
-
Para las versiones Sybase 15.7 y posteriores, estos tipos de datos no se pueden replicar:
-
BIGINT(como columna de clave) -
BIGDATETIME -
BIGTIME
-
-
Al replicar
TINYINTy Extract no está en la misma versión de Replicat, deberá crear un archivosourcedefy/otargetdefincluso si está replicando entre versiones de Sybase idénticas.Consulte también Tipos de datos de Sybase no soportados.
Números de coma flotante
-
DOUBLE -
FLOAT -
REAL
Limitaciones del soporte
El soporte de rango y precisión para los números de punto flotante depende de la máquina host. En general, la precisión es de 16 dígitos significativos, pero debe revisar la documentación de la base de datos para determinar las aproximaciones esperadas. Oracle GoldenGate redondea o trunca los valores que superan la precisión soportada.
Datos de Caracteres
-
CHAR -
NCHAR -
NVARCHAR -
VARCHAR -
UNICHAR UNIVARCHARLimitaciones de soporte-
Estos tipos de dato están soportados hasta la longitud máxima soportada por la base de datos, siendo este el tamaño máximo de página.
- La recuperación de resultados de replicación
NVARCHARmediante las funciones Sybasechar_lengthodatalengthcuando una base de datos Sybase es el destino y el origen es una base de datos heterogénea y la replicación del origen al destino puede provocar un problema de integridad de datos. Esto ocurre cuando se utiliza una versión de Sybase anterior a Adaptive Server Enterprise 15.5 para la plataforma Windows x64 EBF 21262: 15.5 ESD #5.3.
Fechas y registros de hora
-
BIGDATETIME -
BIGTIME -
DATE -
DATETIME -
SMALLDATETIME -
TIME
Limitaciones del soporte
-
Oracle GoldenGate soporta datos de registro de hora de 0001/01/03:00:00:00 a 9999/12/31:23:59:59. Si se convierte un registro de hora de GMT a la hora local, estos límites también se aplican al registro de hora resultante. Dependiendo de la zona horaria, la conversión puede sumar o restar horas, lo que puede hacer que el registro de hora supere el límite admitido inferior o superior.
-
Oracle GoldenGate no admite fechas negativas.
Objetos grandes
-
BINARY -
IMAGE -
TEXT -
UNITEXT -
VARBINARY
Limitaciones del soporte
-
TEXT,UNITEXTyIMAGEestán soportados hasta 2 GB de longitud. -
Los objetos grandes que se replican desde otras bases de datos (como Oracle
BLOByCLOB) se pueden asignar a las columnas SybaseCHAR,VARCHAR,BINARYyVARBINARY. Para evitar que Replicat finalice de forma anormal si el objeto grande replicado es mayor que el tamaño de la columna de destino, utilice el parámetroDBOPTIONScon la opciónALLOWLOBDATATRUNCATEen el archivo de parámetros Replicat. Para obtener más información, consulte Reference for Oracle GoldenGate for Windows and UNIX. -
Para mover datos a un destino Sybase desde una base de datos origen que permita columnas
LOBvacías, utilice el parámetroDBOPTIONScon la opciónEMPTYLOBSTRINGen el archivo de parámetros Replicat. Este parámetro acepta un valor de cadena e impide que Replicat defina la columna de destino enNULL, lo que Sybase no permite. Para obtener más información, consulte Reference for Oracle GoldenGate for Windows and UNIX. -
Cuando una tabla de origen contiene varias filas idénticas, puede provocar inconsistencias
LOBen la tabla de destino. Esto ocurre cuando la tabla de origen carece de una clave primaria u otro identificador de fila único. Replicat inserta las filas en el destino, pero si los datosLOBse actualizan en una operación de origen posterior, solo se replicará en la primera fila que se haya insertado en el destino. -
No utilice restricciones
NOT NULLen la columna LOB de fila. Si desea utilizar restriccionesNOT NULL, utilícelas en la columna LOB fuera de fila. -
Si necesita recuperar los datos de LOB de fila directamente de la tabla, debe utilizar
FETCHCOLS/FETCHMODCOLS. -
Oracle GoldenGate para Sybase 15.7 y versiones posteriores no soporta la replicación de columnas LOB en fila (sin embargo, aún puede transferir los datos a la columna LOB en fila en la base de datos de Replicat). Esto significa que las tablas incluidas en la replicación no pueden tener ninguna columna LOB en fila. Oracle GoldenGate finalizará de forma anormal si alguna tabla de replicación incluye una columna LOB en fila. Si necesita soporte de LOB en fila, póngase en contacto con los Servicios de Soporte Oracle para obtener más información.
Tipos de dinero
-
MONEY -
SMALLMONEY
Limitaciones de soporte
Los tipos de dato Money están soportados sin pérdida de integridad al mover datos a una columna de destino del mismo tipo de dato sin implicar cálculos ni transformación. Cuando se deben realizar cálculos o transformaciones, Oracle GoldenGate soporta un valor máximo de un entero largo firmado (32 bits).
Tipo de IDENTIDAD
El tipo de dato IDENTITY solo está soportado para la replicación en una dirección, pero no para una configuración bidireccional.
Tipos de datos de texto, imagen y unitext
Con la versión Sybase 15.7, los tipos de datos de texto, imagen y unitext de LOB ahora están soportados en el modo BATCHSQL. La longitud de los datos del LOB se limita a 4K. Si los registros que contienen columnas LOB y el tamaño supera más de 4K, esos registros se excluyen de los lotes y se ejecutan de uno en uno. Las columnas LOB de ahora están enlazadas, mientras que en la versión anterior de Sybase (15.5 o 15.0) los LOB no estaban enlazados. Puede utilizar el comportamiento anterior mediante el parámetro DBPOTIONS LEGACYLOBREPLICATION. Este soporte solo se aplica a Replicat que se ejecuta en Sybase versión 15.7 y posteriores.
Tipos de Dato Definidos por el Usuario
Los tipos de dato definidos por el usuario están totalmente soportados.
Tipos de datos Sybase no soportados
En esta sección se muestran los tipos de dato Sybase que Oracle GoldenGate no soporta.
-
Los datos
TIMESTAMPno están soportados. Los datos de las columnas de registro de hora se capturan aunque no se pueden aplicar a la columna de registro de hora Sybase debido a una limitación de la base de datos. La base de datos rellena esta columna automáticamente una vez que se inserta o actualiza la fila correspondiente. Para excluir las columnas de registro de hora de la captura de Oracle GoldenGate, utilice la opciónCOLSEXCEPTdel parámetroTABLE. Puesto que el sistema genera los registros de hora, los valores de origen y de destino serán diferentes. -
El tipo de dato
rowobjectde Java no está soportado.
Operaciones y objetos admitidos para Sybase
En esta sección se muestran las operaciones de datos y los objetos de base de datos que soporta Oracle GoldenGate.
-
Extracción y replicación de operaciones de inserción, actualización y supresión en tablas Sybase que contienen filas de hasta 512 KB de longitud.
-
Número máximo de columnas y tamaño máximo de columna por tabla soportado por la base de datos.
-
Inserciones diferidas, inserciones indirectas diferidas, actualizaciones diferidas y supresiones diferidas. Es posible que el uso de actualizaciones diferidas pueda causar violaciones de restricción de clave primaria para el SQL afectado en el destino. Si se producen estos errores, utilice el parámetro Replicat
HANDLECOLLISIONS. -
TRUNCATE TABLEsi los nombres de las tablas afectadas son únicos en todos los esquemas. Si los nombres de tabla no son únicos en todos los esquemas, utilice el parámetroIGNORETRUNCATESpara esas tablas para evitar que Replicat finalice de forma anormal. -
GETTRUNCATESyIGNORETRUNCATESpor Extract y Replicat. -
Datos cifrados con una contraseña cifrada por el sistema.
-
Recuperación de matriz durante las cargas iniciales, según lo controlado por el parámetro
FETCHBATCHSIZE. -
La función Replicat de
BATCHSQLen ASE 15.7 SP110 y versiones posteriores en las siguientes plataformas:-
AIX
-
Linux x64
-
Sun Solaris SPARC
-
Sun Solaris x64
-
Windows x64
En determinados casos, los tipos de dato
CS_NUMERICyCS_DECIMALno son compatibles conBatchSQLdebido a un bug en la biblioteca CT específica de Sybase. La replicación de LOB está soportada en el modo BatchSql para la base de datos Sybase versión 157 SP110 en adelante. Esto mejorará el rendimiento de replicación de LOB. Está restringido a 16384 bytes de datos LOB, lo que significa que si los datos LOB son más de 16384 bytes, los datos no se procesarán mediante el modoBATCHSQLen lugar del modo cambiado a Normal. -
-
Las limitaciones en el soporte de columnas calculadas son las siguientes:
-
Soporta completamente las columnas calculadas persistentes. Los valores de cambio están presentes en el log de transacciones y se pueden capturar en la pista.
-
No puede utilizar restricciones
NOT NULLen columnas LOB de fila. Si necesita utilizar restriccionesNOT NULL, hágalo solo con columnas LOB fuera de fila. -
Las tablas con columnas calculadas no persistentes, pero no capturan datos de cambio para estas columnas porque la base de datos no lo escribe en el log de transacciones. Para replicar datos para columnas calculadas no persistentes, utilice la opción
FETCHCOLSoFETCHMODCOLSdel parámetroTABLEpara recuperar los datos de columna de la tabla. Tenga en cuenta que puede haber discrepancias causadas por diferencias en los valores de datos entre el momento en que se cambió la columna en la base de datos y el momento en que Extract recupera los datos del registro de transacción que se está procesando. -
Replicat no aplica DML a ninguna columna calculada, incluso si los datos de esa columna están en la pista, porque la base de datos no permite DML en ese tipo de columna. Los datos de una columna calculada persistente de origen o de una columna no persistente recuperada se pueden aplicar a una columna de destino que no sea una columna calculada.
-
En una carga inicial, todos los datos se seleccionan directamente de las tablas de origen, no del registro de transacciones. Por lo tanto, en una carga inicial, los valores de datos de todas las columnas, incluidas las columnas calculadas no persistentes, se escriben en la pista o se envían al destino, según el método que se esté utilizando. Sin embargo, al igual que al aplicar los datos de cambio, Replicat no aplica los datos de carga inicial a las columnas calculadas, porque la base de datos no permite DML en ese tipo de columna.
-
No se utilizan columnas calculadas persistentes definidas como columnas de clave, columnas de índice o que forman parte de una cláusula
KEYCOLSen una sentenciaTABLEoMAP. Si una clave o índice único incluye una columna calculada y Oracle GoldenGate debe utilizar esa clave, la columna calculada se ignorará. Además, si una clave o índice único contiene una columna calculada y es el único identificador único de la tabla, se utilizan todas las columnas excepto la columna calculada como identificador para buscar la fila de destino. Por lo tanto, la presencia de una columna calculada en una clave o un índice afecta a la integridad de los datos si las columnas restantes no aplican la unicidad. Sybase no soporta columnas calculadas no persistentes como parte de una clave, por lo que Oracle GoldenGate tampoco. -
Para soportar
TRUNCATE TABLE, todos los nombres de tabla deben ser únicos en todos los esquemas de una base de datos. Esta regla se aplica a Extract y Replicat.
-
-
Las limitaciones en el soporte de la tabla automática de latidos son las siguientes:
-
La frecuencia de latido se acepta en minutos y debe ser un entero entre 1 y 133 (ambos incluidos).
-
El truncamiento de datos se produce con un fin anormal de Replicat cuando supera los 1500 caracteres para las tablas
incoming_routing_pathyoutgoing_routing_pathdeGG_HEARTBEAT_SEED,GG_HEARTBEATyGG_HEARTBEAT_HISTORY. El tamañoincoming_routing_pathyoutgoing_routing_pathde esta tabla se define en 1500 caracteres en ASCII y tiene un máximo de 500 bytes en caracteres multibyte. Asegúrese de que las cadenas de ruta de enrutamiento de entrada y salida estén dentro del límite especificado. -
El programador de trabajos Sybase debe estar configurado en el servidor ASE antes de ejecutar la funcionalidad de latido de Oracle GoldenGate.
-
Para que la funcionalidad de la tabla de latidos funcione correctamente, el usuario de conexión debe tener los roles
replication_role,js_admin_role,js_user_role.
-
Operaciones y objetos no soportados para Sybase
En esta sección se muestran las operaciones de datos y los objetos de base de datos que Oracle GoldenGate no soporta.
-
La replicación de vistas materializadas o juegos de resultados calculados previamente no está soportada. Por lo tanto, no puede agregar datos de transacción para vistas materializadas. Consulte la documentación de Sybase ASE para obtener más información.
-
Datos cifrados con una contraseña definida por el usuario.
-
Extracción o replicación de operaciones DDL (lenguaje de definición de datos).
-
Configuración de varios extractos. Solo un Extract puede reservar un contexto para leer los logs de transacciones de Sybase.
-
Debido a que
SHOWSYNTAXestá soportado en el modoDYNSQL,NODYNSQLestá en desuso. -
Los nombres de tabla que contienen datos con un guion bajo seguido de algunos caracteres, no se admite un espacio (por ejemplo,
'zzz_j'). Oracle GoldenGate no puede procesar registros que contengan este tipo de cadena de caracteres con GGSCI,DEFGEN,EXTRACToREPLICAT. Además, este tipo de datos no se puede utilizar con el comodín de Oracle GoldenGate (*). Si tiene este tipo de datos en el nombre de la tabla, debe borrar este tipo de nombre de tabla de la base de datos y, a continuación, reiniciar la aplicación para procesar y respetar el comodín de Oracle GoldenGate.