Maîtrisez les outils, les configurations et le dictionnaire de données pour piloter Oracle 11g.
L'administration et l'utilisation d'une base de données Oracle 11g ne se limitent pas à la connaissance des structures internes. Il est impératif de maîtriser les outils et les configurations qui permettent d'établir le dialogue entre l'administrateur (ou le développeur) et l'instance. Ce chapitre détaille les méthodes d'accès, les interfaces de gestion et la configuration du système hôte nécessaires pour piloter l'environnement Oracle.
La maîtrise de cet environnement repose sur trois piliers :
1️⃣ La configuration système
S'assurer que le système d'exploitation reconnaît les logiciels Oracle.
2️⃣ Les interfaces de communication
Choisir l'outil adapté (ligne de commande, graphique ou web) selon la tâche à accomplir.
3️⃣ L'interrogation des métadonnées
Savoir utiliser le dictionnaire de données pour obtenir des informations en temps réel sur l'état de la base.
SQL*Plus est l'outil d'interface utilisateur en ligne de commande livré avec chaque installation du serveur ou du client Oracle. Bien que son apparence puisse sembler rudimentaire, il demeure l'outil le plus puissant et le plus robuste pour l'administration d'une base de données Oracle 11g.
SQL*Plus n'est pas seulement un terminal SQL ; c'est un interpréteur de commandes interactif qui permet d'exécuter des instructions SQL, des blocs PL/SQL et des commandes spécifiques à l'outil (formatage, variables de substitution, gestion de fichiers).
🌍 Universalité
Il est disponible sur toutes les plateformes (Windows, Linux, Unix).
⚡ Légèreté
Il consomme très peu de ressources et ne nécessite pas d'interface graphique (GUI).
🤖 Automatisation
C'est l'outil de prédilection pour l'exécution de scripts batch et de tâches de maintenance planifiées.
L'accès via SQL*Plus peut se faire selon deux architectures distinctes :
🏠 Connexion Locale (Bequeath)
Utilisée directement sur le serveur où réside l'instance. Elle ne nécessite pas de configuration réseau (Listener).
sqlplus / as sysdba
Oracle s'appuie sur les privilèges du groupe d'utilisateurs du système d'exploitation pour authentifier l'administrateur.
🌐 Connexion Distante (Client-Serveur)
L'utilisateur se connecte via le réseau à travers le processus Listener.
sqlplus nom_utilisateur/mot_de_passe@chaîne_de_connexion
La "chaîne de connexion" peut être un alias ou Easy Connect : serveur:port/service_name.
Il est important de distinguer les instructions SQL (qui se terminent par un ;) des commandes SQL*Plus (qui ne nécessitent pas de point-virgule) :
SET LINESIZE 200).SQL*Plus est indispensable pour les phases critiques :
SQL Developer est l'interface graphique (GUI) moderne, gratuite et officiellement supportée par Oracle pour le développement et l'administration des bases de données. Développé en Java, cet outil offre une alternative visuelle intuitive à la rigueur de SQL*Plus.
Contrairement à d'autres outils qui nécessitent une installation complexe du client Oracle, SQL Developer est un outil "thin" : il peut se connecter en utilisant un driver JDBC intégré, ne nécessitant souvent qu'un simple dézippage du dossier pour être opérationnel.
📦 Navigateur d'objets
Une arborescence complète permet d'explorer visuellement les tables, les vues, les index, les packages PL/SQL, les déclencheurs (triggers) et les séquences sans avoir à connaître par cœur les vues du dictionnaire.
✏️ Éditeur SQL avancé
Propose la coloration syntaxique, l'autocomplétion (IntelliSense) et le formatage automatique du code.
🔍 Débogage PL/SQL
Inclut un débogueur intégré permettant de poser des points d'arrêt (breakpoints), d'exécuter le code pas à pas et d'inspecter les variables en temps réel.
📊 Feuille de calcul (Worksheet)
Permet d'exécuter des scripts complexes et d'afficher les résultats dans des grilles de données triables et filtrables.
Bien qu'orienté développement, SQL Developer propose des consoles d'administration robustes :
Un des points forts de SQL Developer est sa capacité à manipuler les données entre différents environnements :
💡 Note pédagogique : Dans un environnement d'apprentissage, SQL Developer est idéal pour visualiser physiquement les concepts théoriques vus aux chapitres précédents (comme la structure d'un bloc ou l'occupation d'un segment).
Dans l'écosystème Oracle 11g, Oracle Enterprise Manager (OEM) Database Control représente l'interface d'administration Web native. Contrairement à SQL Developer qui est une application cliente, OEM est déployé directement sur le serveur de base de données et permet une gestion centralisée via un simple navigateur internet.
En version 11g, Database Control est une interface légère pilotée par un processus de fond nommé emctl.
https://<hostname>:1158/emLa page d'accueil d'OEM fournit une vue consolidée de la "santé" de l'instance :
📊 L'état de l'instance
Temps de fonctionnement (uptime), statut (Open/Mounted) et utilisation des ressources CPU/Mémoire.
⚠️ Les alertes critiques
Un système de seuils préconfigurés avertit le DBA en cas de saturation d'un Tablespace, de corruption de blocs ou de problèmes de performance majeurs.
👥 Activité des sessions
Un graphique montre le nombre d'utilisateurs actifs et les types d'attentes (Wait Events) qui ralentissent éventuellement la base.
💾 Gestion du Stockage
Visualisation graphique de l'occupation des Datafiles, création de nouveaux Tablespaces et gestion des segments fragmentés.
🔄 Sauvegarde et Récupération
Interface graphique pour piloter RMAN. On peut y planifier des sauvegardes automatiques et lancer des procédures de restauration guidées.
👤 Gestion des Utilisateurs
Création de comptes, réinitialisation de mots de passe, attribution de rôles et de quotas de stockage.
🌐 Configuration Réseau
Surveillance du Listener et des services réseau.
L'un des plus grands atouts d'OEM 11g est l'intégration des Advisors (Conseillers). Ce sont des moteurs intelligents qui analysent la base et proposent des solutions :
⚠️ Note pour les apprenants : Bien que très complet, OEM dépend du bon fonctionnement de l'agent Oracle sur le serveur. Si l'instance est totalement arrêtée suite à une panne grave, le DBA devra souvent repasser par SQL*Plus pour effectuer les premières étapes de réparation.
La configuration correcte des variables d'environnement est l'étape technique préalable à toute interaction avec le moteur Oracle. Ces variables servent de boussole au système d'exploitation pour localiser les fichiers binaires, identifier l'instance cible et définir les paramètres de communication linguistique.
🏠 ORACLE_HOME
La variable la plus critique. Désigne le chemin absolu où le logiciel Oracle 11g a été installé. C'est à partir de cette racine qu'Oracle retrouve ses bibliothèques et fichiers de configuration.
Windows : C:\app\oracle\product\11.2.0\dbhome_1
Linux : /u01/app/oracle/product/11.2.0/dbhome_1
🆔 ORACLE_SID (Site Identifier)
Le SID est le nom unique qui identifie une instance spécifique. Comme un serveur peut héberger plusieurs bases simultanément, l'ORACLE_SID indique aux outils à quelle instance s'attacher en mémoire.
Si mal renseigné : ORA-12162: TNS:net service name is incorrectly specified
📁 PATH
Pour exécuter les commandes Oracle (sqlplus, lsnrctl, etc.) depuis n'importe quel répertoire, le chemin $ORACLE_HOME/bin doit être ajouté à PATH.
📚 LD_LIBRARY_PATH (Linux/Unix)
Indique où trouver les bibliothèques partagées (.so) nécessaires au moteur. Pointe généralement vers $ORACLE_HOME/lib.
La variable NLS_LANG est vitale pour l'intégrité des données. Elle définit : LANGUE_TERRITOIRE.JEU_DE_CARACTERES
🌍 Langue
Détermine la langue des messages d'erreur et des noms de jours/mois.
📍 Territoire
Définit les formats par défaut pour les dates, les monnaies et les séparateurs numériques.
📝 Jeu de caractères
Indique au client Oracle comment coder/décoder les caractères (ex: AL32UTF8 pour Unicode). Un mauvais réglage ici est la cause principale de corruption des accents.
🪟 Sous Windows
L'installation d'Oracle crée des entrées dans le Registre. Pour forcer un environnement spécifique dans CMD :
set ORACLE_SID=PRODset ORACLE_HOME=C:\app\oracle\product\11.2.0\dbhome_1🐧 Sous Linux/Unix
On utilise la commande export. Oracle fournit souvent oraenv :
. oraenv (puis saisir le SID souhaité)La configuration des variables ORACLE_HOME et ORACLE_SID permet d'utiliser le protocole Bequeath. Ce mode de connexion permet à un processus utilisateur (comme SQL*Plus) de se connecter directement à la zone mémoire SGA de l'instance sans passer par la couche réseau (le Listener). C'est le mode privilégié pour les opérations d'administration lourdes, car il est plus rapide et ne dépend pas de la disponibilité du réseau.
Le dictionnaire de données est le cœur informationnel d'Oracle 11g. Il s'agit d'un ensemble de tables et de vues en lecture seule, créées et maintenues automatiquement par le moteur, qui décrivent la structure même de la base de données.
L'accès aux métadonnées est segmenté en trois niveaux de visibilité :
👤 USER_ : La vue restrictive
Affiche uniquement les objets dont l'utilisateur actuel est le propriétaire.
SELECT table_name FROM USER_TABLES;🤝 ALL_ : La vue collaborative
Regroupe tous les objets auxquels l'utilisateur a accès (ses objets + ceux partagés avec lui).
SELECT owner, table_name FROM ALL_TABLES;🛡️ DBA_ : La vue d'ensemble
Réservée aux administrateurs (rôle DBA). Affiche absolument tous les objets présents dans la base.
SELECT owner, table_name FROM DBA_TABLES;En complément des vues statiques, Oracle propose les vues V$ qui sont lues directement depuis la mémoire vive (SGA) :
V$SESSION (qui est connecté ?), V$INSTANCE (statut), V$TRANSACTION (transactions en cours)| Domaine | Vues principales | Utilité |
|---|---|---|
| Objets | DBA_OBJECTS, DBA_TABLES, DBA_INDEXES | Inventorier et dater la création des composants. |
| Stockage | DBA_TABLESPACES, DBA_DATA_FILES, DBA_SEGMENTS | Surveiller l'occupation disque et l'emplacement physique. |
| Sécurité | DBA_USERS, DBA_ROLE_PRIVS, DBA_TAB_PRIVS | Auditer les accès et les permissions. |
| Code | DBA_SOURCE, DBA_TRIGGERS, DBA_ERRORS | Consulter le code source PL/SQL et déboguer. |
Avec des milliers de vues disponibles, Oracle fournit une vue spéciale nommée DICTIONARY (ou son alias DICT) qui sert d'index :
Astuce de recherche :
SELECT table_name, comments FROM dictionary WHERE table_name LIKE '%TABLESPACE%';Cette requête permet de retrouver instantanément toutes les vues liées à la gestion de l'espace.
⚠️ Note Pédagogique : Le dictionnaire de données est en lecture seule pour l'utilisateur. Même le DBA ne doit jamais tenter de modifier directement les tables de base (TAB$, etc.), car cela corromprait irrémédiablement la structure logique de la base. Toute modification doit passer par des commandes DDL standard (CREATE, ALTER, DROP).
L'objectif de ce travail pratique est de vous familiariser avec l'environnement de travail Oracle en utilisant les outils de connexion et en interrogeant le dictionnaire de données pour auditer l'état de l'instance.
Avant toute chose, vérifiez que votre terminal "voit" l'instance Oracle :
Vérification de l'environnement :
Windows : echo %ORACLE_SID%
Linux : echo $ORACLE_SID
Connexion administrative :
sqlplus / as sysdbaVérification du statut :
SELECT instance_name, host_name, status, startup_time FROM v$instance;
Apprenez à faire des recherches thématiques dans le dictionnaire :
Rechercher des vues sur les fichiers :
SELECT table_name, comments FROM dictionary WHERE table_name LIKE '%DATA_FILE%';
Consulter les limites de stockage :
COLUMN file_name FORMAT A50SELECT file_id, file_name, bytes/1024/1024 AS "Taille (Mo)" FROM dba_data_files;
Qui est connecté et avec quels droits ?
Identifier l'utilisateur actuel :
SELECT user, sys_context('USERENV', 'SID') AS session_id FROM dual;
Lister les privilèges système :
SELECT privilege, admin_option FROM user_sys_privs;
Création de connexion
Exploration visuelle
Rapports
Cette étape marque la transition entre la théorie architecturale et la pratique opérationnelle. La maîtrise de l'environnement repose sur la compréhension du lien entre le système d'exploitation, les outils clients et le dictionnaire de données.
L'accès à Oracle ne peut se faire sans une orientation correcte du système hôte. Les variables d'environnement servent de pont :
| Outil | Type | Usage principal |
|---|---|---|
| SQL*Plus | Ligne de commande | Administration lourde, scripts, démarrage/arrêt |
| SQL Developer | GUI | Développement PL/SQL, navigation visuelle, rapports |
| OEM (Enterprise Manager) | Web | Surveillance des performances, alertes, gestion globale |
C'est l'outil d'auto-description d'Oracle. Sa structure en trois niveaux (USER_, ALL_, DBA_) permet une sécurité granulaire :