我在 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
,假设您有足够的权利。