你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Azure 数据工厂 和 Azure Synapse 中的 Oracle 连接器问题

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文提供了一些建议,用于排查 Azure 数据工厂 和 Azure Synapse 中常见的 Oracle 连接器问题。

错误代码:ArgumentOutOfRangeException

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

  • 原因:在 Azure 数据工厂和 Synapse 管道中,支持从 0001-01-01 00:00:00 到 9999-12-31 23:59:59 范围内的日期时间值。 但是,Oracle 支持范围更广的日期时间值(例如公元前世纪或 min/sec>59),这会导致失败。

  • 建议

    若要查看 Oracle 中的值是否处于支持的日期范围内,请运行 select dump(<column name>)

    若要了解结果中的字节序列,请参阅如何在 Oracle 中存储日期?

使用自承载集成运行时版本 5.36.8726.3 或更高版本时添加安全算法

  • 症状:使用自承载集成运行时版本 5.36.8726.3 或更高版本时,将遇到以下错误消息:[Oracle]ORA-12650: No common encryption or data integrity algorithm

  • 原因:安全算法未添加到 Oracle 服务器。

  • 建议:如果尚未包含这些安全算法,请更新 Oracle 服务器设置以添加它们

    • 对于“SQLNET.ENCRYPTION_TYPES_SERVER”,需要添加以下被 OpenSSL 视为安全且将用于 OAS(Oracle 高级安全性)加密的算法

      • AES256
      • AES192
      • 3DES168
      • AES128
      • 3DES112
      • DES
    • 对于“SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER”,需要添加以下被 OpenSSL 视为安全且将用于 OAS(Oracle 高级安全性)数据完整性的算法

      • SHA256
      • SHA384
      • SHA512

      注意

      推荐的数据完整性算法 SHA256、SHA384 和 SHA512 可用于 Oracle 19c 或更高版本。

错误代码:UserErrorFailedToConnectOdbcSource

有三条与此错误代码关联的错误消息。 检查每条错误信息的相应原因和建议。

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

  • 原因truststore 不适用于 OpenSSL 3.0,因为 truststore 文件是使用 RC4、MD5 和 SHA1 等弱密码生成的。

  • 建议:需要使用 AES256 等强密码重新创建 truststore。 有关使用 truststore 设置 TLS 连接的详细信息,请参阅此部分


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

  • 原因:服务器未配置为使用强密码进行 SSL 通信。 OpenSSL 3.0 应使用 TLS 1.0 及更高版本,因为它已弃用 SSL 协议版本。 例如,服务器可能会接受与版本在 TLS 1.0 之前的 TLS 协议的连接。

  • 建议:修改服务器配置以使用更强大的 TLS 版本。


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

  • 原因:CryptoProtocolVersion 设置为将弃用的 TLS 协议版本与 OpenSSL 3.0 配合使用。

  • 建议:指定连接字符串属性 CryptoProtocolVersion=TLSv1.2

尝试通过以下资源获得故障排除方面的更多帮助: