Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée

Les outils d'administration

Introduction

Oracle propose plusieurs outils d’administration :

  • SQL*Plus : outil de base permettant d’éditer et d’exécuter des requêtes SQL.

  • Oracle Enterprise Manager Database Express : application Web, permettant d’administrer graphiquement une seule base de données.

  • Oracle Enterprise Manager Cloud Control : application Web, permettant d’administrer de manière centralisée plusieurs bases de données.

  • Oracle SQL Developer : application graphique permettant d’exécuter des requêtes ou des scripts SQL, de gérer les objets d’une base de données (tables, vues, etc.), de développer et mettre au point des programmes PL/SQL et d’effectuer quelques tâches d’administration.

  • Oracle SQL Developer Command Line (SQLcl) : outil en ligne de commande Java basé sur le moteur d’Oracle SQL Developer ; plus convivial et plus complet que SQL*Plus, tout en étant compatible avec ce dernier.

Oracle Enterprise Manager Cloud Control est une infrastructure d’administration composée d’un serveur d’application, d’un référentiel stocké dans une base de données Oracle et d’agents installés sur les différents nœuds administrés. Ce produit qui nécessite une installation séparée est intéressant pour...

SQL*Plus

1. Vue d’ensemble

Depuis la version 11, SQL*Plus est disponible uniquement en version ligne de commande. Les anciennes formes SQL*Plus Windows, SQL*Plus Worksheet et iSQL*Plus n’existent plus.

SQL*Plus permet de saisir et d’exécuter des ordres SQL ou du code PL/SQL et dispose en plus de plusieurs commandes, dont des commandes d’administration.

La connexion peut s’effectuer localement à l’instance définie par la variable d’environnement ORACLE_SID (section Installation du serveur du chapitre Installation) ou bien à travers le réseau à l’instance définie par un nom de service réseau ou une identification de connexion simplifiée (cf. section Configuration côté client du chapitre Oracle Net).

Pour la connexion à travers le réseau, le nom de service réseau ou l’identification de connexion simplifiée peuvent être indiqués lors du lancement de l’outil (voir ci-après) ou être définis dans une variable d’environnement :

  • TWO_TASK sur plate-forme Linux ou Unix ;

  • LOCAL sur plate-forme Windows (éventuellement dans la base de registre).

Exemple

$ export TWO_TASK=orcl 
$ export TWO_TASK=srvlinora:1521/orcl 
C:\>set LOCAL=orcl 
C:\>set LOCAL=srvwinora:1521/orcl 

La variable d’environnement TWO_TASK ou LOCAL est prioritaire sur la variable d’environnement ORACLE_SID.

SQL*Plus propose beaucoup de commandes souvent très utiles pour écrire des scripts d’administration. Pour plus d’informations, reportez-vous à la documentation SQL*Plus® User’s Guide and Reference.

2. Utilisation

a. Lancer SQL*Plus

La syntaxe pour lancer SQL*Plus en ligne de commande est la suivante :

sqlplus [ connexion | /NOLOG] [@fichier_script [argument [,...]]] 

Syntaxe de l’option connexion

[utilisateur]/[mot_de_passe][@service] [AS SYSDBA | AS SYSOPER | 
AS SYSBACKUP] 

Avec :

utilisateur

Nom de l’utilisateur Oracle.

mot de passe

Mot de passe de l’utilisateur.

service

Nom de service réseau ou identification de connexion simplifiée, utilisé(e) pour la connexion.

AS SYSDBA |  
AS SYSOPER |  
AS SYSBACKUP 

Demande une connexion SYSDBA, SYSOPER ou SYSBACKUP.

/NOLOG

Lance SQL*Plus sans établir de connexion.

fichier_script

Script à exécuter....

Oracle SQL Developer

Oracle SQL Developer est une application graphique permettant d’exécuter des requêtes ou des scripts SQL, de gérer les objets d’une base de données (tables, vues, etc.), de développer et mettre au point des programmes PL/SQL et d’effectuer de nombreuses tâches d’administration. Oracle SQL Developer est gratuit et peut être téléchargé directement sur le site Oracle. La page d’accueil d’Oracle SQL Developer se trouve à l’adresse suivante : https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html. Vous trouverez notamment à cette adresse la documentation et des tutoriels.

SQL Developer nécessite Java (version 1.8 update 171 au minimum pour la version 20.2 de l’outil). Sur plate-forme Windows 64 bits, il est possible de télécharger une version qui incorpore le JDK 8.

L’application peut être lancée à l’aide de l’exécutable sqldeveloper.exe sur plate-forme Windows ou à l’aide du script shell sqldeveloper.sh sur plate-forme Unix ou Linux ; tous les deux se trouvent dans le répertoire racine de SQL Developer.

Lors du premier lancement, si une JDK ne peut pas être trouvée, l’outil demandera l’emplacement de la JDK à utiliser ; il faudra alors indiquer le répertoire de la JDK...

Oracle SQL Developer Command Line (SQLcl)

Oracle SQL Developer Command Line (SQLcl) est un outil en ligne de commande Java basé sur le moteur d’Oracle SQL Developer. Il est plus convivial et plus complet que SQL*Plus, tout en étant compatible avec ce dernier. Les principaux avantages par rapport à SQL*Plus sont les suivants :

  • éditeur plus convivial ;

  • historique des requêtes ;

  • mise en forme du résultat (HTML, XML, JSON, etc.) ;

  • nombreuses commandes supplémentaires très intéressantes.

SQLcl est un produit gratuit, présent avec Oracle SQL Developer, mais qui peut être téléchargé séparément directement sur le site Oracle : https://www.oracle.com/database/technologies/appdev/sqlcl.html. Vous trouverez notamment à cette adresse la documentation et des tutoriels.

SQLcl est aussi installé par défaut avec le serveur Oracle ou le client Oracle et il se trouve dans le répertoire %ORACLE_HOME%\sqldeveloper\sqldeveloper\bin\ sur plate-forme Windows ou $ORACLE_HOME/sqldeveloper/sqldeveloper/bin/ sur plate-forme Linux ou Unix. La version installée n’est pas la plus récente (19.1) et il peut être intéressant de télécharger et installer la dernière version. 

Comme SQL Developer, SQLcl nécessite Java (version 1.8 au minimum pour la version 20.2 de l’outil, Java 9 et 10 ne sont pas encore supportés).

L’exécutable s’appelle sql et il se lance comme SQL*Plus, avec la même syntaxe.

Exemples

sql /nolog  
sql system/xy$78@orcl  
sql / as sysdba 
sql @info.sql  

Avec le script info.sql

CONNECT sys/ab$12@orcl AS SYSDBA 
SELECT name FROM v$database; 
EXIT 

La commande CONNECT a la même syntaxe que dans SQL*Plus.

Exemples

SQL> CONNECT /@orcl AS SYSDBA  
Connecté. 
SQL> CONNECT system/xy$78@srvlinora:1521/orcl  
Connecté. 

L’utilisation d’un nom de service réseau nécessite qu’un fichier tnsnames.ora soit accessible dans l’environnement :

  • par l’intermédiaire d’un...

Oracle Enterprise Manager Database Express

1. Introduction

Oracle Enterprise Manager Database Express est un outil d’administration graphique accessible par un navigateur : il est apparu en version 12c d’Oracle.

Lors de la création d’une base de données, Oracle vous propose d’administrer cette base de façon centralisée avec Oracle Enterprise Manager Cloud Control et/ou de façon locale avec Oracle Enterprise Manager Database Express.

Dans les versions précédentes (10g et 11g), Oracle proposait un autre outil, Oracle Enterprise Manager Database Control, version allégée du Cloud Control. Oracle Enterprise Manager Database Express, son successeur, est beaucoup plus simple et léger en matière d’architecture mais s’avère aussi beaucoup moins riche en fonctionnalités. Avec cette nouvelle console, vous pourrez configurer l’instance (paramètres d’initialisation, mémoire), gérer le stockage (tablespaces, fichiers de données, fichiers de journalisation), gérer la sécurité (utilisateurs, rôles, profils) et superviser les performances. Par contre, contrairement à la version précédente, vous ne pourrez pas utiliser cet outil pour arrêter ou démarrer la base de données, effectuer des sauvegardes ou des récupérations, gérer les objets des schémas, etc. C’est un peu dommage…

Dans la suite de cet ouvrage, nous utiliserons principalement les expressions « EM Express » ou « console Oracle Enterprise Manager » pour désigner l’outil Oracle Entreprise Manager Database Express.

2. Architecture

L’architecture d’EM Express est très simple puisque tout est stocké dans la base de données. EM Express est développé en PL/SQL et il s’appuie sur les fonctionnalités de XML DB pour fournir une interface Web. Pour fonctionner, EM Express nécessite que la base de données soit ouverte.

Lorsque la base de données est créée à l’aide de l’assistant graphique, le port 5500 est configuré par défaut pour la connexion HTTPS à la console ; si ce port n’est pas disponible...

La documentation Oracle

1. Où la trouver ?

La documentation Oracle est accessible en ligne à l’adresse suivante : https://docs.oracle.com/en/

À partir de cette page, vous pouvez naviguer vers la documentation d’Oracle Database 19c proprement dite, accessible à l’adresse suivante : https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html

2. Organisation

La documentation comporte plusieurs "livres" (format HTML ou PDF) regroupés par thème.

images/05RI13N19.png

La zone Search permet d’effectuer des recherches, notamment sur un numéro d’erreur Oracle.

Le lien Books affiche la liste de tous les livres.

Les livres les plus utiles pour l’administration sont les suivants :

Database Concepts

Concepts sur l’architecture et les fonctionnalités d’Oracle.

Database Administrator’s Guide

Manuel de l’administration.

Multitenant Administrator’s Guide

Manuel de l’administration de l’architecture Multitenant.

Database Security Guide

Gestion des utilisateurs et des droits.

Database Reference

Manuel de référence de tous les paramètres du fichier de paramètres et de toutes les vues du dictionnaire de données.

SQL Language Reference

Manuel de référence du SQL.

Database Error Messages

Manuel des erreurs.

Database Utilities

Manuel d’utilisation des outils Data Pump, Import, Export et SQL*Loader....

Diagnostiquer les problèmes

1. Vue d’ensemble

Depuis la version 11, Oracle inclut une nouvelle infrastructure pour le diagnostic des problèmes.

Le composant principal de cette infrastructure est le Référentiel de diagnostic automatique (Automatic Diagnostic Repository - ADR). ADR est un répertoire qui stocke de façon structurée et centralisée toutes les données de diagnostic, par exemple des fichiers de trace ou d’alerte.

Cette infrastructure introduit deux concepts : les problèmes et les incidents.

Un problème est une erreur critique de la base de données, comme les erreurs internes (ORA-00600), les erreurs du système d’exploitation (ORA-07445) ou le manque de mémoire dans la Shared Pool (ORA-04031). Chaque problème est identifié par une clé qui inclut le code de l’erreur (par exemple ORA-600) et éventuellement, des paramètres supplémentaires.

Un incident est une occurrence d’un problème. Chaque incident est identifié par un numéro d’incident. Lorsqu’un incident se produit, la base de données effectue les actions suivantes :

  • une entrée est écrite dans le fichier d’alerte de l’instance (voir ci-après) ;

  • une alerte est envoyée à Oracle Enterprise Manager ;

  • des informations de diagnostic sont capturées et enregistrées dans des fichiers d’incident qui sont marqués avec le numéro de l’incident et stockés dans un sous-répertoire du Référentiel de diagnostic automatique.

Un autre composant de la nouvelle infrastructure est le Health Monitor qui regroupe plusieurs outils de vérification de la bonne santé de la base de données. Ces outils de vérification sont exécutés automatiquement par Oracle lorsqu’une erreur critique se produit ; ils peuvent aussi être exécutés à la demande. Les résultats sont stockés dans le Référentiel de diagnostic automatique.

Pour exploiter le Référentiel de diagnostic automatique, Oracle propose deux outils :

  • La zone Incidents de la page d’accueil de la console EM Express (simple visualisation des incidents survenus dans les dernières 24 heures).

  • L’outil ligne...

Les tâches de maintenance automatisées

Trois tâches de maintenance automatisées sont programmées par défaut dans une base de données Oracle :

  • Collecte des statistiques pour l’optimiseur (voir le chapitre Gestion des tables et des index)

  • Conseil sur le stockage des segments (voir le chapitre Gestion des tables et des index) 

  • Conseil sur l’optimisation des requêtes SQL

Par défaut, ces tâches s’exécutent pendant des fenêtres de maintenance, du lundi au vendredi entre 22h00 et 2h00 ainsi que le samedi et le dimanche entre 6h00 et 2h00.

En version 11g, les tâches de maintenance automatisées pouvaient être supervisées dans le Database Control. Ce n’est plus le cas dans EM Express ; si besoin, pour les administrer, il faut utiliser les vues DBA_AUTOTASK_% et le package DBMS_AUTO_ TASK_ADMIN.

Exemple

-- Liste des tâches 
SQL> SELECT client_name,status FROM dba_autotask_client; 
CLIENT_NAME                     STATUS 
------------------------------- ------- 
auto optimizer stats collection ENABLED 
sql tuning advisor              ENABLED 
auto space advisor              ENABLED 
 
-- Planification 
SQL> SELECT window_name,window_next_time, 
  2    ...