Oracle案例05——ORA-12162: TNS:net service name is incorrectly specified

时间:2023-02-02 16:56:07

最近在梳理环境,发现环境真的不是一般的复杂,配置不是一般的乱,刚在梳理环境的时候发现一个库通过conn /as sysdba无法连接,具体处理过程如下:

一、错误信息

[oracle@ ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 24 09:48:26 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> conn /as sysdba;
ERROR:
ORA-12162: TNS:net service name is incorrectly specified SQL> exit

二、错误原因

一般出现这种错误,基本都是环境变量配置有问题,要么是没有配置正确的ORACLE_SID、ORACLE_HOME,要么是监听配置环境变量和.bash_profile环境变量配置不一致。

这里检查发现,是操作系统环境变量没有配置ORACLE_SID

[oracle@ ~]$ env |grep ORA
ORACLE_BASE=/data/oracle
ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_1

三、解决办法

将oracle用户下.bash_profile中添加具体的ORACLE_SID并应用即可

[oracle@ ~]$ vi ~/.bash_profile
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=orcl
export ORACLE_SID ORACLE_BASE ORACLE_HOME
[oracle@ ~]$ source ~/.bash_profile [oracle@ ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 24 10:00:40 2018 Copyright (c) 1982, 2013, Oracle.  All rights reserved. SQL> conn /as sysdba;
Connected.
SQL>