Cours les bases de données concepts de base, tutoriel & guide de travaux pratiques en pdf.
Le ‘D.B.A’ ?
Un Administrateur de bases de données ?
D.B.A. = Data Base Administrator = Administrateur de bases de données. Il est responsable du bon fonctionnement des bases de données de l‘entreprise (bases de développement, test et production).Les tâches du DBA :
* Installer le logiciel, faire les mises à jour (patchs, changement de version du noyau mais aussi des autres produits),
* Créer les bases de données physiques et gérer l’espace physique,
* Gérer les utilisateurs et leurs droits d’accès,
* Valider les schémas de données (cohérence, non redondance, optimisation)
* créer les objets du schéma : tables, index, vues, …
* Assurer la sécurité de la base (sauvegarde, restauration, confidentialité d’accès),
* surveiller le système, gérer les ressources et optimiser les performances,
* Faire les transferts de données de et vers d’autres systèmes,
* contacter le support technique…ou Google
Son travail peut être assimilé à celui d’un responsable système, Oracle pouvant être perçu comme un ’sous’ système d’exploitation.
Les utilisateurs d’une base Oracle :
* le dba lui même
* le développeur d’application
* l’administrateur d’application
* les développeurs
* les administrateurs système (unix/linux, windows, etc.)
* le support technique Oracle
* le support technique interne
* l’administrateur sécurité (s’il existe)
et plus rarement …les utilisateurs
Les ‘privilèges’ DBA :
Un DBA pour pouvoir travailler doit posséder un certain niveau de privilèges
* au niveau OS
* au niveau de la base de données
Ils seront détaillés dans un autre chapitre…
Installation
Environnement système Oracle minimal
Au minimum et ce quel que soit le système d’exploitation, on doit positionner le répertoire de référence d’Oracle : ORACLE HOME DIRECTORY et le nom ou l’identificateur de l’instance sur laquelle on veut travailler : SID ORACLE.
Ceci est donné par 2 variables d’environnement : ORACLE_HOME et ORACLE_SID
Note : L’installation du logiciel se fait par défaut dans un répertoire normalisé compatible avec l’architecture flexible d’Oracle (ORACLE FLEXIBLE ARCHITECTURE ou OFA)
Sous windows : disque:\Oracle\product\<no_version>\db_n
Variables d’environnement système Unix / Linux Oracle
Pour vérifier les variables positionnées dans l’environnement courant :
$> env|grep ORA
Pour positionner les variables d’environnement utiles :
$> export ORACLE_HOME = /oracle
$> export ORACLE_SID = TEST
$> $ORACLE_HOME/bin/sqlplus scott/tiger
Remarque : EXPORT est obligatoire si l’on veut que ces variables soient aussi accessibles aux process fils du process courant, ce qui peut être utile quand on lance une commande SHELL comme ’sqlplus’ puisque cela déclenche…un process fils !
Variables d’environnement système Windows / Oracle
Lors de l’installation d’Oracle 10g ou 11g, la base de registre Windows est normalement mise à jour et permet de se connecter à la base par défaut sans préciser de variables d’environnement.
Les variables de configuration d’Oracle sont visibles par ‘regedit’ dans la clé :
HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE / KEY_<ORACLE_HOME>
On peut éventuellement positionner des variables le temps d’une session :
<ORACLE_HOME> ayant la valeur de la home directory d’Oracle choisie lors de l’install…
C:>SET ORACLE_HOME = /oracle
C:> SET export ORACLE_SID = TEST
C:> $ORACLE_HOME/bin/sqlplus scott/tiger
Note : la base de registre est normalement mise à jour à l’installation d’Oracle 10g et permet de se connecter à la base par défaut sans préciser ces variables d’environnement.
Attention ! Certains outils Oracle comme ‘emctl’ par exemple ont parfois besoin d’avoir le ORACLE_SID défini dans l’environnement en plus d’être défini dans le registre dans la sous clé ‘Oracle’
Rappel sur les variables d’environnement WINDOWS :
Il y a les variables ‘User’ connues uniquement du user courant, et les variables ’systèmes’ connues de tous les utilisateurs.
Les variables USER sont initialisées ou consultées
* automatiquement au démarrage de ) Windows (Windows récupère les valeurs définies dans la base de registre dans la clé : HKEY_CURRENT_USER / Environment
* manuellement en utilisant les ‘propriétés’ du poste de travail (clic droit sur poste de travail / Propriétés /Avancées / Variables d’environnement
Les variables système peuvent être initialisées (ou consultées) de différentes manières
* automatiquement au démarrage de Windows (Windows récupère les valeurs définies dans la base de registre dans la clé : HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / SessionManager / Environment
* lors de l’installation de logiciels qui utilisent alors les fonctions de l’API Windows
* manuellement en utilisant les ‘propriétés’ du poste de travail (clic droit sur poste de travail / Propriétés /Avancées / Variables d’environnement
Que ce soit à travers la base de registre ou via les propriétés du poste de travail, les modifications sont pérennes ( ie après un reboot)
Par contre les variables qui seraient définies dans une fenêtre de commande par une commande SET (SET ORACLE_HOME=c: \oracle , par exemple ) ne durent pas au de la de la session.
Autres variables utiles
* le chemin d’exécution (PATH)
Pour plus de confort, on étendra la variable PATH courante pour accéder directement aux exécutables d’Oracle, qui se trouvent dans le sous répertoire BIN de la HOME DIRECTORY d’Oracle, sans spécifier de chemin absolu.
Sous Unix : $> export PATH=$PATH:$ORACLE_HOME/bin
Sous Windows : C:> PATH = %PATH%;%ORACLE_HOME%BIN
*l’identificateur de terminal X (DISPLAY)
Sous Unix / Linux, cette variable est nécessaire pour pouvoir utiliser des outils graphiques.
L’installeur d’Oracle ou la console d’administration en sont des exemples vitaux!
$> export DISPLAY = @IP_terminal:0.0
Note : en cas de problème vérifier / positionner les autorisations d’accès au serveur X (commande xhost) et pour les distributions récentes de Linux, vérifier que le serveur X est en mode ‘listen’ !!
Fichier d’environnement Unix / Linux
Sous Unix, le script $ORACLE_HOME/bin/oranenv permet de positionner l’environnement de manière semi-automatique. Il suffit de renseigner la variable ORACLE_SID et le reste est mis en place par le script.
Par défaut une valeur de ORACLE_SID est demandée par le script, même si une valeur courante est déjà définie, sauf la la variable ‘ORAENV_ASK’ est positionnée à ‘NO’.
Installation Oracle 10g
Toutes les documentations officielles concernant Oracle 10g sont disponibles sur Oracle
Technical Netwoirk (OTN) ici :http://www.oracle.com/pls/db102/homepage
L’essentiel de l’installation d’Oracle 10g pour Windows XP est disponible ici dans le Oracle 10g
Quick installation guide for windows (format PDF)
L’essentiel de l’installation d’Oracle 10g pour Linux est disponible ici dans le Oracle 10g Quick
installation guide for windows (format PDF)
Une Installation réussie d’Oracle tient en 1 phrase:
– Vérifier et respecter strictement les pré-requis matériels (disque temporaire, disque d’installation, place pour la base à créer) et logiciels (compatibilité de l’OS, , librairies dynamiques et packages obligatoires).
Il est donc très important par exemple de vérifier la matrice de compatibilité fournie par Oracle, pour votre Linux et la 10g.
A priori la version recommandée est un ‘advanced Application Server’ de Redhat. Installer sous debian, Mandrake ou FEDORA est en pratique possible mais peut s’avérer délicat et nécessite une bonne maîtrise de Linux.
Outils d’administration
Console Enterprise Manager (em)
Oracle 10g est livré avec une console d’administration graphique : Oracle Enterprise Manager (OEM ou EM), accessible depuis un client léger, PC ou poste avec navigateur et TCP/IP.
Le port d’écoute par défaut est 5500, ou 1158 suivant les version
On peut vérifier cette information dans ORACLE_HOME/install/portlist.ini
exemple d’URL :
http://localhost:5500/em
Note : La base et le serveur Oracle Net (même en local!) doivent être démarrés, avant de lancer la console.
Note : lorsque la base ou le serveur Oracle Net n’est pas démarrée on obtient un écran général d’information d’OEM, qui indique la non disponibilité de la base, mais pas de fenêtre de login… OEM est attaché à une base particulière. On dit qu’elle fonctionne en STANDALONE, à la différence de consoles centralisées multibases comme Oracle Server Manager ou la GRID console.
OEM utilise cependant un référentiel dans la base, à travers 2 schémas SYSMAN et DBSNMP.