环境

[oracle@pub19-node2~]$sqlplus-vSQL*Plus:Release19.0.0.0.0-ProductionVersion19.5.1.0.0问题描述

当使用orapwd修改密码文件之后,普通用户通过tnsnames.ora文件登陆数据库没有问题,当涉及sysdba使用

密码文件时则在输入正确密码之后,会报ORA-12514,在orapwd之前是没有这个问题的。

[oracle@pub19-node2dbs]$orapwdfile=+datadgdbuniquename=orclformat=12sys=passwordsysdg=passwordforce=y

[oracle@pub19-node2~]$sqlplussystem@czhprimarySQL*Plus:Release19.0.0.0.0-ProductiononSunMay308:09:452020Version19.5.1.0.0Copyright(c)1982,2019,Oracle.Allrightsreserved.Enterpassword:LastSuccessfullogintime:SunMay03202007:56:27+08:00Connectedto:OracleDatabase19cEnterpriseEditionRelease19.0.0.0.0-ProductionVersion19.5.1.0.0SYSTEM@czhprimary>


[oracle@pub19-node2~]$sqlplussys@czhprimaryassysdbaSQL*Plus:Release19.0.0.0.0-ProductiononSunMay308:08:532020Version19.5.1.0.0Copyright(c)1982,2019,Oracle.Allrightsreserved.Enterpassword:ERROR:ORA-12154:TNS:couldnotresolvetheconnectidentifierspecifiedEnteruser-name:问题排查

当发生ORA-12514时,一般有如下几个原因:

(1)tnsnames.ora文件未正确配置。

(2)sqlnet.ora文件未正确配置。

(3)由于客户端与服务器端版本不同,未在sqlnet.ora文件中修改兼容性参数。

(4)密码文件未正确配置

问题解决

经过排查,以上问题均一一尝试,均无法解决,随去Mos搜索,找到文章如下:

Change in Password and Remote Connection Suddenly Yields : ORA-12154 TNS: Unable to Resolve Service Name (Doc ID 291709.1)

该问题发生在通过orapwd修改的密码有@符号时,恰巧我修改的密码包含@,所以在输入密码时需要添加双引号如下:

[oracle@pub19-node2~]$sqlplussys@czhprimaryassysdbaSQL*Plus:Release19.0.0.0.0-ProductiononSunMay308:18:062020Version19.5.1.0.0Copyright(c)1982,2019,Oracle.Allrightsreserved.Enterpassword:"1qaz@WSX"Connectedto:OracleDatabase19cEnterpriseEditionRelease19.0.0.0.0-ProductionVersion19.5.1.0.008:18:15SYS@czhprimary>思考

当发生该问题时,应该想到唯一修改的只有密码文件,之前连接未有问题,也定位到时密码文件问题,但是并未想到

会在输入密码时需要使用双引号括起来,还是要多多思考。

参考文章:

Change in Password and Remote Connection Suddenly Yields : ORA-12154 TNS: Unable to Resolve Service Name (Doc ID 291709.1)