我正在尝试启动我的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:没有这样的文件或目录
之前它工作正常,但在查找我的系统名称后,它停止了工作。
答案 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的演练可以很好地解释权限错误发生的原因以及解决方法。