以我的普通用户身份启动 sqlplus 时,我正在努力解决以下错误 - 说“scott”。
$ sqlplus
SP2-1503: Unable to initialize Oracle call interface
SP2-0152: ORACLE may not be functioning properly
环境是:
- 甲骨文 11.2.0.2
- OpenSuse Linux 11.1(64 位)
其他细节:
- Oracle 在 localhost 上安装并运行
- 没有 tnsnames 问题,因为可以以 oracle 管理员用户身份运行 sqlplus
- 数据库启动并监听器启动(11.2.0.2 安装)。
- 数据库管理员组 (/etc/group) 中的用户 scott
- 用户 scott 引用了正确的 11.2.0.2 安装
这是最奇怪的,因为我可以愉快地以 oracle 用户(比如“oraadmin”)运行 sqlplus,并且用户 scott 在 oracle admin 组中注册。此外,我以前的 Oracle 安装 (10.2.0.7) 没有这样的问题。我的 ~scott 的 $ORACLE_HOME 引用了 11.2.0.2 安装。
比较我的 11.2.0.2 和 10.2.0.7 环境,我注意到有几个库(包括 $ORACLE_HOME/lib/libsqlplus.so)具有组只读权限 (744),因此对这些库进行了修改。
除此之外,我的 $ORACLE_HOME/lib、$ORACLE_HOME/bin、$ORACLE_HOME/oracore 和 $ORACLE_HOME/rdbms 在合理的许可下似乎都是合理的。
注意:网上有很多东西,但通常情况下,有很多特定于案例的问题,主要是围绕不同版本的 Windows。主要专注于比较我的环境。此外,据我所知,SO 上尚不存在此问题,因此对于开始按环境整理答案可能很有用。我会报告任何合理的发现。