在 ubuntu 上启动 oracle 10g,监听器启动失败

在 ubuntu 上启动 oracle 10g,监听器启动失败

我在 ubuntu 10.x 上安装了 oracle 10g,这是我第一次安装。安装后,我尝试使用以下命令启动它。

tsegay@server-name:/u01/app/oracle/product/10.2.0/db_1/bin$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 29-DEC-2010 22:46:51

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> start
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
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...

我的 listener.ora 文件如下所示:

# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = acct-vmserver)(PORT = 1521))
    )
  )

我猜测问题出在权限问题,但我不知道在哪里需要更改权限。

任何帮助都将不胜感激...

编辑##

当我使用 sudo 命令运行时,我得到了这个

tsegay@server-name:/u01/app/oracle/product/10.2.0/db_1$ sudo ./bin/lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 30-DEC-2010 01:01:03

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

Starting ./bin/tnslsnr: please wait...

./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

答案1

必须使用安装 Oracle 时所用的同一帐户来启动侦听器。通常,此帐户名为“oracle”。

使用 sudo 时命令行应该是:

sudo -H -u oracle /u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start

(顺便说一句,我认为 Oracle 不支持使用 Ubuntu 运行 Oracle 数据库)

答案2

您的 LD_LIBRARY_PATH 是否设置为包含 Oracle 库目录?

安装完成后您是否运行了 root.sh 脚本?

答案3

经过痛苦的安装过程Oracle 数据库 11.2.0.1,Linux x86-64,在Lubuntu 11.10 x86_64,涉及许多 makefile 的修复,一些注释使监听器正常工作:

  • 始终使用 Oracle DB 安装所有者,例如:su - oracle
  • export ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1"
  • export LD_LIBRARY_PATH="${ORACLE_HOME}/lib"
  • export PATH="${ORACLE_HOME}/bin:${PATH}"
  • dbstart要启动数据库,监听器应该自动启动
  • lsnrctl status验证它确实在听

最好永久保留这 3 个出口oracle.bashrc文件。

如果监听器状态仍然不正常,请确保oracle用户是网络允许组的成员,对于 Lubuntu 来说,就是该组netdev。您可以在系统工具 > 用户和组 > oracle > 高级设置 > 用户权限 > 连接到无线和以太网网络. 或者直接发布sudo usermod -aG netdev oracle在您的案例中使用管理员帐户tsegay。请记住启动一个新的 shell(或注销 + 登录)oracle用户查看更改。

附言:我的listener.ora就好像:

LISTENER =
    (ADDRESS_LIST =
        (ADDRESS =
            (PROTOCOL = tcp)
            (HOST = localhost)
            (PORT = 1521)
        )
    )

SID_LIST_LISTENER =
    (SID_LIST =
        (SID_DESC =
            (GLOBAL_DBNAME = PLSExtProc)
            (SID_NAME = PLSExtProc)
            (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
        )
    )

答案4

您可以尝试一下sudo lsnrctl,假设您有足够的权利。

相关内容