oracle for windows 监听问题之TNS-12545

操作系统版本: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地址,还需要修改数据库监听配置文件,不好维护。

时间: 2024-07-31 20:54:41

oracle for windows 监听问题之TNS-12545的相关文章

TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误

一.环境描述: OS : Windows Server 2008 32BitDB : 11.2.0 二.排错过程: 前天应用不能访问数据库了 (后台应用能访问数据库),故障发生.马上登录到服务器里查看监听状态,发现有TNS-12541 ,TNS-12560等错误 手动把监听服务启动,这时候服务状态上显示为已启动,但在CMD窗口执行lsnrctl status的时候依然返回错误信息: C:\>lsnrctl status LSNRCTL for 32-bit Windows: Version 11

AIX下RAC搭建 Oracle10G(五)安装oracle、建立监听

AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(五)安装oracle.建立监听 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 SAN T3存储 大纲流程例如以下: 第一部分:主机配置 一.检測系统环境 二.网络配置 三.用户和组 四.网络參数调整 五.时间同步 六.卷组 第二部分:安装hacmp并配置 七.hacmp安装并配置 第三部分:安装CRS 八.

修改oracle 10g rac监听端口号为1523的步骤

修改oracle  10g rac监听端口号为1523的步骤 一. 修改listener.ora ,将其中的1521改为1523.事先做该文件的备份,以便快速复原 二. 修改tnsnames.ora ,将remote_listener对应的值 在 tnsnames.ora中的参数改为1523,事先做该文件的备份,以便快速复原 三. 修改local_listener数据库初始化参数 alter system set local_listener = '(ADDRESS = (PROTOCOL =

Linux下安装oracle遇到启动监听服务器启动失败

1.发现监听服务器没有启动,则  lsntctl start 启动监听服务器: 2.发现TNS-12555问题: 3.查找TNS-12555错误,找到一个满意的答案: chmod  777 /var/tmp/.oracle 4.重新启动监听服务器,启动成功!

配置Oracle数据库和监听随Linux系统自启动【转】

配置Oracle数据库和监听随Linux系统自启动 在某些情况下需要在Linux操作系统上提供一种无人值守的随机启动Oracle的功能,目的也许仅仅是为了帮助那些对Oracle细节非常不关心的朋友.当然,如果有可能,一定不要使用这种自动化的方法,因为有太多不确定的因素存在.正途还是一边手工启动数据库,一边监控alert日志,以便第一时间发现问题解决问题. Anyway,随Linux系统启动数据库还是有其存在价值的,下面通过这个小文儿给大家展示一下这个自动化过程. 1.确保“/etc/oratab

oracle 11g rac 监听程序offline

oracle 11g rac 监听程序在调整过网络后出现监听进程offline,而且两台节点之间频繁切换,查看日志/var/log/message 发现有频繁的注册撤销动作. 监听日志 /u01/app/oracle/diag/tnslsnr/rac1/listener/trace/listener.log监听文件 /u01/app/11.2.0/grid/network/admin/listener.oraoracle错误日志 /u01/app/oracle/diag/rdbms/oaorcl

Oracle 11g RAC 监听日常管理

需要必须掌握的命令,上周遇到了一个小问题,就是需要重启数据库监听,有的同学竟然使用oracle用户重启监听,原理就搞错了怎么行.以下操作都需要再grid用户下进行操作. 1.查看监听状态 <roidb2:+ASM2:/home/grid>$srvctl status listener Listener LISTENER is enabled Listener LISTENER is running on node(s): roidb1,roidb2 <roidb2:+ASM2:/home

Windows平台下Oracle 11g R2监听文件日志过大,造成客户端无法连接的问题处理

近期部署在生产环境的应用突然无法访问,查看应用日志发现无法获取数据库连接. SystemErr R Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection SystemErr R at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359) SystemErr R at oracle.net.resolve

Oracle监听启动-ORA-12541: TNS: 无监听程序

windows经常遇到TNS无监听问题,首先排查 $ORACLE_BASE/diag/tnslsnr/机器名/listener/trace 下的listenter.log是否达到4g 如果达到4g 解决办法如下 1.cmd  ---->     lsnrctl stop 2.listener.log重命名 3.cmd ---> lsnrctl start 5.查看监听服务状态  lsnrctl status 原文地址:https://www.cnblogs.com/yang6/p/113873