【问题标题】:How to correctly set the ORACLE_HOME variable on Ubuntu 9.x?如何在 Ubuntu 9.x 上正确设置 ORACLE_HOME 变量?
【发布时间】:2011-02-14 09:41:04
【问题描述】:

我遇到了和这里列出的一样的问题:How to recover or change Oracle sysdba password虽然我没有丢失密码,但我最初在配置脚本中输入了两次,然后当我去登录时(localhost:8080/apex,密码不接受.

我的数据库里什么都没有,我只想安装和使用Oracle-XE。我已经尝试 apt-get 删除它两次并重新安装,但是如果我尝试再次运行 /etc/init.d/oracle-xe configure 并且我得到“Oracle Database 10g Express Edition 已配置”,尽管第二次删除了我可以找到的 Oracle XE 的任何文件夹。

我尝试运行 sqlplus "/ as sysdba" 但我得到的只是:

Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

我尝试通过export 设置变量。 (也试过set)。

试过了:export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/sqlplus 以及它的所有子目录。每次都是同样的错误。

ORACLE_HOME 应该设置为什么?我看到的唯一参考要么只是说一般,要么说上面的版本号,然后是“/db_1”。我没有 db_1。

如果您需要任何说明,请告诉我。我不明白我在这个过程中做错了什么。

【问题讨论】:

  • 只是为了澄清 $ORACLE_HOME 设置得很好,我可以回应它,只是显然我没有将它设置为正确的路径?
  • 顺便说一句,我在摆脱 Oracle 时遇到了最严重的问题。需要运行以下命令来清除 Ubuntu 上的任何配置:apt-get purge oracle-xe 或 dpkg -P oracle-xe

标签: oracle oracle-xe


【解决方案1】:

ORACLE_HOME 需要位于数据库安装的 Oracle 目录结构的顶层。从那时起,Oracle 就知道如何找到它需要的所有其他文件。比如你得到的报错信息是因为oracle找不到报错的消息文件(应该在oracle home下的各个mesg目录下。而不是上面你给的值,我会试试

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0

【讨论】:

  • 谢谢,但是我已经尝试过,如上所述,我尝试了所有子目录。 k@k:/$ export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0 k@k:/$ echo $ORACLE_HOME /usr/lib/oracle/xe/app/oracle/product /10.2.0 k@k:/$ /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/sqlplus "/ as sysdba" 初始化 SQL*Plus 消息文件 sp1.msb 未找到 SP2-0750:您可能需要将 ORACLE_HOME 设置为您的 Oracle 软件目录
  • +1 谢谢,对我来说,我必须这样做 export ORACLE_HOME=/oracle/product/11.1.0/db_1/ 并且它有效:D
  • 如何在 Windows 上export ORACLE_HOME=/oracle/product/11.1.0/db_1/
【解决方案2】:

通常msb文件未找到问题是环境设置问题的结果,但在你的情况下我对安装有点怀疑(我从未使用过apt-get + configure方法)。

检查安装的完整性:

  • ORACLE_HOME 应设置为比找到sqlplus 可执行文件的bin 目录高一级的目录路径。
  • $ORACLE_HOME/sqlplus/mesg下应该有一些.msb文件
  • 应该有数百个(不确定 XE 的数量).msb 文件 在$ORACLE_HOME 下(尝试find $ORACLE_HOME -name "*.msb" -print 显示它们)
  • 您的 PATH 应包括 $ORACLE_HOME/bin
  • ORACLE_HOME 下的所有文件都应归user:oracle group:dba 所有。

【讨论】:

  • 谢谢,这正是我正在寻找的答案。如果我在星期一试用时有效,我会将其标记为已接受。
  • 在使用 Alien 将 redhat 包转换为 debian 包后,在 Ubuntu 10.04.4 LTS 上没有为我正确设置 ORACLE_HOME。现在尝试运行 SQLPLUS 时,我发现此 ORACLE_HOME 未设置。
  • 这里也一样,我在 ubuntu 上,不得不使用外星人将 RPM 转换为 DEB。 $ORACLE_HOME/bin/mesg 根本不存在!我的 $ORACLE_HOME 设置为即时客户端安装的根文件夹
  • 我必须添加 "export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib" 否则 sqlplus 不起作用。
【解决方案3】:

我有同样的问题。在我的主文件夹中,我有一个名为 sqlplus.sh 的脚本,它会为我处理这个问题,其中包含:

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH
export PATH
sqlplus /nolog

【讨论】:

  • 感谢您的回答,但是设置 NLS_LANG=$ORACLE_HOME/bin/nls_lang.sh 会导致问题,因为该文件不存在。另一个答案似乎有效。
  • 感谢您的回答。帮助我设置了我的 Oracle Home! +1
【解决方案4】:

您还必须设置 LANG,查找名为“sp1*.msb”的文件,如果找到文件名 sp1us.msb,则设置例如 export LANG=us。错误消息肯定会更好:)

【讨论】:

  • 如何在Windows上设置LANG?
【解决方案5】:

一旦我也遇到了同样类型的错误。

IE:

C:\oracle\product\10.2.0\db_2>SQLPLUS SYS AS SYSDBA
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

由于未正确设置主路径而发生此错误。要解决此问题,如果您使用的是 Windows,请运行以下查询:

C:\oracle\product\10.2.0\db_2>SET ORACLE_HOME=C:\oracle\product\10.2.0\db_2
C:\oracle\product\10.2.0\db_2>SQLPLUS SYS AS SYSDBA

SQL*Plus: Release 10.2.0.3.0 - Production on Tue Apr 16 13:17:42 2013

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

或者,如果您使用的是 Linux,则将上述命令的 set 替换为 export,如下所示:

C:\oracle\product\10.2.0\db_2>EXPORT ORACLE_HOME='C:\oracle\product\10.2.0\db_2'
C:\oracle\product\10.2.0\db_2>SQLPLUS SYS AS SYSDBA

SQL*Plus: Release 10.2.0.3.0 - Production on Tue Apr 16 13:17:42 2013

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

【讨论】:

    【解决方案6】:

    遇到同样的问题,

    我所要做的就是设置 oracle shell 变量:

    . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
    

    排序!

    【讨论】:

    • 太棒了! ORACLE_HOME 路径/u01/app/oracle/product/11.2.0 正是官方oracle-xe-11.2.0-1.0.x86_64.rpm 文件中映射的内容。
    【解决方案7】:

    这是清除此错误的正确方法。

    导出 ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 sqlplus / as sysdba

    【讨论】:

      【解决方案8】:

      在 Linux 机器上安装 weblogic 和表单服务器后,我们在初始化 sqlplustnsping 时遇到了一些问题。我们更改了bash_profile,使forms_home 充当oracle home。它工作正常,两个命令 (sqlplus 和 tnsping) 对用户 oracle 是可执行的

      # .bash_profile
      
      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
          . ~/.bashrc
      fi
      
      # User specific environment and startup programs
      
      PATH=$PATH:$HOME/bin
      
      export JAVA_HOME=/mnt/software/java/jdk1.7.0_71
      export ORACLE_HOME=/oracle/Middleware/Oracle_FRHome1
      export PATH=$PATH:$JAVA_HOME/bin:$ORACLE_HOME/bin
      export LD_LIBRARY_PATH=/oracle/Middleware/Oracle_FRHome1/lib
      export FORMS_PATH=$FORMS_PATH:/oracle/Middleware/Oracle_FRHome1/forms:/oracle/Middleware/asinst_1/FormsComponent/forms:/appl/myapp:/home/oracle/myapp
      

      【讨论】:

        【解决方案9】:
        set <ORACLE_HOME> path variable
        

        例子

        path ORACLE_HOME
        

        值为 C:\oracle\app\oracle\product\10.2.0\server

        【讨论】:

        • 这看起来是针对 Windows 的,而问题是关于 Ubuntu。
        猜你喜欢
        • 1970-01-01
        • 2019-11-22
        • 1970-01-01
        • 2023-01-11
        • 2014-05-20
        • 1970-01-01
        • 2020-08-16
        • 2017-04-03
        • 1970-01-01
        相关资源
        最近更新 更多