错误:ora-12162 网络服务名错误的指定

原文转自:http://space.itpub.net/519536/viewspace-672034

故障处理】ORA-12162:
TNS:net service name is incorrectly specified

本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-12162错误的案例。希望大家有所思考。

1.获得有关ORA-12162报错信息的通用表述信息
[oracle@asdlabdb01 ~]$ oerr ora 12162
12162, 00000, "TNS:net service name is incorrectly specified"
// *Cause:  The connect descriptor corresponding to the net service name in
// TNSNAMES.ORA or in the directory server (Oracle Internet Directory) is
// incorrectly specified.
// *Action: If using local naming make sure there are no syntax errors in
// the corresponding connect descriptor in the TNSNAMES.ORA file. If using
// directory naming check the information provided through the administration
// used for directory naming.

2.故障现象
本文所要描述的故障与这个通用的问题描述不同,在数据库服务器端使用TNSNAMES.ORA中记录的连接串连接没有问题,但如若未指定连接串,将会报出ORA-12162错误。

1)使用system用户尝试登录系统,此时便会收到报错如下信息
[oracle@asdlabdb01 ~]$ sqlplus system/sys

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 22:54:02 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

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

Enter user-name:

2)使用sysdba身份登陆会得到同样的错误信息
[oracle@asdlabdb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 22:54:48 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

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

Enter user-name:

3)但此时,如果使用服务名方式连接数据库,是可以成功的,这也是该问题现象的诡异之处。
[oracle@asdlabdb01 ~]$ sqlplus system/sys@ora10g

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 22:53:41 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

system@ora10g>

想象一下,你的目标是快速的进入到数据库中进行维护操作,但此时登录都遭遇障碍,会感到非常的别扭。更让人抓狂的是,如果此时使用连接串登录到数据库进行停起操作,结果将会处于更加惨烈境况:数据库将因为无法正常登录导致无法启动数据库。

3.故障原因
诡异的故障背后的原因竟然是那样的基础:ORACLE_SID没有指定!
确认系统当前的ORACLE_HOME和ORACLE_SID环境变量
[oracle@asdlabdb01 ~]$ echo $ORACLE_HOME
/oracle/app/oracle/product/10.2.0/db_1
[oracle@asdlabdb01 ~]$ echo $ORACLE_SID

[oracle@asdlabdb01 ~]$

可见,此时只设置了ORACLE_HOME环境变量,但ORACLE_SID此时为空,这就是该问题的真实原因。

4.故障处理
给出ORACLE_SID,重新尝试登录。
[oracle@asdlabdb01 ~]$ export ORACLE_SID=ora10g
[oracle@asdlabdb01 ~]$ echo $ORACLE_SID
ora10g
[oracle@asdlabdb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 23:27:34 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

sys@ora10g>

OK,此时问题处理完毕。

5.小结
这个案例给我们的启迪是什么?
1)系统默认的错误提示信息有时不具有参考价值。而且,某些情况下这些错误提示还可能给我们带来误导。原因很简单,系统默认的错误提示信息不可能囊括所有故障现象;
2)任何系统级别的设置问题都有可能导致数据库系统出现异常;
3)在遇到故障的时候,我们需要沉着冷静。有些时候可能需要我们Check最原始的信息,切莫想当然。

建议:为了避免出现文章中提到的问题,第一,可以将ORACLE_SID等环境变量写入到系统profile中,但需要确保系统profile文件内容的有效性;第二,不在profile中进行填写,每次登录数据库服务器时手工完成数据库环境变量的指定,这种方法虽然增加了键盘的敲击,但它更直观、更有保障。

Good luck.

时间: 2024-10-09 12:22:54

错误:ora-12162 网络服务名错误的指定的相关文章

数据库-oracle 网络服务名 与 服务名有什么区别

问题描述 oracle 网络服务名 与 服务名有什么区别 1 网络服务名 2 服务名 3 SID 这三个有什么区别,分别有什么作用,希望能从数据库系统运行的机制来解答,谢谢 解决方案 --网络服务名 (NET SERVICES NAME) 它是" 连接描述符 " 简称. 数据库服务名 (SERVICE_NAMES)---------------- 数据库的逻辑表示,它是数据库呈现给客户机的方式.缺省为全局数据库名,即在安装 或数据库创建期间输入的由数据库和域名组成的一种名称,如不存在数

sql-SQL发生服务特定错误17051

问题描述 SQL发生服务特定错误17051 Sqlserver2008发生服务特定错误17051???????????????????????????????? 解决方案 解决方案: 1.Microsoft SQL Server 2008-->配置工具-->SQL Server 安装中心-->维护-->版本升级, 产品密钥输入: 开发版: PTTFM-X467G-P7RH2-3Q6CG-4DMYB 企业版: JD8Y6-HQG69-P9H84-XDTPG-34MBB 2.一般第一步

linux系统重启网络服务错误

问题描述 linux系统重启网络服务错误 linux系统输入重启网络服务的命令后,出现下方的错误:弹出界面Auto_eth1: 错误:激活连接失败:Device not managed by NetworkManager.[失败]这是什么原因造成的呢?该如何解决呢? 解决方案 linux下重启网络服务linux下重启网络服务linux下重启网络服务 解决方案二: 我已解决,关闭问题.

Win7网络共享1061错误怎么办?

  最近有朋友在windows7系统下启动网络共享的时候,无法正常启用共享访问,系统提示错误1061 ,即服务无法在此时接受控制信息,这是怎么回事呢?该怎么办呢?其实出现这个问题的主要原因是系统中了蠕虫病毒的危害才引起的,具体情况看看下面的介绍吧. 分析原因: 病毒名称:蠕虫病毒Win32.Luder.I 其它名称:W32/Dref-U (Sophos), Win32/Luder.I!Worm, W32.Mixor.Q@mm (Symantec), W32/Nuwar@MM (McAfee),

win7系统开启服务提示错误1067进程意外终止怎么办

  win7系统开启服务提示错误1067进程意外终止怎么办 1.在桌面上的网络图标上单机右键,选择属性,然后点击"更改适配器设置"; 2.在网络链接界面中的"本地连接"上单击右键选择属性(网络连接中有多个"本地连接",我们要选择在使用的那一个); 3.在属性界面点击"共享"选卡,然后点击"设置"按钮; 4.在高级设置中,在服务窗口下方勾选所有服务,然后点击确定; 5.在左面上的计算机中单击右键,选择&quo

错误1075:依存服务不存在或已标记为删除的解决方法

  [现象] 在"开始->设置->控制面板->管理工具->服务"中手动开启某种服务时,出现"错误1075:依存服务不存在, 或已标记为删除",如果系统是英文版,则是"Error 1075: The dependency service does not exist or has been marked for deletion.". [解决方法] 1.双击想要开启的服务,在弹出的面板中,选择"依存关系"

win7系统启动Wlan autoconfig服务出现错误1068的解决方法

  在我们日常电脑办公中,最受不了的莫属网络问题,在windows系统中,造成网络故障的原因有很多种,如果是win7系统,当出现网络故障时,在系统右下角任务栏中,会显示红叉或网络图标显示黄色感叹号,对于出现该问题我们通常会排查Wlan autoconfig服务进程,但有部分win7用户开启该服务时,却出现错误1068的提示,对于该问题我们如何解决呢?下面看小编为大家带来的详细操作方法! 解决方法 1.我们来win7系统的桌面,点击开始在菜单中点击"运行"; 2.点击运行弹出来的运行窗口

sql server2000由于登录失败而无法启动服务解决(错误1069)

server|错误|解决 安装SQL Server2000时是使用默认登录用户来作为启动SQL Server服务的账号(对于自己使用的单机,通常就是administrator了),但是我更改了用户名出现"同于登录失败而无法启动服务"的错误 以下我试过的方法. 1,把用户口令改回原来的,再启动服务 2,使用控制面版服务管理器,找到MSSQLSERVER服务,更改启动账号信息,改成变更后的,再启动服务 3,也是推荐使用的方法,创建一个新用户,专门用于启动SQL Server服务,安装SQL

电脑设置TP-LINK路由器提示无线配置网络密码位数错误怎么解决

电脑设置TP-LINK路由器提示无线配置网络密码位数错误怎么解决   1.使用WPA/WPA2加密方式,出现这种情况最大的可能是系统不支持,请查看系统是否支持该加密方式,点击无线网络属性-关联,在网络验证中查看系统是否支持普联无线路由器中设定的加密方式; 2.如果没有普联无线路由器中设置的加密,下载操作系统补丁以支持普联无线路由器的加密方式或将普联无线路由器中的加密方法改为无线网卡支持的加密方式; 3.使用WEP加密方式,出现这种情况是因为密码长度不符合要求,重新确认密码: WEP加密方式各密钥