web-dev-qa-db-fra.com

Comment définir correctement la variable Oracle_HOME sur Ubuntu 9.x?

J'ai le même problème que celui indiqué ci-dessous: Comment récupérer ou changer le mot de passe Oracle sysdba bien que je n'ai pas perdu le mot de passe, je l'ai entré deux fois dans le script de configuration à l'origine, puis lorsque je suis allé à la connexion ( localhost: 8080/apex, mot de passe non accepté.

Je n'ai rien dans la base de données, je veux juste installer et utiliser Oracle-XE. J'ai essayé d'apt-get en le supprimant deux fois et en le réinstallant, mais si j'essaie d'exécuter /etc/init.d/Oracle-xe configurer à nouveau et j'obtiens "Oracle Database 10g Express Edition est déjà configuré" malgré la deuxième suppression de tous les dossiers trouvés pour Oracle XE.

J'ai essayé de lancer sqlplus "/ as sysdba" mais tout ce que je reçois est:

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

J'ai essayé de définir la variable via export. (a également essayé set).

A essayé: export Oracle_HOME=/usr/lib/Oracle/xe/app/Oracle/product/10.2.0/server/bin/sqlplus et tous les sous-répertoires de cela. Même erreur à chaque fois.

Qu'est-ce que Oracle_HOME est censé être configuré? La seule référence que j’ai vue soit simplement dire général, soit dire ce qui précède jusqu’au numéro de version, puis "/ db_1". Je ne fais pas un db_1.

Faites-moi savoir si vous avez besoin de clarification. Je ne comprends pas ce que j'ai fait de mal dans ce processus.

46
coderintherye

Habituellement, les problèmes de fichier msb non trouvés sont le résultat d'un problème de configuration d'environnement, mais dans votre cas, je suis un peu méfiant vis-à-vis de l'installation (je n'ai jamais utilisé la méthode apt-get + configure).

Pour vérifier la santé de l'installation:

  • Oracle_HOME Doit être défini sur un chemin de répertoire un niveau supérieur au répertoire bin où se trouve l'exécutable sqlplus.
  • Il devrait y avoir des fichiers .msb Sous $Oracle_HOME/sqlplus/mesg
  • Il devrait y avoir des centaines (pas sûr du nombre avec XE) de fichiers .msb Sous $Oracle_HOME (Essayez find $Oracle_HOME -name "*.msb" -print Pour les afficher)
  • Votre CHEMIN devrait inclure $Oracle_HOME/bin.
  • Tous les fichiers sous Oracle_HOME Doivent appartenir à user:Oracle group:dba.
80
dpbradley

J'ai eu le même problème. Dans mon dossier personnel, j'ai un script nommé sqlplus.sh qui s'occupe de cela pour moi et contient:

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
21
Jeffrey Kemp

Avait le même problème,

Tout ce que je devais faire était de définir la variable Oracle Shell:

. /u01/app/Oracle/product/11.2.0/xe/bin/Oracle_env.sh

Sorterd!

14
SveguS

Vous devez également définir LANG, rechercher des fichiers nommés 'sp1 * .msb', et définir par exemple l'exportation LANG = us si vous trouvez un nom de fichier sp1us.msb. Le message d'erreur pourrait certainement être mieux :)

5
Kjell

Une fois, j'ai aussi eu ce même type d'erreur.

C'EST À DIRE:

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

Cette erreur se produit car le chemin d'accès principal n'est pas correctement défini. Pour remédier à cela, si vous utilisez Windows, exécutez la requête ci-dessous:

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.

Ou, si vous utilisez Linux, remplacez set par export pour la commande ci-dessus, comme suit:

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.
1
Abhi

Après avoir installé weblogic et forms server sur une machine Linux, nous avons rencontré quelques problèmes lors de l’initialisation de sqlplus et de tnsping. Nous avons modifié le bash_profile de manière à ce que forms_home joue le rôle de la maison Oracle. Cela fonctionne bien, les deux commandes (sqlplus et tnsping) sont exécutables pour l'utilisateur 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
1
ridi

C'est la bonne façon de supprimer cette erreur.

export Oracle_HOME =/u01/app/Oracle/produit/10.2.0/db_1 sqlplus/as sysdba

1
karthikeyan

Oracle_HOME doit être au plus haut niveau de la structure de répertoires Oracle pour l'installation de la base de données. À partir de là, Oracle sait comment trouver tous les autres fichiers dont il a besoin. Par exemple, le message d'erreur que vous obtenez est dû au fait qu'Oracle ne peut pas localiser les fichiers de message avec lesquels signaler des erreurs (devrait se trouver dans les divers répertoires mesg situés sous le répertoire principal Oracle. Au lieu de la valeur ci-dessus, j'essaierais

export Oracle_HOME=/usr/lib/Oracle/xe/app/Oracle/product/10.2.0
1
DCookie