Solucionar problemas do conector Oracle em Azure Data Factory e Azure Synapse

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Este artigo fornece sugestões para solucionar problemas comuns com o conector Oracle em Azure Data Factory e Azure Synapse.

Versão 2.0

Mensagem de erro: ORA-12650: Nenhum algoritmo comum de criptografia ou integridade de dados

  • Sintomas: Você atende à seguinte mensagem de erro: ORA-12650: No common encryption or data integrity algorithm

  • Causa: o cliente e o servidor não concordaram com um comportamento ou algoritmo de integridade de dados/criptografia comum durante a negociação. As configurações padrão do lado do cliente são as seguintes:

    • encryptionClient: required
    • encryptionTypesClient: (AES256)
    • cryptoChecksumClient: required
    • cryptoChecksumTypesClient: (SHA512)
  • Recomendação:

    1. Verifique as configurações do lado do servidor, incluindo SQLNET. ENCRYPTION_SERVER e SQLNET. CRYPTO_CHECKSUM_SERVER. Atualize, se necessário, as propriedades adicionais encryptionClient e cryptoChecksumClient do serviço vinculado no lado do cliente. Observe que o comportamento real é determinado pelo resultado da negociação entre a configuração do cliente e do servidor, conforme mostrado abaixo.

      Cliente\Servidor rejeitado aceito requisitado obrigatório
      rejeitado OFF OFF OFF Falha na conexão
      aceito OFF OFF ATIVADO ATIVADO
      requisitado OFF ATIVADO ATIVADO ATIVADO
      obrigatório Falha na conexão ATIVADO ATIVADO ATIVADO
    2. Verifique as configurações do lado do servidor, incluindo SQLNET. ENCRYPTION_TYPES_SERVER e SQLNET. CRYPTO_CHECKSUM_TYPES_SERVER. Atualize as propriedades encryptionTypesClient adicionais do serviço vinculado e cryptoChecksumTypesClient no lado do cliente para garantir que um algoritmo comum possa ser encontrado entre elas. Você pode definir encryptionTypesClient como (AES128, AES192, AES256, 3DES112, 3DES168) e cryptoChecksumTypesClient como (SHA1, SHA256, SHA384, SHA512) para incluir todos os algoritmos suportados do lado do cliente.

Erro de precisão decimal muito grande

  • Sintomas: ao copiar colunas do tipo NUMBER do Oracle, a cópia pode falhar ou os dados gravados no coletor não poderão ser consumidos por outras ferramentas porque a precisão decimal é muito grande.

  • Causa: para evitar a perda de dados, a precisão decimal usada para representar o tipo Oracle NUMBER é 256, o que excede a precisão máxima suportada pelo conector do coletor ou pelo consumidor downstream.

  • Recomendação:

    Resolva esse problema usando um dos dois métodos fornecidos abaixo:

    • Utilize uma consulta SQL para converter explicitamente a coluna em BINARY_DOUBLE. Por exemplo:
      SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA.

    • Defina a propriedade supportV1DataTypes adicional do serviço vinculado como true, o que garante que a versão 2.0 use os mesmos mapeamentos de tipo de dados que a versão 1.0.

Mensagem de erro: ORA-00933: o comando SQL não foi encerrado corretamente

  • Sintomas: Você atende à seguinte mensagem de erro: ORA-00933: SQL command not properly ended

  • Causa: atualmente, o Oracle versão 2.0 não dá suporte à consulta encerrada com um ponto e vírgula.

  • Recomendação: remova o ponto e vírgula no final da consulta.

Versão 1.0

Código de erro: ArgumentOutOfRangeException

  • Mensagem: Hour, Minute, and Second parameters describe an un-representable DateTime.

  • Causa: nos pipelines do Azure Data Factory e do Synapse, os valores DateTime têm suporte no intervalo de 0001-01-01 00:00:00 a 9999-12-31 23:59:59. No entanto, o Oracle oferece suporte a uma gama mais ampla de valores DateTime, como o século BC ou min/sec>59, o que leva a uma falha.

  • Recomendação:

    Para ver se o valor no Oracle está no intervalo de datas com suporte, execute select dump(<column name>).

    Para saber a sequência de bytes no resultado, consulte Como as datas são armazenadas no Oracle?.

Adicione algoritmos seguros ao usar a runtime de integração auto-hospedada versão 5.36.8726.3 ou superior

  • Sintomas: Ao usar a runtime de integração auto-hospedada versão 5.36.8726.3 ou superior, você encontra esta mensagem de erro: [Oracle]ORA-12650: No common encryption or data integrity algorithm.

  • Causa: O algoritmo seguro não é adicionado ao seu servidor Oracle.

  • Recomendação: atualize as configurações do servidor Oracle para adicionar estes algoritmos seguros, caso ainda não estejam incluídos:

    • Para SQLNET. ENCRYPTION_TYPES_SERVER, é necessário adicionar os algoritmos a seguir que são considerados seguros pelo OpenSSL e serão usados para criptografia OAS (Oracle Advanced Security).

      • AES256
      • AES192
      • 3DES168
      • AES128
      • 3DES112
      • Data Encryption Standard (DES)
    • Para SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER, é necessário adicionar os algoritmos a seguir que são considerados seguros pelo OpenSSL e serão usados para integridade dos dados do OAS (Oracle Advanced Security).

      • SHA256
      • SHA384
      • SHA512

      Observação

      Os algoritmos de integridade de dados recomendados SHA256, SHA384 e SHA512 estão disponíveis para Oracle 19c ou superior.

Código de erro: UserErrorFailedToConnectOdbcSource

Há três mensagens de erro associadas a esse código de erro. Verifique a causa e a recomendação de cada mensagem de erro proporcionalmente.

  • Mensagem: "Cannot load trust store", or "SSL Handshake Failure reason [error:OA000086:SSL routines::certificate verify failed]"

  • Causa: o truststore não é apropriado para OpenSSL 3.0, pois o arquivo truststore é gerado usando criptografias fracas como RC4, MD5 e SHA1.

  • Recomendação: você precisa recriar o truststore usando criptografias fortes, como a AES256. Consulte esta seção para obter detalhes sobre como configurar a conexão TLS usando truststore.


  • Mensagem:
    SSL Handshake Failure reason[Unknown SSL Error]
    SSL Handshake Failure reason [error:OA000410:SSL routines::sslv3 alert handshake failure]

  • Causa: o servidor não está configurado com criptografias fortes para comunicação SSL. O OpenSSL 3.0 deve usar TLS 1.0 ou superior, pois descontinuou as versões do protocolo SSL. Por exemplo, o servidor pode aceitar conexões com versões de protocolo TLS até o TLS 1.0.

  • Recomendação: revise a configuração do servidor para usar versões TLS mais fortes.


  • Mensagem: SSL Handshake Failure reason [error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported].

  • Causa: CryptoProtocolVersion está definido para usar versões de protocolo TLS obsoletas com o OpenSSL 3.0.

  • Recomendação: Especifique a propriedade connection string CryptoProtocolVersion=TLSv1.2.

Para obter mais ajuda com a solução de problemas, experimente estes recursos: