Dba 1
Dba 1
Dba 1
DATABASE
ADMINISTRATIO
I
N
2
Manipuler
Gérer
Operations Manuellement
Langages (SQL…) SGBD
INFORMATIO
N
Les politiques de
protection des
données
Sauvegarde, Site de
secours, réplication,
Clouding…
Protéger
Chiffrement,
Chiffrement sécurisation, lutte
Sauvegarde contre Cybercriminalité
PLSI
SMSI
4
Concepts d’une base de données
5
Concepts d’une base de données
Application bibliothèque
Programme 1
Description du fichier des Elèves
Edition du fichier Elèves
par ordre alpha
*2 Fichier Elèves
Programme 2
Description du fichier des Elèves
Mise à jour du fichier Elèves
via nom élève
SGF
6
7
Problèmes de sécurité
En cas de panne ou interruption de programme, aucune reprise, ni annulation des transaction, d’où
problème d’incohérence
Problème de confidentialité (plusieurs occurrence de données)
10
Concepts d’une base de données
Problèmes de maintenance
Réécriture totale du code lors du changement de la structure de données
Transposition des données depuis l’ancienne vers la nouvelle structure (fameux bug 2000)
Risque
Conclusion
SOLUTION
Regroupement et unicité des Administration unique Indépendance des programmes
données centralisée et données
Approche centralisée
PC Windows BD
Appli C
Elèves
Uvs
Appli Cobol Appli Java
Livres
Chambres
PC SGBD
NT
Description
BD
PC Linux
Terminaux
11
Concepts d’une base de données
Approche client/serveur
PC Windows BD
Description
BD
Appli C
PC Linux
12
13
Un peu d’historique
4ème
génération
3ème (1990 -
génération 1999)
1969 • SGBD
2ème • SGBD Orienté
génération relationnel Objet
1965 – 1970 (DB2, Oracle,
Informix,
• (modèle
1ère MsAccess)
hiérarchique)
génération • SQL
• (modèle
1950 - 1965
• SGF(Systèmes de
réseau)
Gestion de Fichiers)
14
Définition d’une BD
Exemples de SGBD
Les SGBD commerciaux les plus connus sont :Oracle, Sybase, Ingres, Informix et DB2
• Oracle est un SGBD relationnel (et relationnel-objet dans ses dernières versions) très
reconnu pour les applications professionnelles.
• PostgreSQL est un SGBD relationnel et relationnel-objet très puissant qui offre une
alternative open source aux solutions commerciales comme Oracle ou IBM.
• MySQL est un SGBD relationnel libre (licence GPL et commerciale), simple d'accès et très
utilisé pour la réalisation de sites Web dynamiques. Depuis la version 4 MySQL implémente
la plupart des fonctions attendues d'un SGBD relationnel.
• Access est un SGBD relationnel Microsoft, qui offre une interface graphique permettant de
concevoir rapidement des applications de petite envergure ou de réaliser des prototypes
Caractéristiques du
17
SGBD
• Indépendance physique : le niveau physique peut être modifié indépendamment du
niveau conceptuel. Cela signifie que tous les aspects matériels de la base de données
n'apparaissent pas pour l'utilisateur, il s'agit simplement d'une structure transparente de
représentation des informations
• Indépendance logique : le niveau conceptuel doit pouvoir être modifié sans remettre en
cause le niveau physique, c'est-à-dire que l'administrateur de la base doit pouvoir la faire
évoluer sans que cela gêne les utilisateurs
• Manipulabilité : des personnes ne connaissant pas la base de données doivent être
capables de décrire leur requête sans faire référence à des éléments techniques de la
base de données
• Rapidité des accès : le système doit pouvoir fournir les réponses aux requêtes le plus
rapidement possible, cela implique des algorithmes de recherche rapides
• Administration centralisée : le SGBD doit permettre à l'administrateur de pouvoir
manipuler les données, insérer des éléments, vérifier son intégrité de façon centralisée
• Limitation de la redondance : le SGBD doit pouvoir éviter dans la mesure du possible
des informations redondantes, afin d'éviter d'une part un gaspillage d'espace mémoire
mais aussi des erreurs
• Vérification de l'intégrité : les données doivent être cohérentes entre elles, de plus
lorsque des éléments font référence à d'autres, ces derniers doivent être présents
• Partageabilité des données : le SGBD doit permettre l'accès simultané à la base de
données par plusieurs utilisateurs
Caractéristiques du
18
SGBD
• Sécurité des données : le SGBD doit présenter des mécanismes permettant de gérer les
droits d'accès aux données selon les utilisateurs
• Disponibilité : Un SGBDR se doit d’offrir une bonne disponibilité des données. Une disponibilité
totale des données est possible (temps de reprise nul) il suffit de s’en donner les moyens logiciels et
matériels…
• Fiabilité: Des mécanismes de sauvegarde varies (physique, logique, offline, online, totale, partielle,
incrémentale), ainsi que des mécanismes de journalisation, et de reprise permettent de restaurer
une information sans pratiquement aucune perte, dans tous les cas de problème matériel ou logiciel.
• Confidentialité : Tout n’est pas accessible a tout le monde! Se connecter a la base de données,
donne un certain nombre de droits et de ressources en fonction d’un profil défini et maintenu par un
administrateur. La granularité d’accès peut aller jusqu’a la vision unique d’un champ d’un
enregistrement d’une table particulière. Encore une fois on ne manipule plus des fichiers…
• Cohérence : Que les données soient reparties ou non –dans ce dernier cas les mécanismes mis en
jeux seront plus complexes– elles doivent être cohérentes. Cela sous entend, d’une part que les
accès concurrents d’utilisateurs, notamment lors de mises a jour, ne doivent pas compromettre
l’intégrité des données et d’autre part que ces dernières satisfassent aux contraintes d’intégrité du
modèle, mais aussi aux règles de gestion de l’entreprise.
La base de données, à l’instar d’un programme classique s’inscrit dans un cycle de vie, et
différentes occurrences de la base permettent de ‘coller’ aux différentes phases du projet.
On distingue principalement :
• les tests, avec une base de test ou de pré production (Base n°2) qui permettra outre de
tester les programmes de manière approfondie, de tester la montée en charge et les
performances en terme de volume de données, et de concurrence d’accès
Le DBA sera fréquemment amène a transférer des données d’une base a une autre :
• de la base de développement a la base de Test, pour effectuer les dits tests. Un ensemble de données
cohérentes (jeu d’essai) est alors nécessaire, ce qui n’est pas toujours facile a obtenir vu la complexité
croissante des applications et peut nécessiter des outils spécifiques d’extraction de données
• de la base de production vers la base de test ou de développement, pour être sur d’avoir des données
cohérentes et pertinentes (puisque réelles).
• Ce dernier transfert de données est VIVEMENT déconseillé, d’abord parce qu’il manipule des volumes
de données inutiles (la totalité des données réelles) et ensuite car il offre d’importantes failles de
sécurité, les systèmes de test et de développement étant par définition moins protégés que les
systèmes en production…
• le passage de la base de test a la base de production, nécessite de réinitialiser la base, avec les scripts
SQL originaux (création et chargement initial). Le passage au serveur réel peut s’avérer délicat et
contraignant (environnement matériel et logiciel diffèrent).
21
Les types d’architectures
Architectures locales et reparties
Architecture locale
Architecture client/serveur : client lourd. Le PC communique avec le serveur
de données sur un serveur distant, via le réseau, et la couche Oracle Net.
Architecture 3 tiers : Pas de programme client. Un navigateur suffit sur le
poste de travail (dit alors ‘client léger’). Il dialogue avec le serveur de données
distant via http.
Comment
22
choisir ?
Comparaison Oracle, MySql, PostgreSql
rapidité petites Bases
100%
80%
60%
Sandard rapidité grandes Bases
40%
20%
Oracle
0% MySql
Postgresql
Sécurité
sécuritédes
desdonnées
données
Qu’est ce qu’est une base de
23
données
Définition générale
« Une base de données (son abréviation est BD, en anglais DB), est
une entité dans laquelle il est possible de stocker des données de façon
structurée et avec le moins de redondance possible. Ces données
doivent pouvoir être utilisées par des programmes, par des utilisateurs
différents »
CHAPITRE 1
COMPOSANTS DE
L'ARCHITECTURE ORACLE
28
Principaux composants de l’architecture Oracle
29
L’architecture Oracle
L’architecture oracle est constituée d’une instance et d’une base de données
appelée database.
Une instance est constituée :
D’une zone de mémoire partagée appelée System Global Area (SGA);
D’un ensemble de processus d’arrière plan ayant chacun un rôle bien
précis;
D’un ensemble de processus serveur chargés de traiter les requêtes
des utilisateurs
Une base de données est constituée de :
• Un fichier de contrôle, contenant les informations sur tous les autres
fichiers de la base (nom,emplacement, taille).
• Fichiers de Redo Log, contenant l’activité des sessions connectées à
la base. Ce sont des journaux de transactions de la base. Ils sont
organisés en groupe possédant le même nombre de membres.
• Et éventuellement, de fichiers de Redo Log archivés contenant les
archives d’anciens fichiers de Redo Log.
• D’un ou plusieurs fichiers de données qui contiennent les données des
tables de la base.
30
Le serveur Oracle
Un serveur Oracle :
• est un SGBD qui gère de façon
fiable (sécurité + cohérente +
récupération après incident) Serveur Oracle
un “listener” SQL*Net est obligatoire, même si le client est situe sur la même
machine que le serveur. On sera alors en pseudo accès distant.
32
Configuration en serveur dédié
En architecture standard Oracle, un processus serveur (shadow process) est dédié a
chaque session cliente. En clair il y a autant de processus sur le serveur que de clients
connectes.
C’est donc le mode par défaut. Il est satisfaisant dans la plupart des cas, hormis
lorsque le nombre d’utilisateurs connectes simultanément (sessions) est très
important. Dans ce cas il sera peut être intéressant de passer en architecture partagée
pour diminuer le nombre de processus sur le serveur…
33
Configuration en serveur partagé
L’architecture clients / serveurs partages (shared servers), baptisée ‘Multithread’
dans les précédentes versions d’Oracle permet de ne pas dédier un processus
serveur à chaque demande d’ouverture de session d’un client. Un ou plusieurs
processus partagés pourront ainsi supporter un grand nombre de connexions
simultanées, sans augmenter linéairement le nombre de processus serveurs.
34
Configuration en serveur partagé (2)
Les processus en architecture serveur partagé
Il faut au minimum 3 processus pour que ca marche :
une répartition de la
charge ou d’introduire
de la redondance, pour
pallier a des
problèmes éventuels
de panne de CPU…
38
Configuration BD
39
La structure de mémoire
La structure mémoire d'Oracle est constituée des deux zones
de mémoire suivantes :
la mémoire SGA,
• Allouée au démarrage de l'instance et qui est une composante fondamentale
d'une instance Oracle;
• C’est le moyen de communication le plus rapide et le plus efficace pour les
processus;
• Partagée;
• structure est donc accessible par tous les processus utilisateurs et serveur.
la mémoire PGA
• Allouée au démarrage du processus serveur;
• Emplacement en mémoire dédié à un processus serveur
• Non partagée
• Contient les informations du processus pour lequel elle a été créé (variable de
session, tableau etc. etc .
40
La SGA
Library Cache
Texte de l'ordre SQL
Sa version analysée
Son plan d‘exécution
Dictionnary Cache
Description des tables
Droits des utilisateurs
Le library cache est utilisé pour stocker les ordres SQL et les blocs
PL/SQL à partager entre utilisateurs, ce dernier est géré par un
algorithme LRU (Least Recently Used).
Lors d’une requête identique, mais seulement la valeur qui diffère, une seule
Shared SQL Area est allouée. Les ordres SQL peuvent partager une zone SQL
partagée en utilisant du code générique et des bind variables plutôt que des
constantes. (nom de variable au lieu de sa valeur)
Pour savoir si un ordre est déjà mis en cache, le serveur Oracle :
réduit l'ordre à la valeur numérique du texte ASCII
utilise une fonction hash de ce chiffre
47
Shared Pool Area (SPA)
Requêtes identiques
si une application fait un appel d'analyse pour un ordre SQL alors que la
représentation analysée de l'ordre n'existe pas dans une zone SQL
partagée du library cache, le serveur Oracle analyse l'ordre et alloue une
zone SQL partagée. Les ordres SQL peuvent partager une zone SQL
partagée en utilisant du code générique et des bind variables plutôt que
des constantes.
si une application fait un appel d'exécution pour un ordre SQL alors que la
zone SQL partagée concernant la représentation analysée de l'ordre a été
libérée du library cache pour faire place à un autre ordre, le serveur
Oracle analyse de nouveau l'ordre implicitement, lui alloue une nouvelle
zone SQL partagée et l'exécute. Il faut réduire les absences de données
dans le library cache lors d'un appel d'exécution en allouant plus de
mémoire au library cache.
si l'objet d'un schéma est référencé dans un ordre SQL et qu'on le modifie
par la suite, la zone SQL partagée devient invalide.
52
Library cache : Optimisation
La base de données est l’ensemble des fichiers qui permettent de gérer les
données stockées dans de la base de données.
Une base de données est constituée de :
Un fichier de paramètres binaire SPFILE<SID>.ORA, contenant les paramètres
de démarrage de l’instance et d’autres valeurs qui déterminent l’environnement
dans lequel elle s’exécute -- Créé à partir d’un fichier de paramètres caractère
(INIT<SID>.ora)
Un fichier de contrôle, contenant les informations sur tous les autres fichiers de la
base (nom, emplacement, taille).
Organisation de stockage
Les fichiers sont découpés en blocs Oracle
Un bloc Oracle est un multiple du bloc système
5 tailles de blocs possibles ( 2,4,8,16 et 32Ko )
Depuis la 9i Oracle peut utiliser plusieurs tailles de blocs
La taille du bloc standard est fixe par le paramètre DB_BLOCK_SIZE et
ne peut être modifie après création de la base.
Le bloc est la plus petite unité d'entrée/sortie de Oracle.
La notion de bloc est fondamentale et se retrouve partout dans Oracle.
Un ensemble de blocs contigus forme un extent
Un ensemble d'extent forme un segment
4 types de segments
table
index
annulation( undo ) → ordre ROLLBACK
temporaire → tri, clause order by, group by...
Un segment appartient a un tablespace
64
Notions de tablespace
Lorsqu’un segment est créé dans un tablespace, Oracle lui alloue un premier
extent dans un des fichiers du tablespace. Lorsque ce premier extent est plein,
Oracle alloue un deuxième extent au segment et ainsi de suite.
66
Stockage des données
Lorsqu’un segment est créé dans un tablespace, Oracle lui alloue un premier extent dans
un des fichiers du tablespace. Lorsque ce premier extent est plein, Oracle alloue un
deuxième extent au segment, mais pas forcément côte à côte ni forcément dans le même
fichier. Lorsqu’un segment est supprimé, les extents qu’il occupe sont libérés et rendus
disponibles pour d’autres segments.
67
Le fichier de contrôle
Lorsqu’une instance est lancée pour ouvrir une base de données, le fichier
de contrôle est le premier fichier ouvert, il permet ensuite à l’instance de
localiser et d’ouvrir les autres fichiers de la base de données. Si on perd le
fichier de control, la base de données reste à l’état NOMOUNT, et ne
pourra pas s’ouvrir.
Il s'agit d'un petit fichier binaire.
Il définit l'état actuel de la base de données physique.
Il assure l'intégrité de la base de données.
Il est requis :
lors de l'étape MOUNT lors du démarrage de la base de
données,
pour le fonctionnement de la base de données.
Il est lié à une seule base de données.
Protéger les fichiers de contrôle est une opération simple. En plus ce sont de
petits fichiers, donc on peut en avoir plusieurs copies sans problème.
70
Multiplexer le fichier de contrôle
1. Modifiez le SPFILE :
ALTER SYSTEM SET control_files =
'$HOME/ORADATA/u01/ctrl01.ctl',
'$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;
2. Arrêtez la base de données
shutdown immediate
3. Créez des fichiers de contrôle supplémentaires :
copy $HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl
4. Démarrez la base de données :
startup
71
Multiplexer le fichier de contrôle
1. Modifiez le SPFILE :
ALTER SYSTEM SET control_files =
'$HOME/ORADATA/u01/ctrl01.ctl',
'$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;
2. Arrêtez la base de données
shutdown immediate
3. Créez des fichiers de contrôle supplémentaires :
copy $HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl
4. Démarrez la base de données :
startup
72
Les fichiers Redo log
REDOLOG ou aussi fichiers de journalisation :
Enregistrent l'ensemble des modifications de la BD Ordres :DML.
Utilisés suite à un arrêt anormal ou récupération suite à la perte d'un fichier de
données
Organisés en groupe, composés de membres
Minimum deux groupes de un membre
Ecriture circulaire → informations périodiquement écrasées
Conservation possible en activant le mode ARCHIVELOG de la BD ( optionnel ).
Utilise une zone de la SGA ( redolog buffer ) et un processus dédié ( LGWR )
Le passage d'un groupe a l'autre est appelé switch et peut être force par la
commande alter system switch logfile
73
Les fichiers Redo log
Principe de l‘ARCHIVOLOG
Les entrées de journalisation sont écrites par le processus LGWR dans l'un
des groupes de fichiers de journalisation, appelé groupe de fichiers de
journalisation en cours, dans les cas suivants :
• lorsqu'une transaction est validée,
• lorsqu'un tiers du tampon de journalisation est occupé,
• lorsque le tampon de journalisation contient plus d'un mégaoctet
d'enregistrements modifiés,
• avant que le processus DBWn n'écrive les blocs modifiés du cache de
tampons (buffer cache) de la base de données dans les fichiers de données.
Une copie du redolog est effectuée dès que celui-ci est rempli au moment du
passage vers un autre groupe.
Inconvénient du mode archivelog est la génération d'un volume important sur les
disques.
74
Les fichiers Redo log
Principe de restauration
PROCESSUS
D’ARRIERE
PLAN
76
Processus d’arrière plan
Le nom des processus est normalise sur 4 caractères ( plus pour les
processus en multi-lancement ). Les processus standards sont les
suivants :
• ● DBWn
• ● LGWR
• ● CKPT
• ● SMON
• ● PMON
• ● CJQn
• ● ARCn ( optionnel )
77
Processus database writer (DBWn)
Chargé d'écrire les blocs modifiés du Database Buffer Cache dans les fichiers de
données.
Sur les systèmes multiprocesseurs à forte activité => plusieurs en parallèle (maxi 20)
L'écriture est déclenche par un des évènements suivants :
point de reprise
seuil des tampons "dirty" atteint
aucune mémoire tampon disponible
temps imparti dépassé
Un fichier ne contient pas les données commitées, Si le Database Buffer Cache est
trop petit et que le commit tarde, les données non validées peuvent être écrites dans
les fichiers.
En cas de plantage à cet instant ?
En cas d'arrêt anormal, ce point marque le début des données à utiliser pour récupérer
l'instance.
Un point de reprise peut être force par la commande alter system checkpoint.
Les points de reprise sont mis en œuvre pour les raisons suivantes :
Pour garantir que les blocs de données modifiés qui se trouvent en mémoire sont
régulièrement écrits sur disque afin d'éviter une perte des données en cas de panne
du système ou de la base de données.
Pour réduire le temps de récupération d'une instance. Seules les entrées de
journalisation postérieures au dernier point de reprise doivent être traitées.
Pour garantir que toutes les données validées ont été écrites dans les fichiers de
données lors de l'arrêt.
80
Processus SMON (System Monitor)
CHAPITRE 2
Ils peuvent être modifiés pour une session, par la commande alter session set , dans
ce cas la clause scope n'est pas précisé et seuls les paramètres modifiables a chaud
peuvent être utilises.
SPFILE = /database/startup/spfileDBA1.ora
Si vous indiquez un fichier PFILE, le fichier SPFILE par défaut n'est pas
utilisé pour démarrer l'instance.
Un fichier PFILE peut éventuellement contenir une définition précisant
qu'un SPFILE doit être utilisé.
Exemple : SPFILE=$HOME/ADMIN/PFILE/$ORACLE_SID.ora.
94
Le fichier de paramètres
Exemple de modification des paramètres à chaud
Pour faire passer la base de données du statut NOMOUNT à MOUNT ou du statut MOUNT à
OPEN, exécutez la commande ALTER DATABASE :
ALTER DATABASE { MOUNT | OPEN }
Vous pouvez ouvrir la base de données en mode lecture seule pour éviter que des
transactions utilisateur ne modifient des données.
ALTER DATABASE OPEN [READ WRITE| READ ONLY]
Une session en mode restreint s'avère utile, par exemple, lors de la mise à jour
des structures ou de l'import/export d'une base de données. la base de
données est démarrée en mode restreint pour qu'elle ne soit accessible qu'aux
utilisateurs disposant du privilège RESTRICTED SESSION.
On peut utiliser la commande ALTER SYSTEM pour placer une instance en
mode d'accès restreint :
Après avoir placé une instance en mode d'accès restreint, il faut fermer
toutes les sessions utilisateur actives avant d'effectuer des tâches
administratives :
• Mode d'arrêt :
• A = ABORT
• I = IMMEDIATE
• T = TRANSACTIONAL
• N = NORMAL
la base de données doit être arrêtée pour effectuer la sauvegarde hors ligne de
toutes les structures physiques via le système d'exploitation et pour que les
modifications appliquées aux paramètres d'initialisation statiques soient effectives
au redémarrage.
CHAPITRE 3
Notion de schéma
Objets de schéma
• Un schéma est un ensemble Tables
nommé d'objets. Déclencheurs
• Lorsqu'un utilisateur est créé, Contraintes
un schéma correspondant est Index
également créé. Vues
• Un utilisateur ne peut être Séquences
associé qu'à un seul schéma. Programmes stockés
• Le nom utilisateur et le nom de Synonymes
schéma sont souvent utilisés Types de données définis par
l'utilisateur
indifféremment
Liens de base de données
11
Gérer les utilisateurs 6
Mécanisme d'authentification
Trois méthodes permettent d'authentifier un utilisateur qui souhaite
accéder à la base de données :
Par le dictionnaire de données
Par le système d'exploitation
Par le réseau
11
Gérer les utilisateurs 7
BY password indique que l'utilisateur est authentifié par la base de données et qu'il doit
fournir un mot de passe pour se connecter.
EXTERNALLY indique que l'utilisateur est authentifié par le système d'exploitation.
GLOBALLY AS indique que l'utilisateur est authentifié de façon globale.
DEFAULT TABLESPACE ou TEMPORARY TABLESPACE désigne le tablespace par défaut
ou le tablespace temporaire de l'utilisateur.
QUOTA définit l'espace maximum alloué aux objets détenus par l'utilisateur dans le
tablespace (le quota peut être défini par un entier représentant des octets ou des kilo-
octets et des mégaoctets
11
Gérer les utilisateurs 8
Le mot-clé UNLIMITED permet d'indiquer que les objets détenus par l'utilisateur peuvent
utiliser l'ensemble de l'espace disponible du tablespace. Par défaut, aucun quota de
tablespace n'est affecté aux utilisateurs).
PASSWORD EXPIRE force l'utilisateur à réinitialiser le mot de passe lorsqu'il se connecte
à la base de données à l'aide de SQL*Plus (cette option n'est valide que si l'utilisateur est
authentifié par la base de données).
ACCOUNT LOCK/UNLOCK permet de verrouiller ou de déverrouiller explicitement le
compte de l'utilisateur (la valeur par défaut est UNLOCK).
PROFILE permet de contrôler l'utilisation des ressources et de définir le mécanisme de
contrôle par mot de passe à appliquer à l'utilisateur.
11
Gérer les utilisateurs 9
Supprimer un utilisateur
Les rôles
Un rôle (role) est un ensemble nommé de privilèges (système ou objets).
Un rôle est accordé à un ou plusieurs utilisateurs, voire à tous (utilisation de
PUBLIC). Ce mécanisme facilite la gestion des privilèges.
Un rôle peut être aussi attribué à un autre rôle pour transmettre davantage
de droits.
La chronologie des actions à entreprendre pour travailler avec des rôles est la
suivante :
créer le rôle (CREATE ROLE) ;
l’alimenter de privilèges système ou objets par GRANT ;
l’attribuer par GRANT à des utilisateurs (voire à tous avec PUBLIC), ou à
d’autres rôles ;
lui ajouter éventuellement de nouveaux privilèges système ou objets par
GRANT
13
Gérer les utilisateurs 1
• NOT IDENTIFIED indique que l’utilisation de ce rôle est autorisée sans mot
de passe.
• IDENTIFIED signale que l’utilisateur doit être autorisé par une méthode
(locale par un mot de passe, externe à Oracle et globale par un service
d’annuaire)
13
Gestion des privilèges et des rôles 3
1 - Création de rôles
2 - Alimentation des rôles par des
CREATE ROLE consult privilèges
NOT IDENTIFIED; GRANT SELECT
CREATE ROLE modif ON HR.employees
NOT IDENTIFIED; TO consult;
CREATE ROLE tout_faire GRANT SELECT
NOT IDENTIFIED; ON MICDA1.classe
TO consult;
GRANT UPDATE (id,nom)
ON MICDA1.classe
3 - Affectation des rôles à des TO modif;
utilisateurs
GRANT consult, modif
GRANT consult
TO tout_faire ;
TO MICDA1;
GRANT tout_faire
TO HR;
13
Gestion des privilèges et des rôles 4
REVOKE SELECT
ON HR.employees Révocation d’un privilège d’un rôle
FROM consult;
REVOKE consult
From MICDA1; Révocation d’un rôle d’un utilisateur
REVOKE modif
FROM tout_faire; Révocation d’un rôle d’un rôle
13
Gestion des privilèges et des rôles 6
SET ROLE
{ nomRôle [IDENTIFIED BY motdePasse] [,nomRôle [IDENTIFIED BY
motdePasse]]…
| ALL [EXCEPT nomRôle [,nomRôle]…]
| NONE } ;
• ALL active tous les rôles accordés à l’utilisateur qui exécute la commande.
• NONE désactive tous les rôles dans la session courante
Données et index
Les tables
exemple
SQL> CREATE TABLE salaires
( no_emp NUMBER , salaire NUMBER)
TABLESPACE USERS
STORAGE (INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS 25
PCTINCREASE 0)
13
Les objets d’un schéma 9
Les clusters
Les clusters sont des segments spéciaux qui contiennent plusieurs tables
fusionnées, suivant en général une colonne de jointure.
On peut les voir comme des jointures physiques.
Les index
Remarque
un index n’est efficace que si la colonne indexée est utilisée dans la clause
WHERE d’un SELECT !!
un index peut ne pas être unique. Une clé primaire dans une table est
représentée sous forme d’index unique par Oracle.
14
Les objets d’un schéma 0
en dehors de la période 8H $ 17H le prédicat est faux et la vue ne renvoie aucune données
!
14
Les objets d’un schéma 1
synonymes
Un synonyme est un nom logique (un alias) référençant un objet d’un schéma.
Un synonyme peut être privé (visible seulement dans le schéma du propriétaire) ou public
(visibles par tous).
CREATE SYNONYM S_countries FOR hr.countries;
Séquence
Une séquence est un compteur programmable stocké en mémoire par Oracle et utilisable
de manière partagé.
Il est en général utilisé pour fournir des numéro de clé d’enregistrements.
CHAPITRE 4
Configuration minimale
au moins 2 groupes avec au moins un fichier chacun
sans multiplexage
Rappel
Serveur Oracle enregistre séquentiellement toutes les
modifications dans le buffer de reprise circulaire de la SGA
Transfert du buffer vers le groupe courant de reprise par
LGWR
quand un commit est exécuté
quand le buffer est rempli au 1/3
lors d'un délai d'attente du LGWR (3s)
avant que DBWR n'écrive les blocs modifiés du buffer cache de données
dans les fichiers de données
LGWR écrit séquentiellement dans les fichiers de reprise
organisation circulaire des groupes
quand un groupe est plein, on passe au suivant
14
Les Fichiers de Reprise (Redo-Log) 6
• Ajout d'un membre dans un groupe connaissant son Numéro ou le nom d'un
fichier
• Exemples
v$logfile : table contenant les noms des fichiers Redo Log et leur état.
Exercice 1
1. Parmi les affirmations suivantes, déterminez laquelle est vraie.
a) Un serveur Oracle est un ensemble de données composé de trois types de fichier.
b) Pour établir une connexion avec la base de données, l'utilisateur doit démarrer une instance
Oracle.
c) Une connexion est un chemin de communication entre le serveur Oracle et l'instance Oracle.
d) Une session démarre une fois que le serveur Oracle a authentifié l'utilisateur.
2. Parmi les zones mémoire suivantes, laquelle ne fait pas partie de la mémoire SGA ?
a) le cache de tampons de la base de données,
b) la mémoire PGA,
c) le tampon de journalisation,
d) la zone de mémoire partagée.
4. Parmi les zones mémoire suivantes, laquelle permet de mettre en mémoire cache
les
informations du dictionnaire de données ?
a) le cache de tampons de la base de données,
b) la mémoire PGA,
c) le tampon de journalisation,
d) la zone de mémoire partagée.
5. La tâche principale du tampon de journalisation consiste à enregistrer toutes les
modifications apportées aux blocs de données de la base.
a) Vrai
b) Faux
6. La mémoire PGA est une région de la mémoire qui contient les données et les
informations de contrôle de plusieurs processus serveur ou de plusieurs
processus
d'arrière-plan.
a) Vrai
b) Faux
7. Parmi les processus suivants, lequel ou lesquels sont disponibles au démarrage
d'une instance Oracle ?
a) le processus utilisateur,
b) le processus serveur,
c) les processus d'arrière-plan.
15
Composants de l'architecture Oracle 9
Exercice
1. Connectez-vous à la base de données en tant qu' utilisateur SYS, puis arrêtez la base.
2. Une fois la base de données arrêtée, créez un fichier SPFILE à partir d'un fichier
PFILE.
Placez le fichier SPFILE dans le répertoire $HOME/ADMIN/PFILE en lui
affectant un nom au format spfileSID.ora (où SID correspond au nom de votre
instance).
Créez le fichier SPFILE à partir du fichier PFILE qui se trouve dans le répertoire
$HOME/ADMIN/PFILE.
3. Affichez le fichier SPFILE depuis le système d'exploitation
4. Connectez-vous en tant qu'utilisateur SYS, puis démarrez la base de données à l'aide
du fichier SPFILE.
5. a Arrêtez la base de données, puis ouvrez-la en mode lecture seule.
b Connectez-vous en tant qu'utilisateur HR avec le mot de passe HR, puis
insérez une ligne dans la table REGIONS en utilisant la syntaxe
suivante :
INSERT INTO regions VALUES (5, ‘Mars’);
Que se passe-t-il ?
c Réaffectez à la base de données le mode lecture-écriture.
16
Gérer l’instance d’oracle 1
Exercice
1. Répertoriez le nombre et l'emplacement des fichiers journaux existants et affichez le
nombre de groupes de fichiers de journalisation et de membres que contient votre base
de données.
• Interrogez la vue dynamique V$LOGFILE.
• Utilisez la vue dynamique V$LOG.
2. Dans quel mode la base de données est-elle configurée ? L'archivage est-il activé ?
• Interrogez la vue dynamique des performances V$DATABASE.
• Interrogez la vue dynamique des performances V$INSTANCE.
3. En respectant les conventions d'appellation suivantes, ajoutez un membre à chaque
groupe de fichiers de journalisation de la base de données stockée sur u04 :
Ajoutez un membre au groupe 1 : log01b.rdo
Ajoutez un membre au groupe 2 : log02b.rdo
Vérifiez le résultat obtenu.
• Exécutez la commande ALTER DATABASE ADD LOGFILE MEMBER pour
ajouter un membre à chaque groupe de fichiers de journalisation.
• Interrogez la vue dynamique des performances V$LOGFILE pour vérifier le
résultat.
16
Gérer les redo logs 3
Exercice
1. Créez des tablespaces permanents associés aux noms et aux paramètres de
stockage suivants :
a DATA01, géré localement
b DATA02, géré localement avec des extents de taille uniforme
c INDX01, géré localement avec des extents d'une taille uniforme de 4 Ko
(activez l'extension automatique de 500 Ko).
d RONLY
e Affichez les informations à partir du dictionnaire de données.
Indice : Pour obtenir des informations sur les tablespaces, utilisez l'une des
interrogations suivantes :
- DBA_TABLESPACES
- V$TABLESPACE
- V$DATAFILE.
1. Exercice
2. Tentez de démarrer la base de données sans fichier de contrôle. Pour simuler cette
opération, modifiez le nom du fichier de contrôle dans le fichier de paramètres
ou
renommez le fichier de contrôle. Que se passe-t-il ?
16
Gérer les fichiers de contrôle 8
4. Quelle est la taille initiale de la section relative aux fichiers de données dans le fichier
de contrôle ?
- Interrogez la vue dynamique des performances
16
Gérer les users et privilèges 9
Exercice
1. Créez l'utilisateur Bob associé au mot de passe CRUSADER. Assurez-vous que les
objets et les segments temporaires créés par Bob ne sont pas ajoutés au
tablespace SYSTEM. Assurez-vous également que Bob peut se connecter et
créer dans les tablespaces USERS et INDX des objets dont la taille peut
atteindre un mégaoctet. Utilisez le script lab15_01.sql pour accorder à Bob le
droit de créer des sessions.
Affectez à Bob le tablespace par défaut USERS et le tablespace temporaire
TEMP.
2. Créez l'utilisateur Emi associé au mot de passe MARY. Assurez-vous que les objets et
les segments de tri créés par Emi ne sont pas ajoutés au tablespace SYSTEM.
6. Sous l'ID utilisateur SYSTEM, supprimez le quota de Bob sur son tablespace par
défaut.
8. Bob a oublié son mot de passe. Affectez-lui le mot de passe OLINK en vous
assurant
qu'il recevra une demande de modification de ce mot de passe lors de sa
prochaine
connexion.
MERC
I