诡异的TNS-12541:TNS:nolistener
诡异的TNS-12541:TNS:nolistener
OS:Microsoft Windows 2003 EnterPrise
Database:Oracle Database EnterPrise 11.2.0.1
内存:1G
2013年8月13日,是个特殊的日子,这天天空很蓝,城市的各个角落飘散着玫瑰花的香味,那是一个令人陶醉的日子,正享其中的时候,突然来了个电话,所有的一切的一切都泡汤了,全无了。
一客户现场工程师打电话过来,说数据库连不上了,监听起不来了,被告知报错TNS-12571:TNS:包写入程序失败,通过查询Metalink文档,让其修改$ORACLE_HOME/network/admin/SQLNET.ora文件,添加SQL.NET.AUTHENTICATION_SERVICES= (NONE),后重启监听,结果无效。
约2个小时后,我来到用户现场;检查发现并没有报TNS-12571错误,而是报的TNS-12541:TNS:nolistener的错误,这个错误很明显就是监听没起来或是无法启动。随即手工起监听程序,结果发现起不来,报TNS-12541错误,应该可以判断是监听配置文件的问题,故检查后重建监听。
更加怪异的是,重建监听也无效,还是报TNS-12541错误,而且启动过程非常慢,随即我查看了硬件配置,和数据库的参数配置,虽然比较低,但也不至于数据库能起来,监听起不来呀,随后检查端口,发现存在1521端口,说明监听是起来的,这个时候,我手工shutdown 数据库,停止数据库所有服务。再次查看,发现还是存在1521的端口在线,开始猜测本机除了数据库还有其它应用在占用着1521端口,随即修改监听默认端口,改为152,再次重启监听,还是一样报TNS-12541:TNS:nolistener;通过查看端口,152端口不存在,确定监听是没有起来的。
这个时候再猜测,估计是内存间通信导致;要正确判断这个问题,就是将相关服务都禁用掉,把服务器重启,再经用户的同意之后,重启服务器,检查当前服务器的存活端口,没有1521端口,这判断1521端口没有被其它自启动软件占用,故再次启动监听,还是报同样错误:TNS-12541:TNS:no listener;这个时候就纳闷了,监听日志大小达到4G,无法打开,当然就无法分析。
但是我注意到一个细节,就是我怎么操作监听服务,listener日志大小都不变,这个时候我将listener.log日志文件剪切到桌面,重新在原目录下创建同名的listener.log文件,并赋予Everyone写入权限,再次启动监听,这个时候没有报错,启动速度非常快。而且这个新建立的listener.log文件也记录监听的启动信息,没有问题;随后将监听端口修改为默认的1521端口,问题未现;重启数据库,监听自动注册。故障排除。
这个问题说明是由于日志太大无法写入导致数据库监听无法正常启动,建议手工定时清空数据库日志文件,以避免此类问题发生。
诡异的TNS-12541:TNS:nolistener的更多相关文章
- TNS-12535: TNS:operation timed out案例解析
一数据库突然连接不上,在自己电脑上使用SQL Developer也连接不上.立即使用SecureCRT连接上了这台服务器,从下面几个方面检查. 1:检查了数据库的状态是否正常 $ sqlplus / ...
- 在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘
最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作 ...
- 转:最简单的基于 DirectShow 的视频播放器
50行代码实现的一个最简单的基于 DirectShow 的视频播放器 本文介绍一个最简单的基于 DirectShow 的视频播放器.该播放器对于初学者来说是十分有用的,它包含了使用 DirectSho ...
- nusoap
PHP SOAP服务器 用PHP和NuSoap来建立SOAP服务器非常容易.基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了.OK,另外还需要两步 ...
- WCF - 契约
契约就是双方或多方就某个问题达成的一种的共识 服务提供者通过契约的形式将服务公布出来 服务消费者根据契约来消费 这样通过契约这个中间者就可以规范服务提供的内容 而服务消费者也可以根据契约来使用服务端 ...
- oracle-TNS是什么?
oracle 的 TNS 是什么的缩写?Transparent Network Substrate(透明网络底层,即无论底层的网络层用什么协议对于上层的应用层都是透明的,也即上层的应用层不用关心底层的 ...
- IT该忍者神龟Instant client required
pply OS : Windows, Mac, Linux Apply Navicat Product : Navicat for Oracle, Navicat Premium Apply Navi ...
- C#访问Java的WebService添加SOAPHeader验证的问题
原文:C#访问Java的WebService添加SOAPHeader验证的问题 这两天做与公司OA的接口,发现C#访问Java的WebService需要提供一个SOAP的头验证信息,但是WebServ ...
- 使用Navicat Premium 和PL\SQL Developer连接Oracl
在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘 最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不 ...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
随机推荐
- Servlet监听器类型
------------------------serlvet对象监听器------------------------------------------- request监听器(ServletRe ...
- web版扫雷小游戏(一)
作为一名程序猿,平时的爱好也不多,说起游戏,我不太喜欢大型的网游,因为太耗时间,偶尔玩玩经典的单机小游戏,比如windows下自带的游戏扫雷(秀一下,高级下最高纪录110s). 现阶段正在致力于web ...
- 我的css reset
@charset "utf-8"; /*reset*/ body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,f ...
- windows 下 pgsql 拓展开启
环境:windowxp + apache2.2+php5.2.13+postgresql8.3 操作步骤:1.修改php.ini,去掉“extension=php_pgsql.dll ”和“exten ...
- 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)
面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...
- NodeJs开发学习目录
1.Nodejs基本概念及Nodejs.npm安装测试[2014-06-06] 2.开发工具简介(主要介绍Sublime Text使用) [2014-06-06] 3.Sublime text插件安装 ...
- STM32学习笔记——SPI串行通讯(向原子哥学习)
一.SPI 简介 SPI是 Serial Peripheral interface 的缩写,就是串行外围设备接口.SPI 接口主要应用在 EEPROM, FLASH,实时时钟,AD 转换器,还有数 ...
- ipython与python的区别
http://mba.shengwushibie.com/itbook/BookChapter.asp?id=8745 http://www.cnblogs.com/yangze/archive/20 ...
- SharePoint 2013 弹窗效果之本地HTML打开方式(二)
上一篇我们主要讲述如何通过showModalDialog方法进行弹出窗体,同时弹出信息定义在新的页面(Application Page),使用 SP.UI.$create_DialogOptions( ...
- Recovery和Charger模式下屏幕旋转180度[转]
如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度 解决方法: 1.在bootable\recovery\minui\Graphics.c 文件找到gr_fli ...