Oracle监听无法启动解决办法图解
Oracle12.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无监听错误

例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
启动已经成功,
5.再tnsnames.ora上添加上
ORCL_127.0.0.1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 11:1
1:09
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
32-bit Windows Error: 49: Unknown error
不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
2、查看Oracle的listener是否启动
oracle监听服务无法启动问题解决

办法一:修改注册表
解决办法就是修改注册表,ImagePath
开始-->运行REGEDIT -->进入注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleXXXTNSListener
5.再启动Listener1监听服务,可以连接到数据库。
本文来自CSDN博客,转载请标明出处:/hittata/archive/2009/04/10/4061562.aspx
2.进入“命令提示符”,运行“监听控制程序——LSNRCTL”,再运行“start listener1”,首次启动Listener1监听程序,为Listener1在操作系统服务里生成相关服务项。为了后面的修改操作能够生效,再运行“stop listener1”停止Listener1。
3.将服务中原Listener服务的“启动类型”改为“已禁用”,将已生成的Listener1服务的“启动类型”改为“自动”。
4.用“记事本”打开监听服务配置文件“ORACLE_HOME \ network \ admin \ listener.ora”,将“LISTENER =”、“SID_LIST_LISTENER =”分别改为“LISTENER1 =”、“SID_LIST_LISTENER1 =”,并删除当前的“LISTENER1 =”、“SID_LIST_LISTENER1 =”项。该操作的作用为:不用费力为Listener1监听服务再配置常规参数、数据库监听等,直接采用原Listener服务的配置。
发现ImagePath关键值没有了,新建一个名为ImagePath的可扩充字符串值,编辑字符串的数值数据为:Oracle安装路径\BIN\TNSLSNR
oracle监听器启动出错:本地计算机上的oracleoradb11g home1tnsl

Oracle监听器启动出错:本地计算机上的OracleOraDb11ghome1TNSL...分类:Oracle一、错误描述登陆PL/SQLDeveloper登陆本地数据库时先报没有监听程序,查看服务发现Oracle监听服务没有启动。
右击启动监听程序,报错:错误描述:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了。
一些服务自动停止,如果它们没有什么可做的,例如"性能日志和警报"服务。
二、原因分析你安装oracle的时候是连网的,那么listener.ora文件里的HOST=网络给你分配的IP地址,而在你断网的时候就会出现这样的情况。
三、解决办法方法一:监听器通过listener.ora或者NetManager修改监听器配置。
将原来本地字符串127.0.0.1或者localhost改为主机名。
首先查阅你的**product11.2.0dbhome_1NETWORKADMIN目录下的"tnsnames.ora"和"listener.ora"这两个文件,然后看看里面的"HOST"信息,看看是不是你当前的ip地址,如果不是尝试着把这个2个文件改成你的ip地址,或直接就改成127.0.0.1(或计算机名字):注意:此时的监听配置文件"listener.ora"里面的HOST=的内容(IP或者主机名)必须和,服务配置文件"tnsnames.ora"里面,你想要链接的服务的HOST=的内容完全一致。
意思就是说要么都是IP地址,要么都是主机名。
如果有多个服务(NetManager中配置的网络服务)那么查看"tnsnames.ora"文件中与监听HOST内容一致的PL/SQL才可正常登录进去,否则无监听程序。
如:上面这里是"listener.ora"里面的HOST,我的是主机名。
oracle 监听无法启动

(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= test)(Port= 1521))
(CONNECT_DATA = (SID = oracle7))
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = OFF
2、 编辑$ORACLE_HOME/network/admin下的tnsnames.ora文件为:
(ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY))
(ADDRESS= (PROTOCOL= TCP)(Host= test)(Port= 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= test.)
(ORACLE_HOME= /usr/oracle/app/oracle/product/7.3.4)
(SID_NAME = oracle7)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IBMThinkPad)(PORT = 1521))
)
)
)
当看到这一行HOST=IBMThinkPad的时候,问题解决了。原来是由于几天装好Oracle后,又改了Windows的计算机名,而这个配置文件中记录的监听主机名还是原来的名称,这也就怪不得,OracleOraHome90TNSListener服务无法启动了,马上修改为现在的计算机名,再次启动OracleOraHome90TNSListener服务成功,PL/SQL Developer连接Oracle数据库成功,不能登陆故障排除。
如何解决oracle中监听无法启动找不到系统路径

如何解决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退出注册表。
oracle数据库ORA-12541TNS无监听程序-错误解决方法

在用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数据库监听配置与报错解决方法

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]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无监听程序的错误,如下图: ORA-12541:TNS:无监听程序的错误
ORA-12541:TNS:
如何启动oracle的监听。
1.打开Net Configuration Assistant
2.选择监听程序配置,下一步
3.选择重新配置,下一步
4.选择监听程序,默认,下一步
注:如果你的监听已启动,则出现提示框,选择是
5.选择协议,使用默认的TCP协议,下一步
6.选择端口号,使用标准端口号1521,下一步
7.不配置另一个监听程序,选择否,下一步
8.监听程序配置完成,下一步
到此基本就可以运行了,你重新开启oracle的服务,测试看
能否连上plsql
重配服务名,测试连接
1.选择Net服务器配置,下一步
2.选择重新配置,下一步
3.选择数据库名,下一步
4.填写服务名,也就是你创建数据库时的全数据库名,下一步
5.选择TCP协议,下一步
6.填写主机名(可填写你的IP地址,也可填写你的主机名),使用标准端口号1521,下一步
7.进行测试,下一步
8.选择更改登录
9.填写用户名和口令,确定
10.测试连接成功,下一步
11.网络服务名,默认(和之前的数据库名一样),下一步
12.不配置另一个Net服务名,选择否,下一步
服务名配置完毕,下一步,完成
启动PL/SQLDeveloper,输入用户名和口令,登录成功
小结:很多错误都有很明显的提示,要根据提示去找相关的解决办法。