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

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

概述


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


分析原因


首先登录数据库主机执行 oerr ora 12162

20160906102102262.png

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


20160906102402872.png


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


20160906102521107.png


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


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

发现 ORACLE_SID未指定.......


解决方法


如何查看ORACLE_SID呢?

两种方式:

  • select name from v$database
  • 查看tnsnames.ora文件得到 $ORACLE_HOME\network\admin\tnsnames.ora


20160906103258001.png


我们这里的ORACLE_SID为 CC


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


export设置只对当前的bash登录session有效。这是存在内存里面的。

长期生效的话可以写入配置文件。之后source 配置文件 ,使其生效。


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


20160906103623158.png

20160906104003910.png

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

20160906104225833.png


详说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相同的多个实例!


相关文章
|
3月前
|
API
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
|
3月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
14天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
|
3月前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
|
3月前
|
开发框架 JavaScript 前端开发
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
|
3月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
3月前
|
开发框架 前端开发 JavaScript
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
|
3月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
3月前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
下一篇
无影云桌面