Oracle数据库TNS错误解决方法

ORA-12154: TNS:could not resolve the connect identifier specified ,即无法解析指定的连接

标识符。这说明缺少了一个环境变量,TNS_ADMIN

解决方法:windows:

右击 我的电脑 -> 属性 -> 高级 -> 环境变量 -> Administrator 的用户变量 -> 新建 ,            

变量名为:TNS_ADMIN 

变量值为:%ORACLE_HOME%/NETWORK/ADMIN/                 

其中 %ORACLE_HOME% 即 Orcale 的安装路径,

其实,设置的该环境变量的值为 tnsnames.ora文件所在路径,特别是重装后或其它操作,忘了设置TNS_ADMIN 变量,PL/SQL 登陆就会报“无法解析指定的连接标识符”的错误 ,而设置TNS_ADMIN变量是为了能够找到 tnsnames.ora。如果本机上安装了ORACLE,并且设置了 ORACLE_HOME 环境变量,那么会自动在 %ORACLE_HOME%/NETWORK/ADMIN/位置查找 tnsnames.ora 文件。

 

Oracle ORA-12154: TNS: 无法解析指定的连接标识符”错误

主要原因

1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。

2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.

3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建
,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.

4. 本机DNS解析不对。

诊断工具:

1.tnsping命令:如果能够ping通,则说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。但是如果不能用tnsping通,则肯定连接不到数据库。

2.lsnrctl命令listener control 监听控制因为你在键入 lsnrctl 回车之后,就进入到监听控制界面。在启动、关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监听器的状态:

  1、lsnrctl status:检查当前监听器的状态

  2、lsnrctl start [listener-name]启动所有的监听器,可以指定名字来启动特定的监听器

  3、lsnrctl stop [listener-name]关闭所有的监听器,可以指定名字来关闭特定的监听器

  4、$lsnrctl reload重启监听器,此命令可以代替lsnrctl stop,lsnrctl start

  5、lsnrctl hep 可以显示所有可用的监听器命令

猜你喜欢

转载自www.cnblogs.com/TNPC/p/9121085.html