linux - 无法以 root 用户身份启动 Oracle 监听器

标签 linux oracle oracle10g

我想以 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 用户身份启动监听器。

最佳答案

您不应以 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 生产

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

Starting /data/oracle/base/product/se_10205_s/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.5.0 - Production System parameter file is /data/oracle/base/admin/network/listener.ora Log messages written to /data/oracle/base/product/se_10205_s/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.5.0 - Production Start Date
09-MAY-2012 20:51:09 Uptime 0 days 0 hr. 0 min. 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))) The listener supports no services The command completed successfully

# lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 09-MAY-2012 20:52:16

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-01190: The user is not authorized to execute the requested listener command

不要这样做;如果你这样做,你就错了。选择属于 dba 组但不是 root 的任何其他用户。

顺便说一句:在这个小演示之后我不得不解决一个小问题:

Started with pid=5215 Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) TNS-12555: TNS:permission denied TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation Linux Error: 1: Operation not permitted

问题很明显 -/var/tmp/.oracle/sLISTENER 归 root 所有。对正确的用户稍加点赞就解决了这个问题。

关于linux - 无法以 root 用户身份启动 Oracle 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10496026/

相关文章:

java - 将 csv 文件上传到服务器,然后从中读取

oracle10g - 01031. 00000 - "insufficient privileges"同时授予新用户系统权限

linux - 通过命令行在 Mercurial merge 中使用 diff3

linux - 将列转置为格式化输出 :

linux - 如何在 Ubuntu 上停止 Node.js 并在不停止的情况下注销

oracle - 使用to_char函数解析为字符串时,如何从Oracle中的日和月值中删除前导零?

java - 使用mybatis注释在IN子句中传递多个值

c - 使用 C 暂停执行二进制文件?

sql - oracle sql - 查询以查找特殊字符

sql - 查询帮助查找丢失的号码