[Oracle 10g XE] Error libaio.so.1 & ORA-12547

Bonjour à tous,

Je viens solliciter un peu votre aide, dans le cadre de l'installe d'une application web je dois installer Oracle 10g Express Edition. Je l'ai installé plusieurs fois sur une debian je n'ai rencontré aucun soucis mais pour des raisons de compatibilité avec mon application je suis passer sur OpenSuse 10.1.

J'ai donc deux problème le premier étant une erreur lorsque je veux me connecter à l'invite de commande SQL*Plus le message d'erreur est le suivant :

oracleXE: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
ERROR:
ORA-12547: TNS : contact perdu

J'ai regardé un peu sur le net et le problème viendrait du fait que je n'ai pas installé les librairies libaio hors je l'ai fait et j'ai vérifier son installation donc je bloque un peu la

Mon seconde problème est que je n'arrive pas à accéder à l'interface web sur l'adresse http://127.0.0.1:8080/apex je ne sais pas si c'est lieu peut-être un problème d'ouverture de port je me pencherais dessus plustard

Voila ça fait un moment que je galère la dessus j'espère pouvoir me dépêtrer de tout ça avec votre aide merci d'avance

Cordialement

23 réponses

Résumé de la discussion

Deux problèmes apparaissent lors de l'installation d'Oracle 10g Express Edition sur OpenSUSE 10.1 : une erreur de chargement libaio.so.1 et l'accès impossible à l'interface Apex sur 127.0.0.1:8080. Le message d'erreur signale libaio.so.1 manquante et ORA-12547, et l'accès à sqlplus et à Apex reste problématique, ce qui pousse à installer les librairies, exporter LD_LIBRARY_PATH et vérifier via ldd. Des interventions suggèrent d'ajouter LD_LIBRARY_PATH dans ~/.profile, de relancer une session et d'utiliser ldd pour confirmer les dépendances du binaire et identifier d'éventuels autres composants manquants. En cas de nuance utile, certains évoquent aussi des vérifications sur le port et l'architecture 64 bits pour garantir une connexion web opérationnelle et éviter des blocages liés à des librairies spécifiques.

Bobot (l’IA à votre service)
  1. Webmaster
    Salut,

    Que te renvoi la commande locate libaio.so.1 ?

    Pas souvent travaillé avec Suser, mais qu'as tu installé comme package ? (libaio & libaio-devel ?)

    A plus
    0
    1. Lut,

      la commande whereis libaio.so.1 renvoi :

      libaio.so:

      Je n'avais pas installé libaio-devel mais ça ne change rien :(
      0
      1. Webmaster
        Ok... :(

        Alors, pour investiguer, que te renvoie les commande suivantes (executée en tant qu'utilisateur root, puis en tant qu'utilisateur que tu utilise pour lancer sqlplus):

        # ldd $(which sqlplus)
        # find / -name libaio*
        # echo $LD_LIBRARY_PATH
        0
        1. Donc avec mon utilisateur oracle membre du groupe dba :

          oracle@carlsource:~> ldd $(which sqlplus) 
          ldd: missing file arguments 
          Try 'ldd --help' for more information. 
          oracle@carlsource:~> find / -name libaio* 
          ...
          find: /usr/lib/man-db: Permission non accordée 
          /usr/lib64/libaio.so.1 
          /usr/lib64/libaio.so.1.0.1 
          /usr/lib64/libaio.a 
          /usr/lib64/libaio.so 
          /usr/share/doc/packages/libaio 
          find: /usr/share/YaST2/data/support: Permission non accordée 
          /usr/include/libaio.h 
          ...
          oracle@carlsource:~> echo $LD_LIBRARY_PATH 
          
          oracle@carlsource:~>
          0
          1. carlsource:/home/oracle # ldd $(which sqlplus)
            ldd: missing file arguments
            Try 'ldd --help' for more information.
            carlsource:/home/oracle # find / -name libaio*
            /usr/lib64/libaio.so.1
            /usr/lib64/libaio.so.1.0.1
            /usr/lib64/libaio.a
            /usr/lib64/libaio.so
            /usr/share/doc/packages/libaio
            /usr/include/libaio.h
            find: /proc/4765/task: Aucun fichier ou répertoire de ce type
            find: /proc/4765/fd: Aucun fichier ou répertoire de ce type
            carlsource:/home/oracle # echo $LD_LIBRARY_PATH

            carlsource:/home/oracle #

            Voila la commande ldd ne passe pas je vois pas trop pourquoi...
            0
            1. Webmaster
              Pour la commande ldd, c'est qu'il ne trouve pas le binaire sqlplus quand tu le lance, tu tapes juste sqlplus, ou tu donne le chemin ?

              J'aurais tendance a dire que en settant $LD_LIBRARY_PATH, ça devrait fonctionner...

              Si tu peux faire fonctionner ldd avec:
              ldd </chemin/ver/>sqlplus

              Ca permettera de verifier que rien d'autre n'est manquant...

              Sinon, re tente la connexion, mais dans ton shell avant de lancer sqlplus, tu tapes:
              export LD_LIBRARY_PATH=/usr/lib64


              Si ça marche, ça veut dire que bizzarement, ta Suse, ne va pas lire les lib 64 bits :-/

              Tiens nous au courant!, a plus
              0
          2. Bah enfaite je le lance avec un raccourcis qui pointe vers :
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/runsqlplus.sh

            carlsource:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts # ldd runsqlplus.sh
            not a dynamic executable


            et après export LD_LIBRARY_PATH=/usr/lib64

            et c'est toujours pareil...
            0
            1. Webmaster
              Que te donne du coup:
              grep sqlplus /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/runsqlplus.sh
              0
          3. carlsource:/home/oracle # grep sqlplus usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/runsqlplus.sh
            /usr/bin/gnome-terminal -t "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
            /usr/bin/xterm -T "SQL*Plus" -n "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
            0
            1. Webmaster
              hum :(

              Il me laisse perplexe là...

              Enfin visiblement, il tente de lancer un autre treminal qui lui même lance sqlplus (si le script est pas trop long, je veux bien que tu le copie-colle ici, ou que tu l'envoie par cjoint)

              Ce que tu peux déjà tenter c'est de rajouter dans le fichier ~/.profile à la fin, la lignne:
              export LD_LIBRARY_PATH=/usr/lib64 


              puis te terminer ta session linux, ouvrir une nouvelle session, et voir si ça règle le problème (ça doit être indiquer dans le POSTINSTALL de oracle ceci dit...)
              0
          4. Toujours le même problème :(
            0
            1. Webmaster
              Salut,

              peux-tu me copier le fichier /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh ?

              A plus
              0
          5. #!/bin/bash
            #
            # svaggu 09/28/05 - Creation
            #

            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
            ~
            0
            1. Webmaster
              Bon, on va voir maintenant, ce qui lui manque a sqlplus :-)
              Dans le fichier: /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh

              Commente la dernière ligne, et ajoute la commande ldd:
              #!/bin/bash 
              # 
              # svaggu 09/28/05 - Creation 
              # 
              
              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  
              ldd sqlplus

              Ensuite, lance sql plus comme tu le fait habituellement, et colle nous le resultat ici.
              0
          6. Alors la il ne se lance plus dutout ni via le raccourci ni via la commande ./sqlplus.sh :(
            0
            1. Webmaster
              Normal qu'il ne se lance plus, mais que t'ecrit-il ?
              0
          7. Ah désolé voila ce qu'il m'affiche :

            oracle@carlsource:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts> ./sqlplus.sh
            ldd: ./sqlplus: Aucun fichier ou répertoire de ce type
            oracle@carlsource:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts>
            0
            1. Webmaster
              Re,

              Tu es bien sur d'avoir modifié le script comme il faut ?

              Dans la sortie:
              ldd: ./sqlplus: Aucun fichier ou répertoire de ce type
              le "./" m'etonne :(

              Re-colle le script modifié pour qu'on s'assure que tout est ok :)

              ++

              EDIT: c'est ma faute... :)
              remplace la ligne
              ldd sqlplus
              par:
              ldd $ORACLE_HOME/bin/sqlplus
              0
          8. oracle@carlsource:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts> ./sqlplus.sh 
                    linux-gate.so.1 =>  (0xffffe000) 
                    libsqlplus.so => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/../lib/libsqlplus.so (0xf7f25000) 
                    libclntsh.so.10.1 => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/../lib/libclntsh.so.10.1 (0xf7171000) 
                    libnnz10.so => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/../lib/libnnz10.so (0xf6f6c000) 
                    libdl.so.2 => /lib/libdl.so.2 (0xf6f4a000) 
                    libm.so.6 => /lib/libm.so.6 (0xf6f25000) 
                    libpthread.so.0 => /lib/libpthread.so.0 (0xf6f11000) 
                    libnsl.so.1 => /lib/libnsl.so.1 (0xf6efc000) 
                    libc.so.6 => /lib/libc.so.6 (0xf6ddc000) 
                    /lib/ld-linux.so.2 (0xf7fd8000) 
            oracle@carlsource:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts>  
            

            C'est déja plus parlant :)
            0
            1. Webmaster
              Ok, donc le problème n'est pas lié a sqlplus, mais à l'instance...

              Je repasse plus tard...
              Mais tu peux déjà tenter par toi même, il faut (je pense) que lors du lancement de l'instance, le LD_LIBRARY_PATH soit correctement sétté: (export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH)

              donc une modif a faire dans le script qui lance l'instance, ou mieux, pour l'utilisateur qui lance l'instance oracle.

              Si tu peux me dire comment l'instance est lancée, je suis preneur!

              A plus
              0
          9. Asevere,

            Je suis désolé mais je suis débutant en Linux...

            Quand tu parles de lancer l'instance tu parles de lancer la console pour SQLplus ?
            0
            1. Webmaster
              Pas de soucis...

              Quand je parle de lancer l'instance, c'est demarrer le service oracle, mais je ne sais pas comment cela se passe sur oracle xe, est-ce démarré automatiquement au démarrage de la machine, ou toi lance-tu un script à la main ?

              Si c'est demarré directement par la machine ou que tu ne sais pas comment il est démarré, (vu que je n'ai pas de quoi le tester ici), peut-tu me retourner le resultat de la commande suivante:
              ls -l /etc/init.d/
              (si ça plante, c'est que suse fonctionne différamment :(' )
              0
          10. Ok j'avais pas bien saisi ta question l'instance se lance au démarrage car lors de l'installation j'ai demandé à ce que la base soit démarré automatiquement pour le résultat de la commande :
            carlsource:/home/guillaume # ls -l /etc/init.d/ 
            total 641 
            ...
            -rwxr-xr-x 1 root root 16454 2006-01-30 12:59 oracle-xe 
            ...
            0
            1. Webmaster
              Ok, je veux bien que tu me donne le contenu du script...

              Au fait, as-tu jeté un zyeu au fichiers de log de oracle ? (désolé, mes dernières experia-ence avec Oracle sont trop lointaine pour que je puisse te dire avec assurance ou les trouver)
              0
          11. Le script est trop volumineux tu peux m'envoyé un MP avec ton adresse email pour que je puisse te l'envoyer ?

            Au niveau des log j'ai le fichier sqlnet.log qui me renvoi mon erreur cité dans le titre
            0
            1. Webmaster
              Salut,

              Si tu as tenté d'envoyer un mail, il n'a pas du arriver :(
              0
            2. Nan désolé j'ai pas eu le temps ce matin je t'envoi ça de suite ;)
              0
            3. Webmaster
              Vu,

              Alors,
              Commence par me copier le resultat de:
              ldd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr

              Executé avec ton utilisateur, root, puis avec l'utilisateur oracle avec la commande suivante a partir du compte root si le compte orccle est desactivé (ce qui devrait être le cas)
              su - oracle -c ldd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr


              Histoire de controller que le problème est bien là, avant de modifier quoi que ce soit :)
              0
          12. ldd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr
            linux-gate.so.1 => (0xffffe000)
            libclntsh.so.10.1 => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1 (0xf714e000)
            libnnz10.so => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libnnz10.so (0xf6f49000)
            libdl.so.2 => /lib/libdl.so.2 (0xf6f27000)
            libm.so.6 => /lib/libm.so.6 (0xf6f02000)
            libpthread.so.0 => /lib/libpthread.so.0 (0xf6eee000)
            libnsl.so.1 => /lib/libnsl.so.1 (0xf6ed9000)
            libons.so => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libons.so (0xf6ecd000)
            libc.so.6 => /lib/libc.so.6 (0xf6dad000)
            /lib/ld-linux.so.2 (0xf7f03000)
            0
            1. ça c'est avec l'utilisateur oracle ça renvoi le même résultat en root et la 2e commande ne passe pas peux-tu me dire à quoi ça sert parceque j'aimerais bien comprendre ce que je fais lol
              0
            2. Webmaster
              La commande ldd premet de savoir si tout les librairies dynamiques requises sont trouvées par le programme, et le cas échéant, lesquelles sont utilisées :)

              Le problème c'est que visiblement, il a tout.... :(

              Peut-tu stopper le service (/etc/init.d/oracle-xe stop)

              Puis en tant qu'utilisateur oracle: copier coller ce qui suit dans un script quelconque

              #!/bin/bash
              ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
              export PATH=$ORACLE_HOME/bin:$PATH
              
              find $ORACLE_HOME -name "*log"
              
              lsnrctl start
              lsnrctl status
              
              sqlplus -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql
              

              puis
              chmod +x ton_script.sh

              puis
              ./ton_script.sh


              Dans le detail, le script va lister les fichier de logs puis demarrer le serveur sans cacher la sortie standard pour tenter d'avoir plus d'info.

              Ensuite, copie-colle le resultat du script :)

              A plus
              0
          13. Ou est-ce que tu place le script il me renvoi command not found :(
            0
            1. Webmaster
              Ben... ou tu veux en fait...

              Tu n'as qu'a le mettre dans /home/oracle/test_lsnr.sh et exécuter /home/oracle/test_lsnr.sh :)
              0
            2. ça passe toujours pas
              0
          14. Enfait il se passe quelque chose désolé...

            oracle@carlsource:~> ./script.sh
            ./.kde/share/apps/kconf_update/log
            ./.kde/share/apps/kconf_update/log/update.log
            ./sqlnet.log
            ./script.sh: line 6: lsnrctl: command not found
            ./script.sh: line 7: lsnrctl: command not found
            ./script.sh: line 9: sqlplus: command not found
            oracle@carlsource:~>
            0
            1. Webmaster
              Visiblement, tu as un soucis dans les lignes 2 & 3 du script, tu peux me l'envoyer par mail ?
              0
          15. C'est bon j'ai vu le blèm voila le resultat :

            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/log/carlsource/client/css.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/cloneDBCreation.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/CloneRmanRestore.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/postDBCreation.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/postScripts.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlnet.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log

            LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 27-MAY-2010 16:44:37

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

            Message 1070 not found; No message file for product=network, facility=TNSTNSLSNR for Linux: Version 10.2.0.1.0 - Production
            Message 279 not found; No message file for product=network, facility=NL
            Message 1073 not found; No message file for product=network, facility=TNS
            Message 1053 not found; No message file for product=network, facility=TNSMessage 1020 not found; No message file for product=network, facility=TNSMessage 1021 not found; No message file for product=network, facility=TNSMessage 1022 not found; No message file for product=network, facility=TNSMessage 1023 not found; No message file for product=network, facility=TNSMessage 1026 not found; No message file for product=network, facility=TNSMessage 1034 not found; No message file for product=network, facility=TNSMessage 1024 not found; No message file for product=network, facility=TNSMessage 1025 not found; No message file for product=network, facility=TNSMessage 1040 not found; No message file for product=network, facility=TNSMessage 1028 not found; No message file for product=network, facility=TNSMessage 1415 not found; No message file for product=network, facility=TNS Message 1050 not found; No message file for product=network, facility=TNS
            Message 1030 not found; No message file for product=network, facility=TNSMessage 1052 not found; No message file for product=network, facility=TNS
            LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 27-MAY-2010 16:44:37

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

            Message 1053 not found; No message file for product=network, facility=TNSMessage 1020 not found; No message file for product=network, facility=TNSMessage 1021 not found; No message file for product=network, facility=TNSMessage 1022 not found; No message file for product=network, facility=TNSMessage 1023 not found; No message file for product=network, facility=TNSMessage 1026 not found; No message file for product=network, facility=TNSMessage 1034 not found; No message file for product=network, facility=TNSMessage 1024 not found; No message file for product=network, facility=TNSMessage 1025 not found; No message file for product=network, facility=TNSMessage 1040 not found; No message file for product=network, facility=TNSMessage 1028 not found; No message file for product=network, facility=TNSMessage 1415 not found; No message file for product=network, facility=TNS Message 1050 not found; No message file for product=network, facility=TNS
            Message 1030 not found; No message file for product=network, facility=TNSMessage 1052 not found; No message file for product=network, facility=TNSError 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
            oracle@carlsource:~>
            0
            1. Webmaster
              Ok :(

              Peux-tu rajouter un export devant la declaration de ORACLE_HOME (comme pour PATH) et refaire le test
              0
          16. oracle@carlsource:~> ./script.sh
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/log/carlsource/client/css.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/cloneDBCreation.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/CloneRmanRestore.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/postDBCreation.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/log/postScripts.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlnet.log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log
            /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log

            LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 27-MAY-2010 17:14:18

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

            TNS-01106: Listener using listener name LISTENER has already been started

            LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 27-MAY-2010 17:14:18

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

            Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
            TNS-12541: TNS:no listener
            TNS-12560: TNS:protocol adapter error
            TNS-00511: No listener
            Linux Error: 2: No such file or directory
            Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=carlsource)(PORT=1521)))
            STATUS of the LISTENER
            ------------------------
            Alias LISTENER
            Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
            Start Date 27-MAY-2010 16:44:37
            Uptime 0 days 0 hr. 29 min. 41 sec
            Trace Level off
            Security ON: Local OS Authentication
            SNMP OFF
            Listener Log File listener.log
            Listening Endpoints Summary...
            (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=carlsource.site)(PORT=1521)))
            The listener supports no services
            The command completed successfully
            ERROR:
            ORA-12162: TNS:net service name is incorrectly specified

            ORA-12162: TNS:net service name is incorrectly specified
            oracle@carlsource:~>
            0
            1. Webmaster
              Alors, il faudrait rajouter au script la ligne:
              export ORACLE_SID=XE
              (aprés le export PATH par exemple)

              Et relancer le script (ps: pense a faire un ./etc/init.d/oracle-xe stop avant de relancer le script )
              0
          • 1
          • 2