您不应该以 root 用户身份运行 Oracle,这是一个安全风险。没有一个理由以 root 用户身份运行 rdbms 和/或侦听器,除非您完全搞砸了安装,甚至不允许以 root 用户身份运行。
如果您确实需要以 root 用户身份运行侦听器,请确保您的环境变量正确。在你的情况下:
# export ORACLE_HOME=/opt/oracle/102
# export PATH=$PATH:$ORACLE_HOME/bin
# cd $ORACLE_HOME/bin
# chmod u+s lsnrctl
# lsnrctl start
适用于 Linux 的 LSNRCTL:版本 10.2.0.5.0 - 生产于 2012 年 5 月 9 日 20:51:07
版权所有 (c) 1991、2010,甲骨文。版权所有。
正在启动 /data/oracle/base/product/se_10205_s/bin/tnslsnr:请稍候...
适用于 Linux 的 TNSLSNR:版本 10.2.0.5.0 - 生产系统参数文件是 /data/oracle/base/admin/network/listener.ora 写入 /data/oracle/base/product/se_10205_s/network/log/listener 的日志消息.log 监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) LISTENER 的状态 ------------------------ 别名 LISTENER适用于 Linux 的 TNSLSNR 版本:版本 10.2.0.5.0 - 生产开始日期
2012 年 5 月 9 日 20:51:09 正常运行时间 0 天 0 小时。0分钟。0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/oracle/base/admin/network/listener.ora Listener Log File /data/oracle/base/product/se_10205_s/network/log/listener. log Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) 监听器不支持服务 命令成功完成
# lsnrctl stop
适用于 Linux 的 LSNRCTL:版本 10.2.0.5.0 - 生产于 2012 年 5 月 9 日 20:52:16
版权所有 (c) 1991、2010,甲骨文。版权所有。
连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-01190: 用户无权执行请求的侦听器命令
不要这样做;如果你这样做,你就犯了一个错误。选择属于 dba 组但不是 root 的任何其他用户。
顺便说一句:在这个小演示之后,我不得不解决一个小问题:
以 pid=5215 开始 侦听错误:(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-12555: TNS:permission denied TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege用于操作 Linux 错误:1:不允许操作
问题是 - 很明显 - /var/tmp/.oracle/sLISTENER 归 root 所有。对正确用户的一点 chown 处理了这一点。