0

我想以 root 用户身份启动 Oracle Listner。我能够以 oracle 用户身份启动侦听器。但它不是以root用户身份启动的。我能够以 root 用户身份停止并检查状态。

当我以 root 身份启动侦听器时,它会给出以下消息:-

# lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 08-MAY-2012 15:08:11

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

Starting /opt/oracle/102/bin/tnslsnr: please wait...

/opt/oracle/102/bin/tnslsnr: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory
TNS-12547: TNS:lost contact
 TNS-12560: TNS:protocol adapter error
  TNS-00517: Lost contact
   Linux Error: 32: Broken pipe

请帮助我以 root 用户身份启动监听器。

4

1 回答 1

2

您不应该以 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 处理了这一点。

于 2012-05-09T18:55:27.080 回答