Oracle 无监听程序解决办法(HZQ)
- 格式:doc
- 大小:110.50 KB
- 文档页数:2
Oracle12.2监听⽆法启动解决⽅法在⾃⼰的虚拟机的做实验,突然发现使⽤PL/SQL Developer⽆法连接到数据库,报错ORA-12514,说是监听没有启动。
先介绍虚拟机⼀下环境:redhat7.2+GI 12.2.0.1+Oracle 12.2.0.1,为了测试12.2的ASM特性安装了GI。
平时监听程序默认是开启启动的。
但是今天不知道为什么没有启动。
使⽤crsctl查看资源状态:发现监听的状态确实是OFFLINE状态[root@rhel7 .oracle]# crsstat--------------------------------------------------------------------------------Name Target State Server State details--------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.DATA.dgONLINE ONLINE rhel7 STABLEora.LISTENER.lsnrONLINE OFFLINE rhel7 STABLEora.asmONLINE ONLINE rhel7 Started,STABLEora.onsOFFLINE OFFLINE rhel7 STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.cssd1 ONLINE ONLINE rhel7 STABLEora.diskmon1 OFFLINE OFFLINE STABLEora.driver.afd1 ONLINE ONLINE rhel7 STABLEora.evmd1 ONLINE ONLINE rhel7 STABLEora.ora12c.db1 ONLINE ONLINE rhel7 Open,HOME=/u01/app/oracle/product/12.2/db_home1,STABLE--------------------------------------------------------------------------------尝试⼿动启动监听,依然报错:[grid@rhel7 ~]$ srvctl start listenerPRCR-1079 : Failed to start resource ora.LISTENER.lsnrCRS-5016: Process "/u01/app/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "(:CLSN00010:)" in "/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc" CRS-5016: Process "/u01/app/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "(:CLSN00010:)" in "/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc" CRS-2674: Start of 'ora.LISTENER.lsnr' on 'rhel7' failed根据提⽰查看trc⽂件,看到如下报错:LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 15-NOV-2017 20:03:28Copyright (c) 1991, 2016, Oracle. All rights reserved.Starting /u01/app/grid/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 12.2.0.1.0 - ProductionSystem parameter file is /u01/app/grid/network/admin/listener.oraLog messages written to /u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xmlListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel7)(PORT=1521)))Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12555: TNS:permission deniedTNS-12560: TNS:protocol adapter errorTNS-00525: Insufficient privilege for operationLinux Error: 1: Operation not permittedListener failed to start. See the error message(s) above...看到Insufficient privilege for operation这个字样觉得很纳闷,怎么会权限不⾜呢,于是尝试⽤root直接启动监听,依然报错:[root@rhel7 .oracle]# lsnrctl startLSNRCTL for Linux: Version 12.2.0.1.0 - Production on 15-NOV-2017 20:22:30Copyright (c) 1991, 2016, Oracle. All rights reserved.Starting /u01/app/grid/bin/tnslsnr: please wait...TNS-12546: TNS:permission deniedTNS-12560: TNS:protocol adapter errorTNS-00516: Permission deniedLinux Error: 13: Permission denied于是各种百度,下⾯把百度到内容列出来,可能会对看此⽂的同学有⽤,但是对我这种情况没有⽤:主要是说 /var/tmp/.oracle、/tmp/.oracle 这两个⽬录的权限访问问题。
oracle:其他机器访问本机提示无监听程序的原因和解决方法--kernelboy 一、原因:在oracle安装路径中,D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 的文件夹中存在listener.ora和tnsnames.ora两个文件,如图其内容如下:其中本地监听和network监听均配置为localhost,所以导致在连接数据库是,本机可以连接,而远程机器则提醒:无监听程序。
二、解决方法:只要把两个文件中的所有localhost字样替换成本机的机器名或者是本机的ip地址即可。
1)找到本机机器名:右键桌面“我的电脑”->“属性”->“计算机名”:本机机器名为:“MICROSOF-7CC821”,不带后面的“.”号。
2)替换localhost3)重启oracle服务:打开计算机服务,把划红线的两个服务重新启动。
使用“sqlplus用户名/密码@ip:1521/实例名”即可登录到远程oracle。
三、总结:由于本地配置监听文件listener.ora和tnsnames.ora中为localhost,当远程访问时,远程机器读到的是localhost的ip,然后本机会把localhost的ip给远程机器返回(我怀疑是127.0.0.1,有待测试),所以远程计算机无法连接到本机的oracle。
四、提出问题:我想,如果两台计算机的实例名都一样(首先两台机器中oracle的其他配置也是一样的),(我设自己的机器为本机)当我访问远程机器时,远程计算机给我返回localhost的字样或者是(127.0.0.1),我突然就连接上oracle了,然而连接上的oracle不是远程计算机的oracle,而是我本机的oracle?(有待测试)谁测试过,可是分享一下。
mail:kernelboy@。
Oracle监听启动时由“监听程序不⽀持服务”引出的⼀系列问题--
解决⽅案
由于甲⽅服务器短缺,GB领导叫在⼀个数据库上建三个oracle实例,由于之前没尝试过这样做,故⽽在本地做了⼀下测试,新建完三个实例的时候重启监听程序,就报了“监听程序不⽀持服务”的错误(只想X狗)。
然后⽤plsql连接oracle服务端是连不上的,具体错误五花⼋门。
然后⽹上⼀顿查找,最终锁定是oracle的listerner.ora配置的不对(⾃⼰意淫是由于配置了多个实例,导致此⽂件在启动的时候不知道找哪⼀个实例了)
于是乎在listerner.ora最上边加上⼀⼩段配置,指定⼀下实例就⾏了。
然后重启⼀下监听。
⼀切正常,plsql也可以愉快的连接了。
希望有问题⼤家⼀起交流,⼀起进步,完结撒花~。
OracleTNS⽆监听程序
这个问题上次给单位服务器重启的时候也发现了,今天再次⼜出现了同样的问题。
上次没有记录,这次记录⼀下吧。
以免⾃⼰后⾯⼜忘记了。
打开的oracle读取的时候,会报错没有监听程序。
⼤部分帖⼦都是说去重新配置监听程序。
上次我查找这个问题也查找了半天,后来,才偶然看到⼀个帖⼦说,应该是⽇志⽂件太⼤了。
真是柳暗花明⼜⼀村啊。
于是赶紧查找路径,在diag/tnslsnr/⽬录下,有个listener.log⽇志。
我⼀看,居然4个GB了。
于是通过windows 服务,停⽌oracle监听服务器OracleOraDb11g_home1TNSListener 停⽌后,将listener.log改名备份。
再启动监听服务就可以了。
世界终于安静了。
如何解决oracle中监听无法启动找不到系统路径!2007-09-15 11:33今天上午,在登入oracle时空然我提示找不到监听.在启动监听服务时出现无法启动OracleOraHome92TNSListener服务错误3系统找不到指定的路径!从客户端连接到服务器,出现了这个错误,ora12541-TNS 没有监听器于是,在服务器中启动OracleOraHome92TNSListener服务,显示“在本地计算机无法启动OracleOraHome92TNSListener服务,错误3,系统找不到指定路径”。
原因:Windows优化大师将Oracle的监听服务给优化了还有一种造成本地oracle无法启动的原因是安装时的主机名与当前主机名不同,也就是说安装完oracle后更改了主机名造成。
解决办法1;打开注册表(regedit)找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentContorlSet/Services/OracleOraHome92T NSListener找到后单击,在右侧里面单击右键,新建一个(可扩充字符串值)起名字为 ImagePath 在数值数据中写入C:\oracle\ora92\BIN\TNSLSNR 后退出注册表,重新启动即可。
(其中C:\oracle\ora92\BIN\TNSLSNR 是你oracle安装目录中的一个.exe文件:方法2:进入注册表中修改ImagePath在运行处执行REGEDIT进入注册表到HKEY_LOCAL_MACHINESYSTEM CurrentControlSet ServicesOracleOraHome92TNSListener发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:fOracleOra92BINTNSLSNR退出注册表。
启动监听器即可!进入注册表中修改ImagePath在运行处执行REGEDIT进入注册表到HKEY_LOCAL_MACHINESYSTEM CurrentControlSet ServicesOracleOraHome92TNSListener发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:fOracleOra92BINTNSLSNR退出注册表。
在用PL/SQL Developer连接数据库时出现“ORA-12541:TNS:无监听程序”错误。
1、检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月-2008 10:25:26Copyright (c) 1991, 2005, Oracle. All rights reserved.系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息写入D:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息跟踪级别当前为0以 pid=1704 开始监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc))) 监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))TNS-12545: 因目标主机或对象不存在, 连接失败TNS-12560: TNS: 协议适配器错误TNS-00515: 因目标主机或对象不存在, 连接失败32-bit Windows Error: 49: Unknown error不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))2、查看Oracle的listener是否启动C:\Documents and Settings\mengzhaoliang>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月-2008 10:50:44Copyright (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=0.5.0.5)(PORT=1521)))TNS-12535: TNS: 操作超时TNS-12560: TNS: 协议适配器错误TNS-00505: 操作超时32-bit Windows Error: 60: Unknown error原来没有启动listener,用“lsnrctl start”命令也不能启动。
Oracle数据库监听配置与报错解决方法作者:范美卉张俊萌来源:《电脑知识与技术》2023年第24期关键词:监听日志;Oracle数据库;监听器中图分类号:TP311 文献标识码:A文章编号:1009-3044(2023)24-0073-030 引言想要使用Oracle数据库,首先需要用户与数据库建立连接,而怎么在两者之间建立连接,Oracle使用了一个叫网络服务的概念,从而客户端或者中间层的应用服务器与数据库服务器能建立连接,并能在两者之间传递数据。
在客户端,网络服务作为后台运行的进程,在数据库服务器端,网络服务则通过一个叫“监听器”的组件接收来自客户端的连接请求。
监听器(LIS⁃TENER)是位于服务器端的、独立运行的一个后台进程,运行在服务器端,但独立于数据库服务器单独运行,在数据库没有启动的时候,监听器也能独立运行。
1 Oracle 数据库监听配置Oracle监听负责监听客户端传入的连接请求,同时也负责调整服务器的连接负荷。
客户端试图连接数据库服务器时,监听器将接收到客户端的请求并将其传递给服务器进行处理。
一旦客户端与服务器建立连接,它们之后将直接进行通信,而不再需要监听器的介入,监听器将保持空闲状态。
dbca建库后一般会有默认配置好的监听,默认服务端口是1521,通常一个库一个监听就足够,但如果需要处理大量并发请求数,就可能需要配置多个监听,非默认监听的端口号设置成大于1024,不同监听之间服务名和端口号不能一样[1]。
配置监听器有两种方法。
1.1 通过图形界面工具Net Manager如图1所示,选中图中的Oracle Net配置下的本地树形目录中的监听程序项,再点击左侧绿色的“+”按钮添加监听程序,点击监听程序目录,新加的监听器名称默认为LISTENER。
选中该名称,窗口右侧栏的下拉选项中含有四个选项:一般参数、监听位置、数据库服务、其他服务,选中“监听位置”,点击添加地址按钮。
在出现的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口[2]。
ORACLE无监听程序解决办法
1ORA-12541: TNS: 无监听程序 (1)
2监听程序无法启动 (2)
1ORA-12541: TNS: 无监听程序
使用NetManager配置服务别名,或用PL/SQL Developer登录数据库时,系统报:ORA-12541: TNS: 无监听程序。
问题产生的原因可能是:
数据库的监听器没有启动。
解决办法是启动监听器即可。
更改了数据库服务器的IP或计算机名。
这个问题的解决办法有两种:
(1)使用sqlplus命令时,不使用“@指定服务”,默认会登录到本机,这时不
需要监听器启动。
例如使用scott用户登录:sqlplus scott/tiger
(2)修改监听器的配置文件“listener.ora”,然后重启监听器服务。
使用Windows查找功能查找到“listener.ora”文件,如果查找出多个相同文件名的文件,则修改“ADMIN”目录下的这个文件。
修改红色的部分,修改成自己机器的主机名。
然后重启计算机。
2监听程序无法启动
如果启动数据库监听器时启动不了,解决办法和上面一样,修改监听器的配置文件“listener.ora”,然后重启计算机。
参见上面的解决方法。