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


相关文章
|
运维 Oracle 关系型数据库
【故障处理】ORA-12162: TNS:net service name is incorrectly specified
【故障处理】ORA-12162: TNS:net service name is incorrectly specified本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-12162错误的案例。
1106 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
42 0
|
1月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
29 0
|
1月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
100 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
124 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
117 0
|
9月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
113 0