Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database ORA-28040:将数据库从11g升级到12c后 问题陈述:_Database_Oracle_Database Migration_Oracle12c - Fatal编程技术网

Database ORA-28040:将数据库从11g升级到12c后 问题陈述:

Database ORA-28040:将数据库从11g升级到12c后 问题陈述:,database,oracle,database-migration,oracle12c,Database,Oracle,Database Migration,Oracle12c,我们正在进行一项迁移活动,将数据库从ORACLE 11g迁移到ORACLE 12c。 升级后,我们的一个应用程序(使用jdk6和ojdbc6.jar)无法连接12c数据库 下面是我们得到的错误信息: 将数据库升级到12c后 配置 JDK版本:1.6 JDBC驱动程序:ojdbc6.jar 数据库版本:Oracle 12c SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER=11 SQLNET.ALLOWED\u LOGON\u VERSION\u CLIENT=

我们正在进行一项迁移活动,将数据库从
ORACLE 11g
迁移到
ORACLE 12c
。 升级后,我们的一个应用程序(使用
jdk6
ojdbc6.jar
)无法连接12c数据库

下面是我们得到的错误信息:

将数据库升级到12c后

配置
  • JDK版本:1.6
  • JDBC驱动程序:
    ojdbc6.jar
  • 数据库版本:Oracle 12c
  • SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER=11
  • SQLNET.ALLOWED\u LOGON\u VERSION\u CLIENT=11
已尝试解决方法:
  • 1) 我们尝试用jdk1.6和ojdbc6.jar运行一个简单的jdbc应用程序,结果成功了。此外,它还符合Oracle兼容性矩阵
  • 2) 我们要求更新参数
    SQLNET.ALLOWED\u LOGON\u VERSION\u SERVER=8
    ,但安全团队无法这样做,因为它不符合安全标准

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

问题是当时的weblogic.jar,在weblogic.jar的类路径中,引用了ojdbc14.jar。我们检查了WL_HOME\server\lib库,发现ojdbc14.jar就在那里。我们只是让它保留在那里,但在一些外部目录中复制了ojdbc6.jar,并在所有jar之前将其加载到类路径中。以下是oracle文档-
此驱动程序与WebLogic.jar一起安装在WL_HOME\server\lib文件夹(其中WL_HOME是安装WebLogic server的文件夹)中。weblogic.jar中的清单列出了该文件,以便在加载weblogic.jar时(服务器启动时)加载该文件。因此,不需要将此JDBC驱动程序添加到类路径中。如果计划使用未随WebLogic Server安装的第三方JDBC驱动程序,则必须安装驱动程序,其中包括使用驱动程序文件的路径更新类路径,还可能包括使用数据库客户端文件的路径更新路径。请参阅新窗口中Oracle Fusion中间件支持的系统配置页面上的“支持的数据库配置”

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

因此,如果你面临同样的问题,我想建议-
1) 检查Oracle驱动程序(ojdbc)-因为StackOverflow上的most post建议相同。
2) 如果无法立即更改驱动程序,请在sqlnet.ora中进行以下更改

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
(SQLNET.ALLOWED\u LOGON\u VERSION在12c中折旧。另外,请注意,在12c中,SQLNET.ALLOWED\u LOGON\u VERSION\u服务器参数的默认值已更新为“11”。这意味着使用11g之前JDBC精简驱动程序的数据库客户端无法对12.1数据库服务器进行身份验证,除非参数设置为旧的默认值“8”) 请检查-


谢谢。

Hi-Simonare的可能复制品-我们尝试了提供的任何解决方案。位问题仍然没有解决。此外,每个解决方案都在讨论将sqlnet.allowed_version_server参数更改为8,但根据法规遵从性,这是不允许的。有什么建议吗?如果您有oracle支持,您可以向oracle团队打开SR,但请记住oracle建议升级ojdbc驱动程序。你能做到吗?请检查以下内容:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8