ITPub博客

首页 > 数据库 > Oracle > oracle for windows 监听问题之TNS-12545: 因目标主机或对象不存在, 连接失败

oracle for windows 监听问题之TNS-12545: 因目标主机或对象不存在, 连接失败

原创 Oracle 作者:清风艾艾 时间:2017-12-19 09:55:57 0 删除 编辑

    操作系统版本:windows server 2012R2

    数据库版本:oracle 11.2.0.1

    问题描述:在一vmware虚拟机上搭建的windows server 2012R2,然后在windows server2012R2上安装的oracle 11.2.0.1,本来是想测试oracle

针对oracle 11.2.0.1发布的最新的CPU补丁集能不能在windows server2012R2操作系统,没想到打完补丁,重启oracle数据库服务,查看

监听状态时报错了,报错如下:

Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:15:39
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8.localdomain
)(PORT=1521)))
TNS-12545: 因目标主机或对象不存在, 连接失败
 TNS-12560: TNS: 协议适配器错误
  TNS-00515: 因目标主机或对象不存在, 连接失败
   64-bit Windows Error: 1001: Unknown error
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS: 无监听程序
 TNS-12560: TNS: 协议适配器错误
  TNS-00511: 无监听程序
   64-bit Windows Error: 2: No such file or directory

    处理过程:

查看数据库实例状态,数据库实例是打开的
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 12月 19 09:16:16 2017
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL>

查看数据库监听服务状态,发现监听服务是运行着的:

根据监听报错提示,查看操作系统名称:

再次查看监听报错:

发现监听报错是因为监听配置文件里的主机名是WIN-0QKPVTN4SB8.localdomain,核实监听程序配置文件是否如报错提示:

由监听配置文件内容看来,确实是WIN-0QKPVTN4SB8.localdomain,尝试将监听配置文件中的HOST修改为WIN-0QKPVTN4SB8,再次

启动监听程序,监听程序能够成功启动:

C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:21:43
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为C:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
写入c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  19-12月-2017 09:21:44
正常运行时间              0 天 0 小时 0 分 1 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
监听程序日志文件          c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\
log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users\Administrator>

C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 12月 19 09:21:54 2017
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter system register;
系统已更改。
SQL> quit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-12月-2017 09:22:06
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  19-12月-2017 09:21:44
正常运行时间              0 天 0 小时 0 分 21 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
监听程序日志文件          c:\oracle\diag\tnslsnr\WIN-0QKPVTN4SB8\listener\alert\
log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-0QKPVTN4SB8)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
C:\Users\Administrator>

到此问题算是圆满解决了,但是为什么监听程序配置的主机名为什么是WIN-0QKPVTN4SB8.localdomain,并且监听启动还报错TNS-12545,很奇怪。

另外,网上说将监听配置程序里的HOST后边的主机名修改为IP地址,不用想这样修改肯定是可以的,但是问题是数据库服务器的主机名一般是不修改

的,但是相对来说IP被修改的机率就大多了,如果将监听配置的HOST修改为IP,以后服务器变更IP地址,还需要修改数据库监听配置文件,不好维护。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29357786/viewspace-2148851/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
个人喜欢IT行业,目前从事数据库工作,包括Oracle、mysql、mongodb、sqlserver等数据库的维护,喜欢专研开发技术,尤其对java程序的开发感兴趣。工作经历上,在中国联通系统集成公司、中公网医疗信息技术有限公司做过数据库技术支持;目前在海量数据,负责华东区oracle、mysql、mongodb的维护工作。

注册时间:2015-01-30

  • 博文量
    179
  • 访问量
    215370