OBIEE 11g连接Oracle 19c报ORA-28040异常处理方案咨询
ORA-28040连接报错排查处理方案
根因说明
这个报错的核心触发逻辑是客户端与数据库端SQLNET认证协议版本不匹配:Oracle 19c默认弃用了11g版本客户端驱动支持的旧版认证协议,OBIEE 11g原生自带的是Oracle 11g系列的JDBC/OCI驱动(版本号11.2.x及更早),默认无法和19c的默认认证配置握手,才会抛出该异常。
具体排查处理步骤
- 第一步:确认当前OBIEE侧的驱动版本
登录OBIEE部署服务器,找到驱动存放路径,通常在$BI_HOME/bifoundation/jdbc、$MIDDLEWARE_HOME/oracle_common/modules/oracle.jdbc_<版本号>两个目录下,查看ojdbc相关jar包的版本:如果是11.x版本的驱动,就符合版本不兼容的特征。 - 第二步:临时验证根因(不推荐长期使用)
可以先调整Oracle 19c服务端的认证兼容配置,快速确认问题根源:
编辑数据库服务器上的$ORACLE_HOME/network/admin/sqlnet.ora文件,添加如下两行配置:
保存后重启数据库监听和实例,再从OBIEE发起连接测试,如果能正常连通,即可100%确认是驱动版本兼容问题。SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11注意:该配置会降低数据库的认证安全等级,仅适合临时排障使用,生产环境、公网暴露的数据库禁止长期保留该配置。
- 第三步:正式环境长期解决方案
不需要升级OBIEE 11g整体版本,仅替换对应驱动即可解决问题:- 根据OBIEE运行依赖的JDK版本,下载对应适配的Oracle 19c JDBC驱动包:JDK6环境选19c版本的
ojdbc6.jar,JDK7及以上环境选19c版本的ojdbc8.jar,同时下载配套的orai18n.jar包 - 完全停止OBIEE所有服务(包括Node Manager、BI Server、Presentation Server、BI Publisher等全部组件)
- 备份所有驱动目录下原有的旧版Oracle JDBC相关jar包,避免替换失败无法回滚
- 将下载好的19c版本驱动包复制到所有存放JDBC驱动的目录下,删除旧版本的同类型jar包,防止类加载时出现版本冲突
- 重启OBIEE全量服务,重新配置数据库连接池测试连通性即可
- 根据OBIEE运行依赖的JDK版本,下载对应适配的Oracle 19c JDBC驱动包:JDK6环境选19c版本的
- 第四步:替换驱动后仍异常的排查点
如果换完驱动还是连不上,优先检查两个配置:- 确认RPD物理层、连接池配置的连接信息正确:Oracle 19c如果使用CDB/PDB架构,必须填写正确的PDB服务名,不能直接用CDB的SID连接
- 确认连接使用的数据库用户密码版本兼容,可通过
alter user <用户名> identified by <原密码>;命令重置一次密码,生成适配新驱动的密码哈希版本
结论
该问题不需要升级OBIEE 11g整体程序,优先替换适配19c版本的JDBC驱动即可彻底解决,不建议长期通过降低数据库安全配置的方式规避报错。
内容的提问来源于stack exchange,提问作者icd
相关产品推荐
相关产品推荐

