ORA-12162: TNS:net service name is incorrectly specified

ORA-12162

1 错误信息

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 21 11:23:01 2019

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

ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name:

2 分析及解决

 

2.1 原因

此问题出现的原因,多是由于未配置变量 ORACLE_SID 引起的,如下是oracle用户的 .bash_profile 文件

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

ORACLE_BASE=/oradata
ORACLE_HOME=/oradata/product/10.2.0/db_1
ORACLE_SID=gjcrm
PATH=$ORACLE_HOME/bin:$PATH

export  ORACLE_HOME  PATH

有没有看出什么?

ORACLE_SID 变量有配置,但是没有 export, 也就是未生效。

2.2 解决

将环境变量生效的方法有多种,包括临时生效(退出session后自动失效,下次再切换到该 用户也不会生效), 自动生效(每次切换到该用户都会自动生效)。下面分别说明

  • 临时生效方法

    在shell环境中执行export命令:

    export ORACLE_SID=gjcrm
    

    在当前session中马上生效。

  • 自动生效方法

    在用户环境变量的配置文件中添加export配置:

    ORACLE_BASE=/oradata
    ORACLE_HOME=/oradata/product/10.2.0/db_1
    ORACLE_SID=gjcrm
    PATH=$ORACLE_HOME/bin:$PATH
    
    export ORACLE_BASE  ORACLE_HOME ORACLE_SID  PATH
    

    配置完成后,执行

    source ~/.bash_profile
    

    或者重新登录该用户都可以生效。

Author: halberd.lee

Created: 2019-08-21 Wed 16:22

Validate

posted @ 2019-08-21 16:23  halberd.lee  阅读(793)  评论(0编辑  收藏  举报