zoukankan      html  css  js  c++  java
  • ORA-12162: TNS:net service name is incorrectly specified

    概述
    因未设置系统环境变量ORACLE_SID导致ORA-12162错误

    分析原因
    首先登录数据库主机执行 oerr ora 12162


    我们首先查看看下 tnsnames.ora文件


    执行tnsping CC命令 检查下是否可以tnsping通,核对IP和端口以及实例名

    数据库服务器端使用TNSNAMES.ORA中记录的连接串连接没有问题

    查看是否指定ORACLE_SID ,使用echo $ORACLE_HOME和echo $ORACLE_SID确认系统当前的ORACLE_HOME和ORACLE_SID环境变量

    发现 ORACLE_SID未指定.......
    1
    解决方法
    如何查看ORACLE_SID呢?

    两种方式:

    select name from v$database
    查看tnsnames.ora文件得到 $ORACLE_HOME etworkadmin nsnames.ora


    我们这里的ORACLE_SID为 CC

    如果只想临时生效的话,直接在当前窗口 执行 export ORACLE_SID=CC,此时只对当前的bash登录session生效,重新打开的会话窗口依然无效。

    export设置只对当前的bash登录session有效。这是存在内存里面的。
    长期生效的话可以写入配置文件。之后source 配置文件 ,使其生效。

    将ORACLE_SID等环境变量写入到系统profile中,确保系统profile文件内容的有效性;

    设置RACLE_SID,重新尝试登录,解决。

    详说ORACLE_HOME和ORACLE_SID
    通常情况下,ORACLE_SID这个环境变量全称Oracle System Identifier,,用于在一台服务器上标识不同的实例,默认情况下,实例名就是ORACLE_SID的值(即INSTANCE_NAME=$ORACLE_SID。

    当然实例名也可以不同于ORACLE_SID这个环境变量,只要在初始化参数文件里显示指定INSTANCE_NAME参数值不同于ORACLE_SID环境变量的值即可)。

    在UNIX/Linux平台下,该环境变量主要作用是同ORACLE_HOME这个环境变量做hash运算,得到一个唯一值,用来标识共享内存段,及SGA

    ORACLE_HOME环境变量是Oracle软件的安装路径,顺带ORACLE_BASE环境变量是Oracle软件安装的基目录。

    结论:在UNIX、Linux平台上,
    相同的ORACLE_HOME下不可以同时运行ORACLE_SID相同的多个实例,
    不同的ORACLE_HOME下可以同时运行ORACLE_SID相同的多个实例!

  • 相关阅读:
    [文摘20070723]最经典的爱情观
    [转]ASP .Net C# 下 Word开发资料
    [引]如何藉由使用 Visual C# . NET 處理 Word 中的事件
    简单的搭建Web系统常用的框架页面
    Gentle 简单配置方法之一种
    在 可编辑的 Div 的 光标位置 插入 文字 或 HTML
    [转]使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
    VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
    要事第一 事不过三
    VC slider用法
  • 原文地址:https://www.cnblogs.com/liutoliu/p/10770331.html
Copyright © 2011-2022 走看看