【问题标题】:ORA-28040: After Upgrade Database to 12c from 11gORA-28040: 将数据库从 11g 升级到 12c 后
【发布时间】:2019-06-19 00:01:03
【问题描述】:

问题陈述:

我们正在进行一项迁移活动,其中我们已将 DATABASE 从ORACLE 11g 迁移到ORACLE 12c。 升级我们使用jdk 6ojdbc6.jar(JDBC 驱动程序)的应用程序之一后,无法连接12c 数据库。

我们得到以下错误:

java.sql.SQLException: ORA-28040: 
No matching authentication protocol

将数据库升级到 12c 后

配置

  • JDK 版本:1.6
  • JDBC 驱动程序:ojdbc6.jar
  • 数据库版本:Oracle 12c
  • SQLNET.ALLOWED_LOGON_VERSION_SERVER = 11
  • SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 11

尝试的解决方法:

  • 1) 我们尝试使用 jdk1.6 和 ojdbc6.jar 运行一个简单的 jdbc 应用程序,它成功了。它也符合 Oracle 兼容性矩阵。
  • 2) 我们要求更新参数SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8,但安全团队无法这样做,因为它不符合安全标准。

请建议我们应该如何继续解决这个问题。

【问题讨论】:

  • 嗨 Simonare - 我们尝试了那里提供的任何解决方案。位问题仍未解决。此外,每个解决方案都在讨论将 sqlnet.allowed_version_server 参数更改为 8,但根据合规性,这是不允许的。有什么建议吗?
  • 如果有oracle支持,可以向oracle团队开SR
  • 但请记住,oracle 建议升级 ojdbc 驱动程序。你能做到吗?

标签: database oracle database-migration oracle12c


【解决方案1】:

问题出在 weblogic.jar 上,并且从 weblogic.jar 的类路径中引用了 ojdbc14.jar。我们检查了 WL_HOME\server\lib 库,发现 ojdbc14.jar 在那里。我们只是让它保留在那里,但将 ojdbc6.jar 复制到某个外部目录中,并在所有 jar 之前在 CLASSPATH 中加载相同的内容。以下来自 oracle 文档-

此驱动程序与 weblogic.jar 一起安装在 WL_HOME\server\lib 文件夹(其中 WL_HOME 是安装 WebLogic Server 的文件夹)中。 weblogic.jar 中的清单列出了此文件,以便在加载 weblogic.jar 时(服务器启动时)加载它。因此,您不需要将此 JDBC 驱动程序添加到您的 CLASSPATH。如果您计划使用未随 WebLogic Server 安装的第三方 JDBC 驱动程序,则必须安装驱动程序,其中包括使用驱动程序文件的路径更新您的 CLASSPATH,并且可能包括使用数据库客户端的路径更新您的 PATH文件。请参阅 http://www.oracle.com/technology/software/products/ias/files/fusion_certification.htmlOpens 新窗口的 Oracle 融合中间件支持的系统配置页面上的“支持的数据库配置”。

如果您计划使用随 WebLogic Server 安装的任何驱动程序的不同版本,您可以将 WL_HOME\server\lib 中的驱动程序文件替换为该文件的更新版本,或者将新文件添加到您的类路径。

因此,如果您面临同样的问题,我想建议-
1) 检查 Oracle 驱动程序 (ojdbc) - 正如 StackOverflow 上的大多数帖子所建议的那样。 You can check ojdbc driver compatibity here
2) 如果您不能立即更改驱动程序,请在 sqlnet.ora 中进行以下更改

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

(SQLNET.ALLOWED_LOGON_VERSION 在 12c 中被贬值。另外请注意,在 12c 中,SQLNET.ALLOWED_LOGON_VERSION_SERVER 参数的默认值已更新为“11”。这意味着使用 11g 之前的 JDBC 瘦驱动程序的数据库客户端除非参数设置为旧的默认值“8”,否则无法对 12.1 数据库服务器进行身份验证) 供您参考,请查看-
https://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60010
https://docs.oracle.com/database/121/UPGRD/afterup.htm#UPGRD60157

谢谢。

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 2015-05-26
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2016-05-20
    • 2015-07-17
    相关资源
    最近更新 更多