在连接本机oracle数据库的时候提示:ORA-12541:TNS:没有监听程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在连接本机oracle数据库的时候提示:ORA-12541:TNS:没有监听程序相关的知识,希望对你有一定的参考价值。
是在windows XP 系统 安装oracle数据库
网上面有一些说
该服务对应 %Oracle_Hoem\bin TNSLSNR.EXE
若该服务未启动,将会导致Oracle错误- Ora-12514:TNS:无监听程序。
但是我都不知道要怎么开启那个服务bin TNSLSNR.EXE我也没有看到
其中包含 解决监听的问题 的处理办法。
你可以参考参考着解决。
首先需要解决监听的问题
lsnrctl status
D:\>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-3月 -2011 13:3
7:31
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
32-bit Windows Error: 2: No such file or directory
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORCL-10)(PORT=1521)))
TNS-01189: 监听程序无法验证用户
运行
「开始」菜单\程序\Oracle - OraDb10g_home1\配置和移植工具\Net Manager
修改 Oracle Net 配置
在 本地--服务命名--orcl 的地方
把 orcl 的 地址的 主机名, 由 ORCL-10 修改为 ORCL-10A
在 本地--监听程序--LISTENER 的地方
把 LISTENER 的地址2的 主机, 由 ORCL-10 修改为 ORCL-10A
上面是 例子里面, 修改机器名以后的操作
你不一定需要修改,但是你需要确认,信息对不对。
也就是 主机名字 或者 IP地址,以及端口信息什么的。
保存网络配置后退出。
启动 Oracle 的 Listener
D:\>lsnrctl start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-3月 -2011 13:4
5:16
Copyright (c) 1991, 2005, Oracle. All rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORCL-10A)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 19-3月 -2011 13:45:19
正常运行时间 0 天 0 小时 0 分 3 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORCL-10A)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
如果你执行 lsnrctl start 能够正确地执行完毕,那么这个 监听算是正常启动了。
参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/0fe51c50bd37da0a3b293539.html
参考技术A 可以右击我的电脑->管理->服务里面应该有监听程序服务 参考技术B 运行->cmdDOS 窗口输入 c : \lsnrctl start 参考技术C 使用前要设置ssid等东西。
解决Oracle数据库错误ORA-16040和ORA-00312
一、问题现象及排查过程
数据库服务器重启后,应用无法正常启动,提示无法连接数据库。看来,问题可能出在数据库服务器上,那就先检查数据库服务器:
1.登录进数据库服务器后,打开cmd命令提示符,输入命令
sqlplus / as sysdba
连入本机数据库,进入sqlplus程序上下文,然后输入命令
select instance_name,status from v$instance;
执行后,提示数据库在mounted状态,而非在open状态,自然无法正常对外提供服务了。难怪应用无法正常启动!原因在此!
2.使用命令打开数据库
alter database open;
执行后,程序报错,提示数据库错误ORA-16040和ORA-00312,在百度上搜这两个错误的解决方法,基本上都是说数据库的归档日志文件有问题,需要修复才能继续。
二、解决办法
既然发现了问题原因,同时也查到了解决办法,那么接下来就直接进入了解决过程。
1.sqlplus程序上下文中,先确定数据库在mounted状态下,然后使用命令
alter database clear unarchived logfile group 1; alter database clear unarchived logfile group 2; alter database clear unarchived logfile group 3;
清除归档日志。
2.使用命令
alter database open;
打开数据库,此时sqlplus并没有报错,看来是成功了。
3.使用命令
select instance_name,status from v$instance;
查看数据库的状态,发现数据库已经是open状态了。
4.新开一个cmd窗口,进入lsnrctl监听管理上下文,分别使用stop和start命令重启数据库监听程序。
5.最后,重新启动应用,应用未报错,能够正常启动。问题得到解决。
三、总结
信息系统运行过程中难免会出现各种奇奇怪怪的问题,当出现问题的时候,第一个反应应该是查看现象,然后依据现象去推测可能出现的原因。此例直接是应用报错,提示无法连接数据库,那么就循着这个线索去查找数据库的原因。
在数据库服务器上,找到是由于数据库归档日志的原因造成数据库无法正常启动,那么解决问题的关键就变成了解决归档日志错误的问题。依据数据库的报错信息,在网上查找是否已经有成熟的解决方案(方法),此次运气较好,直接找到了很多相似的解决方法,通过实践,发现确实有效,解决了问题。
以上是关于在连接本机oracle数据库的时候提示:ORA-12541:TNS:没有监听程序的主要内容,如果未能解决你的问题,请参考以下文章
Java做数据库连接池的时候加载oracle的JDBC驱动时总是提示找不到驱动类
远程连接windows出现身份验证错误,提示"由于CredSSP加密Oracle修正"解决方案