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

Rangle發表於2018-04-24

最近在梳理環境,發現環境真的不是一般的複雜,配置不是一般的亂,剛在梳理環境的時候發現一個庫通過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>

 

相關文章