Sybase: Tipos de Dados, Objetos e Operações Suportados
Esta seção contém informações sobre tipos de dados, objetos e operações suportados para o Oracle GoldenGate for Sybase.
Tipos de Dados Sybase Suportados
Inteiros
-
BIGINT -
BIT -
DECIMAL -
INT(assinado e não assinado) -
TINYINT(assinado e não assinado) -
NUMERIC -
SMALLINT(assinado e não assinado)
Limitações do Suporte
-
NUMERICeDECIMAL(ponto fixo) são suportados sem perda de integridade ao mover dados para uma coluna de destino do mesmo tipo de dados sem envolver cálculos ou transformação. Quando cálculos ou transformações devem ser executados, o Oracle GoldenGate suporta um valor máximo de um inteiro longo assinado (32 bits). -
BITé suportado para mapeamento automático entre bancos de dados Sybase. Para mover dadosBITentre o Sybase e outro tipo de banco de dados, o Oracle GoldenGate trata os dadosBITcomo binários. Nesse caso, os seguintes itens são obrigatórios:- A coluna
BITdeve ser mapeada para a coluna de origem ou destino correspondente com uma cláusulaCOLMAPem uma instruçãoTABLEouMAP.
- A coluna
-
Para as versões Sybase 15.7 e posteriores, esses tipos de dados não podem ser replicados:
-
BIGINT(como coluna de chave) -
BIGDATETIME -
BIGTIME
-
-
Ao replicar
TINYINTe Extract não estiver na mesma versão do Replicat, você precisará criar um arquivosourcedefe/outargetdefmesmo que esteja replicando entre versões idênticas do Sybase.Consulte também Tipos de Dados Sybase Não Suportados.
Números de Ponto Flutuante
-
DOUBLE -
FLOAT -
REAL
Limitações do Suporte
O suporte de alcance e precisão para números de ponto flutuante depende da máquina host. Em geral, a precisão é precisa para 16 dígitos significativos, mas você deve revisar a documentação do banco de dados para determinar as aproximações esperadas. O Oracle GoldenGate arredonda ou trunca valores que excedem a precisão suportada.
Dados do Caractere
-
CHAR -
NCHAR -
NVARCHAR -
VARCHAR -
UNICHAR UNIVARCHARLimitações de Suporte-
Esses tipos de dados têm suporte até o tamanho máximo suportado pelo banco de dados, sendo esse o tamanho máximo da página.
- A extração de resultados da replicação
NVARCHARusando as funçõeschar_lengthoudatalengthdo Sybase quando um banco de dados do Sybase é o destino e a origem é um banco de dados heterogêneo, e a replicação da origem para o destino pode resultar em um problema de integridade de dados. Isso ocorre quando você usa uma versão do Sybase anterior ao Adaptive Server Enterprise 15.5 para plataforma EBF 21262 do Windows x64: 15.5 ESD #5.3.
Datas e Timestamps
-
BIGDATETIME -
BIGTIME -
DATE -
DATETIME -
SMALLDATETIME -
TIME
Limitações do Suporte
-
O Oracle GoldenGate suporta dados de timestamp de 0001/01/03:00:00:00 para 9999/12/31:23:59:59. Se um timestamp for convertido de GMT para hora local, esses limites também se aplicarão ao timestamp resultante. Dependendo do fuso horário, a conversão pode adicionar ou subtrair horas, o que pode fazer com que o timestamp exceda o limite inferior ou superior suportado.
-
O Oracle GoldenGate não suporta datas negativas.
Objetos Grandes
-
BINARY -
IMAGE -
TEXT -
UNITEXT -
VARBINARY
Limitações do Suporte
-
TEXT,UNITEXTeIMAGEsão suportados com até 2 GB de comprimento. -
Objetos grandes que são replicados de outros bancos de dados (como
BLOBeCLOBda Oracle) podem ser mapeados para colunas SybaseCHAR,VARCHAR,BINARYeVARBINARY. Para evitar que o Replicat seja menor que o tamanho da coluna de destino se o objeto grande replicado for maior, use o parâmetroDBOPTIONScom a opçãoALLOWLOBDATATRUNCATEno arquivo de parâmetros do Replicat. Para obter mais informações, consulte Reference for Oracle GoldenGate for Windows and UNIX. -
Para mover dados para um destino Sybase de um banco de dados de origem que permita colunas
LOBvazias, use o parâmetroDBOPTIONScom a opçãoEMPTYLOBSTRINGno arquivo de parâmetros de Replicat. Esse parâmetro aceita um valor de string e impede que o Replicat defina a coluna de destino comoNULL, o que não é permitido pelo Sybase. Para obter mais informações, consulte Reference for Oracle GoldenGate for Windows and UNIX. -
Quando uma tabela de origem contém várias linhas idênticas, ela pode causar inconsistências
LOBna tabela de destino. Isso ocorre quando a tabela de origem não tem uma chave primária ou outro identificador de linha exclusivo. As linhas são inseridas pelo Replicat no destino, mas se os dadosLOBforem atualizados em uma operação de origem subsequente, eles só serão replicados na primeira linha que foi inserida no destino. -
Não use restrições
NOT NULLna coluna LOB na linha. Se quiser usar restriçõesNOT NULL, use-as na coluna LOB off-row. -
Se você precisar extrair os dados de LOB na linha diretamente da tabela, use
FETCHCOLS/FETCHMODCOLS. -
O Oracle GoldenGate para Sybase 15.7 e versões posteriores não suporta a replicação da coluna LOB na linha (no entanto, ele ainda pode enviar os dados para a coluna LOB na linha no banco de dados Replicat). Isso significa que as tabelas incluídas na replicação não podem ter colunas LOB na linha. O Oracle GoldenGate será encerrado se alguma tabela de replicação incluir uma coluna LOB na linha. Se você precisar de suporte de LOB em linha, entre em contato com o Suporte Técnico da Oracle para obter mais informações.
Tipos de dinheiro
-
MONEY -
SMALLMONEY
Limitações de Suporte
Os tipos de dados monetários são suportados sem perda de integridade ao mover dados para uma coluna de destino do mesmo tipo de dados sem envolver cálculos ou transformação. Quando cálculos ou transformações devem ser executados, o Oracle GoldenGate suporta um valor máximo de um inteiro longo assinado (32 bits).
Tipo de IDENTIDADE
O tipo de dados IDENTITY é suportado para replicação em uma única direção, mas não para uma configuração bidirecional.
Tipos de Dados de texto, imagem e unitexto
Com a versão Sybase 15.7, o texto LOB, a imagem e os tipos de dados unitext agora são suportados no modo BATCHSQL. O tamanho dos dados do LOB é limitado a 4K. Se os registros que contêm colunas LOB e o tamanho excederem mais de 4K, esses registros serão excluídos dos batches e serão executados um de cada vez. As colunas LOB estão agora vinculadas, enquanto na versão anterior do Sybase (15.5 ou 15.0) as LOBs não estavam vinculadas. Você pode usar o comportamento mais antigo usando o parâmetro DBPOTIONS LEGACYLOBREPLICATION. Este suporte só é aplicável ao Replicat em execução no Sybase versão 15.7 e posterior.
Tipos de Dados Definidos pelo Usuário
Os tipos de dados definidos pelo usuário são totalmente suportados.
Tipos de Dados Sybase Não Suportados
Esta seção lista os tipos de dados Sybase que o Oracle GoldenGate não suporta.
-
Os dados do
TIMESTAMPnão são suportados. Os dados das colunas de timestamp são capturados, embora os dados não possam ser aplicados à coluna de timestamp do Sybase devido a uma limitação no banco de dados. O banco de dados preenche esta coluna automaticamente quando a linha correspondente é inserida ou atualizada. Para excluir colunas de timestamp da captura pelo Oracle GoldenGate, use a opçãoCOLSEXCEPTdo parâmetroTABLE. Como o sistema gera os timestamps, os valores de origem e destino serão diferentes. -
O tipo de dados
rowobjectdo Java não é suportado.
Operações e Objetos Suportados para Sybase
Esta seção lista as operações de dados e os objetos de banco de dados que o Oracle GoldenGate suporta.
-
A extração e replicação de operações de inserção, atualização e exclusão em tabelas Sybase que contêm linhas de até 512 KB de comprimento.
-
O número máximo de colunas e o tamanho máximo de coluna por tabela suportado pelo banco de dados.
-
Inserções diferidas, inserções indiretas diferidas, atualizações diferidas e deleções diferidas. O uso de atualizações diferidas pode causar violações de constraint de chave primária para o SQL afetado no destino. Se ocorrerem esses erros, use o parâmetro Replicat
HANDLECOLLISIONS. -
TRUNCATE TABLEse os nomes das tabelas afetadas forem exclusivos em todos os esquemas. Se os nomes de tabela não forem exclusivos em todos os esquemas, use o parâmetroIGNORETRUNCATESpara essas tabelas a fim de impedir que o Replicat seja infinito. -
GETTRUNCATESeIGNORETRUNCATESpor Extract e Replicat. -
Dados criptografados com uma senha criptografada pelo sistema.
-
Extração de array durante carregamentos iniciais, conforme controlado pelo parâmetro
FETCHBATCHSIZE. -
O recurso Replicat
BATCHSQLno ASE 15.7 SP110 e posterior nas seguintes plataformas:-
AIX
-
Linux x64
-
Sun Solaris SPARC
-
Sun Solaris x64
-
Windows x64
Em determinados cenários, os tipos de dados
CS_NUMERICeCS_DECIMALnão são suportados peloBatchSQLpor causa de um bug na Biblioteca CT específica do Sybase. A replicação de LOB é suportada no modo BatchSql para o banco de dados Sybase versão 157 SP110 em diante. Isso melhorará o desempenho de replicação de LOB. É restrito a 16384 bytes de dados de LOB, o que significa que, se os dados de LOB tiverem mais de 16384 bytes, os dados não serão processados pelo modoBATCHSQL, em vez disso, o modo será alterado para Normal. -
-
As limitações no suporte a Colunas Calculadas são as seguintes:
-
Suporta totalmente colunas computadas persistentes. Os valores de alteração estão presentes no log de transações e podem ser capturados na trilha.
-
Não é possível usar restrições
NOT NULLem colunas LOB na linha. Se você precisar usar restriçõesNOT NULL, faça isso apenas com colunas LOB off-row. -
Tabelas com colunas calculadas não persistidas, mas não capturam dados de alteração para essas colunas porque o banco de dados não os grava no log de transações. Para replicar dados para colunas calculadas não persistidas, use a opção
FETCHCOLSouFETCHMODCOLSdo parâmetroTABLEpara extrair os dados da coluna da tabela. Lembre-se de que pode haver discrepâncias causadas por diferenças nos valores de dados entre quando a coluna foi alterada no banco de dados e quando o processo Extract extrai os dados do registro de transação que está sendo processado. -
O Replicat não aplicará DML a nenhuma coluna calculada, mesmo se os dados dessa coluna estiverem na trilha, porque o banco de dados não permite DML nesse tipo de coluna. Os dados de uma coluna calculada persistida de origem ou de uma coluna não persistida extraída podem ser aplicados a uma coluna de destino que não seja uma coluna calculada.
-
Em um carregamento inicial, todos os dados são selecionados diretamente das tabelas de origem, não do log de transações. Portanto, em uma carga inicial, os valores de dados de todas as colunas, incluindo colunas calculadas não persistidas, são gravados na trilha ou enviados para o destino, dependendo do método que está sendo usado. No entanto, como ao aplicar dados de alteração, o Replicat não aplica dados de carga inicial a colunas calculadas, porque o banco de dados não permite DML nesse tipo de coluna.
-
Não são usadas colunas calculadas persistentes definidas como uma coluna de chave, uma coluna de índice ou que faz parte de uma cláusula
KEYCOLSem uma instruçãoTABLEouMAP. Se uma chave ou índice exclusivo incluir uma coluna calculada e o Oracle GoldenGate precisar usar essa chave, a coluna calculada será ignorada. Além disso, se uma chave exclusiva ou índice contiver uma coluna calculada e for o único identificador exclusivo na tabela, todas as colunas serão usadas, exceto a coluna calculada como um identificador para localizar a linha de destino. Dessa forma, a presença de uma coluna calculada em uma chave ou índice afetará a integridade dos dados se as colunas restantes não imporem a exclusividade. O Sybase não suporta colunas calculadas não persistidas como parte de uma chave; portanto, o Oracle GoldenGate também não. -
Para suportar
TRUNCATE TABLE, todos os nomes de tabela devem ser exclusivos em todos os esquemas de um banco de dados. Esta regra se aplica aos processos Extract e Replicat.
-
-
As limitações no suporte automático da tabela de pulsação são as seguintes:
-
A frequência de pulsação é aceita em minutos e deve ser um número inteiro entre 1 e 133 (ambos inclusivos).
-
O truncamento de dados ocorre com um término anormal do Replicat quando excede mais de 1500 caracteres para as tabelas
incoming_routing_patheoutgoing_routing_pathdas tabelasGG_HEARTBEAT_SEED,GG_HEARTBEATeGG_HEARTBEAT_HISTORY. O tamanhoincoming_routing_patheoutgoing_routing_pathdessas tabelas é definido como 1500 caracteres em ASCII e tem no máximo 500 bytes em caracteres multibyte. Certifique-se de que as strings de caminho de roteamento de entrada e saída estejam dentro do limite especificado. -
O programador de jobs do Sybase deve ser configurado no servidor ASE antes da execução da funcionalidade de pulsação do Oracle GoldenGate.
-
Para que a funcionalidade da tabela de pulsação funcione corretamente, o usuário de log-in deve ter as atribuições
replication_role,js_admin_role,js_user_role.
-
Operações e Objetos Não Suportados para Sybase
Esta seção lista as operações de dados e os objetos de banco de dados que o Oracle GoldenGate não suporta.
-
A replicação de views materializadas ou conjuntos de resultados pré-calculados não é suportada. Portanto, não é possível adicionar trandata para views materializadas. Consulte a documentação do Sybase ASE para obter detalhes.
-
Dados criptografados com uma senha definida pelo usuário.
-
Extração ou replicação de operações DDL (linguagem de definição de dados).
-
Configuração de Multi-Extração. Somente um Extract pode reservar um contexto para ler os logs de transação do Sybase.
-
Como o
SHOWSYNTAXé suportado no modoDYNSQL, oNODYNSQLestá obsoleto. -
Não há suporte para nomes de tabelas que contêm dados com sublinhado seguidos por alguns caracteres e, em seguida, um espaço (por exemplo,
'zzz_j'). O Oracle GoldenGate não pode processar registros que contenham esse tipo de string de caracteres com GGSCI,DEFGEN,EXTRACTouREPLICAT. Além disso, esse tipo de dados não pode ser usado com o curinga (*) do Oracle GoldenGate. Se você tiver esse tipo de dados no nome da sua tabela, deverá eliminar esse tipo de nome de tabela do seu banco de dados e, em seguida, reiniciar o aplicativo para processar e respeitar o curinga do Oracle GoldenGate.