Oracle 12.2监听无法启动解决方法
在自己的虚拟机的做实验,突然发现使用PL/SQLDeveloper无法连接到数据库,报错ORA-12514,说是监听没有启动。
先介绍虚拟机一下环境:redhat7.2+GI12.2.0.1+Oracle12.2.0.1,为了测试12.2的ASM特性安装了GI。平时监听程序默认是开启启动的。但是今天不知道为什么没有启动。使用crsctl查看资源状态:发现监听的状态确实是OFFLINE状态
[root@rhel7.oracle]#crsstat -------------------------------------------------------------------------------- NameTargetStateServerStatedetails -------------------------------------------------------------------------------- LocalResources -------------------------------------------------------------------------------- ora.DATA.dg ONLINEONLINErhel7STABLE ora.LISTENER.lsnr ONLINEOFFLINErhel7STABLE ora.asm ONLINEONLINErhel7Started,STABLE ora.ons OFFLINEOFFLINErhel7STABLE -------------------------------------------------------------------------------- ClusterResources -------------------------------------------------------------------------------- ora.cssd 1ONLINEONLINErhel7STABLE ora.diskmon 1OFFLINEOFFLINESTABLE ora.driver.afd 1ONLINEONLINErhel7STABLE ora.evmd 1ONLINEONLINErhel7STABLE ora.ora12c.db 1ONLINEONLINErhel7Open,HOME=/u01/app/o racle/product/12.2/d b_home1,STABLE --------------------------------------------------------------------------------
尝试手动启动监听,依然报错:
[grid@rhel7~]$srvctlstartlistener PRCR-1079:Failedtostartresourceora.LISTENER.lsnr CRS-5016:Process"/u01/app/grid/bin/lsnrctl"spawnedbyagent"ORAAGENT"foraction"start"failed:detailsat"(:CLSN00010:)"in"/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc" CRS-5016:Process"/u01/app/grid/bin/lsnrctl"spawnedbyagent"ORAAGENT"foraction"start"failed:detailsat"(:CLSN00010:)"in"/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc" CRS-2674:Startof'ora.LISTENER.lsnr'on'rhel7'failed
根据提示查看trc文件,看到如下报错:
LSNRCTLforLinux:Version12.2.0.1.0-Productionon15-NOV-201720:03:28 Copyright(c)1991,2016,Oracle.Allrightsreserved. Starting/u01/app/grid/bin/tnslsnr:pleasewait... TNSLSNRforLinux:Version12.2.0.1.0-Production Systemparameterfileis/u01/app/grid/network/admin/listener.ora Logmessageswrittento/u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xml Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel7)(PORT=1521))) Errorlisteningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12555:TNS:permissiondenied TNS-12560:TNS:protocoladaptererror TNS-00525:Insufficientprivilegeforoperation LinuxError:1:Operationnotpermitted Listenerfailedtostart.Seetheerrormessage(s)above...
看到Insufficientprivilegeforoperation这个字样觉得很纳闷,怎么会权限不足呢,于是尝试用root直接启动监听,依然报错:
[root@rhel7.oracle]#lsnrctlstart LSNRCTLforLinux:Version12.2.0.1.0-Productionon15-NOV-201720:22:30 Copyright(c)1991,2016,Oracle.Allrightsreserved. Starting/u01/app/grid/bin/tnslsnr:pleasewait... TNS-12546:TNS:permissiondenied TNS-12560:TNS:protocoladaptererror TNS-00516:Permissiondenied LinuxError:13:Permissiondenied
于是各种百度,下面把百度到内容列出来,可能会对看此文的同学有用,但是对我这种情况没有用:
主要是说/var/tmp/.oracle、/tmp/.oracle这两个目录的权限访问问题。进入一看,我的/var/tmp/.oracle权限没问题,而/tmp/.oracle压根就没有这个文件。
于是直接查MOS,看有没有相关的文档,找到两篇文档:
StartingtheListenerFailsWith:TNS-12557orTNS-12555:TNS:PermissionDenied(文档ID343253.1)
ListenerFailsToStartWithIPCPermissionErrors(TNS-12546TNS-12555TNS-00516TNS-00525)(文档ID434062.1)
对比了文档中列出的问题,跟我的情况也不一相,看到最后发现这样一句话:
4.Ifyoufindthattherearenoadapterslinkedortheyhaveerrors(suchas"Permissiondenied")thenissuea"relinkall"
Reference:
DocID1467060.1
于是只有用这种方法来试试了,由于crs使用的是gridhome下的监听命令所以对gridhome做relinkall操作。可是又出现报错:
[grid@rhel7bin]$relinkall TheOraclehomeinwhichyouarerunningthisrelinkingtooldoesnot haveproperwritepermissions.Pleaserunthisrelinkscriptasthesame userwhoownstheOraclehomeandensurethattheOraclehomehasthe permissionsfromtheoriginalinstallation. IfthisisaGridInfrastructurehome,pleaserefertothe documentationfortheproperstepstorelinkandapplyoneoffpatches.
意思是说权限不足,使用root执行,又报错说不能用root执行
[root@rhel7bin]#relinkall Therelinkscriptcannotberunasroot.
又查看gridhome目录权限
[root@rhel7app]#ls-ldgrid total8 drwxr-x---84rootoinstall4096Jul1820:26grid
原来owner是root,怪不得第一次执行不成功,修改owner(应该直接chmod也可以,这里没有做测试),重新执行relinkall
[root@rhel7app]#chowngridgrid [grid@rhel7~]$relinkall writingrelinklogto:/u01/app/grid/install/relink.log
成功后再次启动监听,启动成功。
[grid@rhel7~]$lsnrctlstart LSNRCTLforLinux:Version12.2.0.1.0-Productionon15-NOV-201720:50:59 Copyright(c)1991,2016,Oracle.Allrightsreserved. Starting/u01/app/grid/bin/tnslsnr:pleasewait... TNSLSNRforLinux:Version12.2.0.1.0-Production Systemparameterfileis/u01/app/grid/network/admin/listener.ora Logmessageswrittento/u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xml Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel7)(PORT=1521))) Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel7)(PORT=1521))) STATUSoftheLISTENER ------------------------ AliasLISTENER VersionTNSLSNRforLinux:Version12.2.0.1.0-Production StartDate15-NOV-201720:51:00 Uptime0days0hr.0min.0sec TraceLeveloff SecurityON:LocalOSAuthentication SNMPOFF ListenerParameterFile/u01/app/grid/network/admin/listener.ora ListenerLogFile/u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xml ListeningEndpointsSummary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel7)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Thelistenersupportsnoservices Thecommandcompletedsuccessfully
至次问题解决。
总结
以上所述是小编给大家介绍的Oracle12.2监听无法启动解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!