加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 12.2监听无法启动解决一例

发布时间:2020-12-12 14:14:47 所属栏目:百科 来源:网络整理
导读:在自己的虚拟机的做实验,突然发现使用PL/SQL Developer无法连接到数据库,报错ORA-12514,说是监听没有启动。 先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Oracle 12.2.0.1,为了测试12.2的ASM特性安装了GI。平时监听程序默认是开启启动的。但是今天不知

在自己的虚拟机的做实验,突然发现使用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"
Reference:
Doc ID 1467060.1

于是只有用这种方法来试试了,由于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

至次问题解决。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读