返回小栈
关于Oracle12c连接报错的问题
bq_wang2020-02-20 15:38:21

关于Oracle12c连接报错的问题

这段时间因为项目原因,接触到了Oracle12C,其实问题很简单,就是pl/sql developer能够访问数据库服务端即可,却碰到了奇奇葩葩的问题,现分享一下。

1、在java端报Ora-12505错误,即TNS:listener does not currently know of SID given in connect descripter

注:找数据库管理员,数据库管理告知给的是数据库服务名称,改完以后,暂时不报该错误。

2、在pl/sql developer客户端报Ora-01017错误,即提升invalid username/password.logon denied.

注:找数据库管理员帮忙查看,在他的客户端登陆没问题,但在这边的客户端登陆还是有问题

3、通过网上查证原因,为何不能登陆问题,原因是Oracle低版本访问Oracle12c服务器存在兼容性问题,但因数据库服务器不在本地维护,且不能擅自变更配置或重启,只能考虑客户端的解决方案。

3.1 注:在cmd里先找到安装程序的位置再执行命令

setup.exe -ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"

3.2修改sqlnet.ora

1) 在服务器环境,修改sqlnet.ora,添加以下两行:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

其中的数字代表了可允许连接的最小版本号。

2) 重启监听服务:lsnrctl restart

3.3Oracle新增用户进行密码变更,使得兼容性生效。

ALTER USER username IDENTIFIED BY password;

select username,account_status,default_tablespace,created,password_versions from dba_users;

3.4创建c##用户,create user c##test identified by test;

其中3.1没什么效果,3.2因无法检查数据库环境,3.3修改了密码验证还是没什么用处,3.4方案dba不肯做

4、死胡同里的一条路,变更Oracle客户端版本

通过网上搜索,找到了客户端和服务端的一张兼容表,大意就是只有11.2.0.3及以上的版本才能支持访问Oracle12c的相关版本。

关于客户端到服务器端相互之间的兼容性如下表

 



5、安装Oracle12c新客户端,又报INS-30131错误,即

Initial setup requierd for the execution of installation failed

注,再次查询百度,发现该问题由于之前的Oracle客户端的java版本导致的,删掉重装。

 

6OK


0
0