IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Utilisation de tables externes


Sujet :

Administration Oracle

  1. #1
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut Utilisation de tables externes
    Bonjour tout le monde,

    Parfois je n'ai pas accès au serveur Linux où se trouve ma base. Cela est gênant pour lire des fichiers de configuration non accessibles par des vues oracle (l'objet ALERT_LOG pour le fichier alert.log par exemple).
    Je comptais donc créer une table externe pour lire ces fichiers directement via Oracle. Est-ce la bonne solution ou bien peut-on faire autrement?

    Voici ce que j'ai fais sur le fichier listener.ora.

    Emplacement du listener.ora
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [oracle@vbgeneric admin]$ pwd
    /u01/app/oracle/product/12.2/db_1/network/admin
    Son contenu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [oracle@vbgeneric admin]$ more /u01/app/oracle/product/12.2/db_1/network/admin/listener.ora
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl12c)
          (SID_NAME = orcl12c)
          (ORACLE_HOME = /u01/app/oracle/product/12.2/db_1)
        )
      )
     
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
        )
      )
     
    #HOSTNAME by pluggable not working rstriction or configuration error.
    DEFAULT_SERVICE_LISTENER = (orcl12c)
    Création d'un directory Oracle sur ce répertoire et de la table externe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    CREATE DIRECTORY listener AS '/u01/app/oracle/product/12.2/db_1/network/admin';
    Directory LISTENER created.
     
     
    SQL> CREATE TABLE SYSTEM.listener_ora
    (
    	ligne VARCHAR2(4000)
    )
    	ORGANIZATION EXTERNAL
    	(
    	  TYPE ORACLE_LOADER
    	  DEFAULT DIRECTORY	LISTENER
    	  ACCESS PARAMETERS
    	  (
    		records delimited by newline
    		badfile LISTENER:'LISTENER_table_externe.bad'
    		logfile LISTENER:'LISTENER_table_externe.log'
    		fields terminated by eof
    	  ) 
    	  LOCATION ('listener.ora')
    	)
    	PARALLEL
    	REJECT LIMIT UNLIMITED ;
     
    Table SYSTEM.LISTENER_ORA created.
    Génial, j'ai bien le contenu du fichier dans ma table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SQL> select * from SYSTEM.LISTENER_ORA;
    LIGNE                                                                           
    --------------------------------------------------------------------------------
    SID_LIST_LISTENER =                                                             
      (SID_LIST =                                                                   
        (SID_DESC =                                                                 
          (GLOBAL_DBNAME = orcl12c)                                                 
          (SID_NAME = orcl12c)                                                      
          (ORACLE_HOME = /u01/app/oracle/product/12.2/db_1)                         
        )                                                                           
      )                                                                             
    LISTENER =                                                                      
      (DESCRIPTION_LIST =                                                           
        (DESCRIPTION =                                                              
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))                              
          (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))                 
        )                                                                           
      )                                                                             
    #HOSTNAME by pluggable not working rstriction or configuration error.           
    DEFAULT_SERVICE_LISTENER = (orcl12c)                                            
     
    17 rows selected.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Moi je dirais que si vous êtes officiellement l'administrateur des bases Oracle, vous devez avoir accès au serveur avec les privilèges suffisants pour faire votre travail.
    Bricoler une table externe juste pour faire de la consultation basique d'un listener.ora, je n'en vois guère l'intérêt. Car si vous devez le modifier, ou relancer le listener, vous devrez bien aller sur la machine.
    En revanche, une table externe prend tout son sens sur un listener.log ou un alert.log plus ou moins volumineux, que l'on va pouvoir analyser par requête SQL, avec tous les raffinements voulus.

    S'il s'agit des fichiers de la couche SQL*Net, ils peuvent être manipulés à travers Database control / Cloud control, même si ce n'est pas tellement une possibilité que j'utilise.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Je te remercie pour tes réponses Pomalaix mais même en temps que DBA, il y a des serveurs auxquels je n'ai pas accès. Pour lire les fichiers de ces serveurs c'est galère, il faut faire une demande à un service via un formulaire, attendre leur réponse etc etc. Donc la table externe est pour moi un moyen facile et rapide d'être encore plus autonome dans cette configuration.

    Concernant le fichier alert.log, il existe déjà deux synonymes pour l'interroger via SQL : ALERT_LOG et V$DIAG_ALERT_EXT.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/12/2008, 16h35
  2. [EJB][JONAS] EJB utilisant une classe "externe"
    Par Gregory3000 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 13/12/2004, 19h57
  3. [ORACLE 9i] tables externes et Skip column
    Par sygale dans le forum SQL
    Réponses: 7
    Dernier message: 17/11/2004, 05h13
  4. utiliser plusieurs table et qreport
    Par StephCal dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/10/2004, 09h28
  5. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo