排查 Azure 数据工厂 和 Azure Synapse 中的 Oracle 连接器问题
适用于:Azure 数据工厂 Azure Synapse Analytics
本文提供了一些建议,用于排查 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
。
相关内容
尝试通过以下资源获得故障排除方面的更多帮助: