在自己的虚拟机的做实验,突然发现使用PL/SQL Developer无法连接到数据库,报错ORA-12514,说是监听没有启动。
先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Oracle 12.2.0.1,为了测试12.2的ASM特性安装了GI。平时监听程序默认是开启启动的。但是今天不知道为什么没有启动。使用crsctl查看资源状态:发现监听的状态确实是OFFLINE状态
尝试手动启动监听,依然报错:
根据提示查看trc文件,看到如下报错:
看到Insufficient privilege for operation这个字样觉得很纳闷,怎么会权限不足呢,于是尝试用root直接启动监听,依然报错:
于是各种百度,下面把百度到内容列出来,可能会对看此文的同学有用,但是对我这种情况没有用:
主要是说 /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操作。可是又出现报错:
意思是说权限不足,使用root执行,又报错说不能用root执行
又查看grid home目录权限
原来owner是root,怪不得第一次执行不成功,修改owner(应该直接chmod也可以,这里没有做测试),重新执行relink all
成功后再次启动监听,启动成功。
至次问题解决。
总结
以上所述是小编给大家介绍的Oracle 12.2监听无法启动解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!