Oracle 12.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 -------------------------------------------------------------------------------- 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... 看到Insufficient privilege for operation这个字样觉得很纳闷,怎么会权限不足呢,于是尝试用root直接启动监听,依然报错: [root@rhel7.oracle]#lsnrctlstart LSNRCTLforLinux:Version12.2.0.1.0-Productionon15-NOV-201720:22:30 Copyright(c)1991,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,看有没有相关的文档,找到两篇文档: Starting the Listener Fails With: TNS-12557 or TNS-12555: TNS:Permission Denied (文档 ID 343253.1) Listener Fails To Start With IPC Permission Errors (TNS-12546 TNS-12555 TNS-00516 TNS-00525) (文档 ID 434062.1) 对比了文档中列出的问题,跟我的情况也不一相,看到最后发现这样一句话: 4. If you find that there are no adapters linked or they have errors (such as "Permission denied") then issue a "relink all" 于是只有用这种方法来试试了,由于crs使用的是grid home下的监听命令所以对grid home做relink all操作。可是又出现报错: [grid@rhel7bin]$relinkall TheOraclehomeinwhichyouarerunningthisrelinkingtooldoesnot haveproperwritepermissions.Pleaserunthisrelinkscriptasthesame userwhoownstheOraclehomeandensurethattheOraclehomehasthe permissionsfromtheoriginalinstallation. IfthisisaGridInfrastructurehome,pleaserefertothe documentationfortheproperstepstorelinkandapplyoneoffpatches. 意思是说权限不足,使用root执行,又报错说不能用root执行 [root@rhel7bin]#relinkall Therelinkscriptcannotberunasroot. 又查看grid home目录权限 [root@rhel7app]#ls-ldgrid total8 drwxr-x---84rootoinstall4096Jul1820:26grid 原来owner是root,怪不得第一次执行不成功,修改owner(应该直接chmod也可以,这里没有做测试),重新执行relink all [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,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 至次问题解决。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |