关于错误:
错误描述:本地宿主机win10装的oracle 9i的客户端,通过plsql连接两台linux的虚拟机的oracle集群时(oracle12c 12.1.0.2)报如下错误:
但是通过sqlplus连就没问题:
服务端查询错误码:
针对12c发现是需要配置两个参数:
SQLNET.ALLOWED_LOGON_VERSION_SERVER
SQLNET.ALLOWED_LOGON_VERSION_CLIENT
SQLNET.ALLOWED_LOGON_VERSION_SERVER:控制可以连接到12c数据库的客户端版本(client --->orace 12c db )
SQLNET.ALLOWED_LOGON_VERSION_CLIENT:控制12c数据库可以连到哪些版本的数据库(orace 12c db --->其它版本的oracle db),例如:控制通过DB LINK可连接到哪些版本的oracle库。
所以,我这个问题主要需要配置的是SQLNET.ALLOWED_LOGON_VERSION_SERVER。
解决办法:
在集群所有节点上,使用oracle用户登陆
Cd $ORACLE_HOME/network/admin/
如果有sqlnet.ora文件,直接加上下面两段内容:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
如果没有sqlnet.ora,自己新建一个,直接执行:
Vi sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
也是加上这两段内容。
然后需要重新加载配置文件:
Grid用户下,执行:
lsnrctl reload
需要特别注意:
A、必须是oracle用户,然后进入到$ORACLE_HOME/network/admin去修改/新增对应的文件。Grid对应的$ORACLE_HOME/network/admin目录下面也有这个sqlnet.ora文件,但是不需要修改。
B、所有的节点下面都要做,别漏了哦!