Oracle Listener无法启动

时间:2017-01-31 15:05:00

标签: oracle oracle11g

我正在尝试启动我的oracle服务,但它没有启动。它告诉我:

以下命令我正在执行:sudo ./lsnrctl start

适用于Linux的LSNRCTL:版本11.2.0.2.0 - 2017年1月31日生产20:31:26

版权所有(c)1991,2011,Oracle。保留所有权利。

未找到消息1070; product = network,facility = TNSTNS-12545没有消息文件:找不到消息12545; product = network,facility = TNS没有消息文件  TNS-12560:未找到消息12560; product = network,facility = TNS没有消息文件   TNS-00515:未找到消息515; product = network,facility = TNS没有消息文件    Linux错误:2:没有这样的文件或目录

之前它工作正常,但在查找我的系统名称后,它停止了工作。

3 个答案:

答案 0 :(得分:1)

尝试像

一样运行
button1(null, null)

请根据您的环境更改ORACLE_HOME,your_db_name值

答案 1 :(得分:1)

如果要继续以root身份运行侦听器,可以使用以下命令查看错误消息:

sudo ORACLE_HOME=$ORACLE_HOME $ORACLE_HOME/bin/lsnrctl start

...使用您的起始(非根)环境$ORACLE_HOME;否则你可以明确地设置和使用该值:

sudo ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe /u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start

从解决消息错误的聊天中向您展示更有用的内容:

Copyright (c) 1991, 2011, Oracle. All rights reserved. 

Starting /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr: please wait... 

TNSLSNR for Linux: Version 11.2.0.2.0 - Production 
System parameter file is /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora 
Log messages written to /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/localhost/listener/alert/log.xml 
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) 
TNS-12555: TNS:permission denied 
TNS-12560: TNS:protocol adapter error 
TNS-00525: Insufficient privilege for operation 
Linux Error: 1: Operation not permitted 

Listener failed to start. See the error message(s) above...

您的/ etc / hosts文件将您的计算机名称sam.samson链接到localhost / 127.0.0.1,以及您的监听器包含的聊天内容:

LISTENER = 
(DESCRIPTION_LIST = 
(DESCRIPTION = 
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
(ADDRESS = (PROTOCOL = TCP)(HOST = sam.samson)(PORT = 1521)) 
) 
) 

由于错误消息引用了EXTPROC_FOR_XE,并且删除该行显然允许TCP端口启动,因此Oracle似乎已将其链接到旧主机名(现在无法正确解析),或者沿着这些行。您可以将密钥名称更改为新名称,但完全删除它可能对您有用。

以root身份运行任何Oracle进程都没有必要或者确实是个好主意。拥有专用的oracle帐户和dba群组是正常的。但是你将拥有很多日志文件等,这些日志文件现在归root所有,所以为了更改为在不同的帐户下运行,你需要关闭所有内容,删除或更改所有相关文件的所有权,然后在正确的帐户下重新启动。

您的数据库可能继续尝试注册旧名称。如果lsnrctl services未显示XE服务,则在启动数据库或发出alter database register后,这可能是下一个问题。如果您通过SQL * Plus本地登录(通过设置ORACLE_SID,而不是使用TNS别名),您可以检查show parameters listener显示的内容,如果LOCAL_LISTENER指的是旧计算机名称,请将其更改为匹配新名字。它也可能为听众使用TNS别名,因此请确保您的tnsnames.ora也是最新的。或者它现在可能正常工作。

答案 2 :(得分:-1)

https://youtu.be/zxyXlYgrzJc的演练可以很好地解释权限错误发生的原因以及解决方法。