Vous êtes sur la page 1sur 187

Cours d'administration de Base de Données

Cours d'administration de Base de


Données

Institut Supérieur des Études Technologiques de Médenine


Département: Technologie de l'Informatique

Année universitaire: 2015/2016


Cours d'administration de Base de Données 1
Cours d'administration de Base de Données

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 2


Cours d'administration de Base de Données

Introduction générale

Plan

1 Introduction générale
Notions de base
Les métiers autour des bases de données
La présentation d'Oracle

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 3


Cours d'administration de Base de Données

Introduction générale
Notions de base

Base de données
Une base de données (BD) est un ensemble struc-
turé de données persistantes, modélisant une partie
du monde réel, qui peut être partagé par plusieurs
applications, servant de support à une application
informatique et qui peut être interrogeable par le
contenu.
Une BD peut être :
locale : utilisable sur une machine par un
utilisateur
répartie : les informations sont stockées sur des
machines distantes et accessibles par réseau.
L'avantage majeur de l'utilisation de bases de don-
nées est la possibilité de pouvoir être accédées par
plusieurs utilisateurs simultanément.
Cours d'administration de Base de Données 4
Cours d'administration de Base de Données

Introduction générale
Notions de base

Système de Gestion de Base de Données

Le système de Gestion de Base de Données (SGBD)


est un logiciel qui permet de stocker et partager des
informations dans une base de données, en garan-
tissant la qualité, la pérennité et la condentialité
des informations, tout en cachant la complexité des
opérations.
Le SGBD peut se décomposer en trois sous-
systèmes :
le système de gestion de chiers : il permet le
stockage des informations sur un support physique.
le SGBD interne : il gère l'ordonnancement des
informations.
le SGBD externe : il représente l'interface avec
l'utilisateur.
Cours d'administration de Base de Données 5
Cours d'administration de Base de Données

Introduction générale
Notions de base

Les principaux SGBD

Les principaux systèmes de gestion de bases de données sont :

Cours d'administration de Base de Données 6


Cours d'administration de Base de Données

Introduction générale
Notions de base

Architecture ANSI/SPARC
L'architecture ANSI/SPARC (Standard Planning and Require-
ment Comitee) date de 1975.

Cours d'administration de Base de Données 7


Cours d'administration de Base de Données

Introduction générale
Notions de base

Architecture ANSI/SPARC

Elle dénit 3 niveaux d'abstraction pour un SGBD :


Le niveau externe : Description pour chaque utilisateur de sa
perception des données.
Le niveau conceptuel : Description de la structure de toutes les
données qui existent dans la base et description de leurs
propriétés.
Le niveau interne : Description des structures de stockage et
aux moyens d'accès (index).

Cours d'administration de Base de Données 8


Cours d'administration de Base de Données

Introduction générale
Notions de base

Objectifs d'un SGBD

D'une manière générale un SGBD doit avoir les objectifs et les


avantages suivants :
Indépendance physique des applications aux données
Indépendance logique des applications aux données
Manipulation des données par des langages de haut niveau
Rapidité des accès
Limitation de la redondance
Vérication de l'intégrité
Partage des données
Sécurité des données

Cours d'administration de Base de Données 9


Cours d'administration de Base de Données

Introduction générale
Notions de base

Les fonctions des SGBD

Dénition des données


Décrire la structure de la BD (tables, vues, champs, index. . . ).
⇒ Langage de dénition des données (LDD)
Manipulation des données
Interrogation
ex. : quels sont les noms des produits de prix < 100F ?
Mise à jour (insertion, suppression, modication)
⇒ Langage de manipulation des données (LMD)
Contrôle des données
Vérication des contraintes d'intégrité
ex. : le salaire doit être compris entre 400F et 20000F
Contrôle des droits d'accès
⇒ Langage de contrôle des données (LCD)
Cours d'administration de Base de Données 10
Cours d'administration de Base de Données

Introduction générale
Les métiers autour des bases de données

Les métiers autour des bases de données

Administrateur
Responsable de la sécurité
Administrateur réseaux
Développeurs d'application
Administrateurs d'application
Utilisateurs : modier les données, créer des rapports
Note
Dans des environnements de petite taille, l'administrateur peut
jouer quasiment tous les rôles

Cours d'administration de Base de Données 11


Cours d'administration de Base de Données

Introduction générale
Les métiers autour des bases de données

Les rôles de l'administrateur


L'administrateur peut avoir un double rôle :
rôle organisationnel
rôle technique
Installation et mise à jour du SGBD et des outils associés
Création de la base de données et assurer son évolution
Gestion de l'espace et implantation des schémas des données
Arrêt et démarrage de la base de données
Gestion des privilèges d'accès
Amélioration des performances
Assurance de la sécurité et la cohérence des données
Échange de données entre la base et le monde extérieur
Assistance aux utilisateurs
Mise en place d'une stratégie de sauvegarde et restauration
des données
ces deux rôles peuvent être assurés par une ou plusieurs per-
sonnes.
Cours d'administration de Base de Données 12
Cours d'administration de Base de Données

Introduction générale
La présentation d'Oracle

Présentation d'Oracle

Oracle est un SGBD édité par la société du même nom Oracle


Corporation, leader mondial des bases de données.
Il a été développé par Larry Ellison, accompagné d'autres per-
sonnes telles que Bob Miner et Ed Oates.
Oracle est écrit en langage C et est disponible sur de nombreuses
plates-formes matérielles dont :
AIX (IBM)
Solaris (Sun)
HP/UX (Hewlett Packard)
Windows NT (Microsoft)
Oracle depuis la version 8.0.5 est disponible sous Linux

Cours d'administration de Base de Données 13


Cours d'administration de Base de Données

Introduction générale
La présentation d'Oracle

Historique d'Oracle
1977 : Création de la société Software Development Laborato-
ries (SDL)
1979 : SDL change de nom en devenant Relational Software,
Inc. (RSI) et introduit son produit Oracle V2 comme base de
données relationnelle.
1983 : RSI devient Oracle Corporation pour être plus représen-
tative de son produit phare.

Cours d'administration de Base de Données 14


Cours d'administration de Base de Données

Introduction générale
La présentation d'Oracle

Identication du produit Oracle


Pour identier un des produits logiciels, Oracle utilise jusqu'à 5
chires :
Exemple du produit : Oracle 11g (11.2.0.1.0)

Commandes SQL pour acher la version du produit Oracle


SELECT * FROM PRODUCT_COMPONENT_VERSION ;
SELECT * FROM V$version ;
Cours d'administration de Base de Données 15
Cours d'administration de Base de Données

Introduction générale
La présentation d'Oracle

Les versions d'Oracle

Oracle se décline en plusieurs versions :


Enterprise Edition : inclut toutes les fonctionnalités d'Oracle
Database, et gère des données extrêment volumineuses.
Standard Edition : inclut les fonctionnalités de base, mais ne
permet pas d'exploiter certaines options avancées. Elle est des-
tinée pour des serveurs avec une capacité maximale de quatre
processeurs.
Standard Edition One : identique à l'édition standard mais limité
à des serveurs biprocesseurs.
Personal Edition : disponible uniquement sur Windows, destiné
aux développeurs pour une utilisation mono-utilisateur.
Express Edition : gratuite, destinée pour des machines mono-
processeurs et spécialement pour les petites entreprises, voire
les institutions à but académique.

Cours d'administration de Base de Données 16


Cours d'administration de Base de Données

Introduction générale
La présentation d'Oracle

Les composants d'Oracle

La solution Oracle est un véritable environnement de travail


constitué de nombreux logiciels permettant une administration
graphique d'Oracle, de s'interfacer avec des produits divers et
d'assistants de création de bases de données et de conguration
de celles-ci.
On peut classer les outils d'Oracle selon diverses catégories :
Les outils d'administration
Les outils de développement
Les outils de communication
Les outils de génie logiciel
Les outils d'aide à la décision

Cours d'administration de Base de Données 17


Cours d'administration de Base de Données

Les bases de l'architecture Oracle

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle


Serveur Oracle
Architecture de l'instance
Structure de la base de données Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 18


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Serveur Oracle

Présentation générale

Un serveur Oracle est un système de gestion de base de données qui


fournit une approche intégrée, complétée et ouverte de la gestion des
informations.
Il comporte :
La base de données : se compose d'un ensemble de chiers
physiques qui contiennent notamment les données.
L'instance : se compose d'une structure de mémoire partagée
et d'un ensemble de processus.

Mme. Wafa Mekki Cours d'administration de Base de Données 19


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Serveur Oracle

Présentation générale

De manière imagée :
La base de donnée : représente un document (par exemple un
document Microsoft Word)
L'instance : représente une application (par exemple Microsoft
Word)
Pour pouvoir accéder à la base de données (l'équivalent du docu-
ment Microsoft Word), Il faut l'ouvrir avec une instance Oracle
(l'équivalent de l'application Microsoft Word).
Une instance ne peut ouvrir qu'une seule base de données à la
fois.
Dans la grande majorité des cas, une base de donnée est ouverte
par une seule instance.

Cours d'administration de Base de Données 20


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Serveur Oracle

Les principaux composantes

Cours d'administration de Base de Données 21


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Architecture de l'instance

Cours d'administration de Base de Données 22


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les mémoires

Mémoire SGA (System Global Area) :


Une zone de mémoire partagée par tous les processus de l'ins-
tance
Elle est allouée au démarrage de l'instance en mémoire princi-
pale : doit être la plus grosse possible.
Elle est libérée lors de l'arrêt de celle-ci.
Son but est d'économiser les E/S.
Mémoire PGA (Program Global Area)
Propre à chaque processus serveur et processus en arrière-plan.
Chaque processus dispose de sa mémoire PGA.

Cours d'administration de Base de Données 23


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les mémoires : Mémoire SGA (System Global Area)


Cache de tampons de la base de données (buer cache) :
Zone de chargement et de mise à jour en mémoire des blocs de
données extraits de la base (blocs les plus récemment utilisés)
concernant :
Des blocs de tables et clusters
Des blocs d'index (B-tree, Bitmap, Reverse Key. . . )
Des blocs des rallback segment
Zone de mémoire partagée (shared pool) : se compose des
données suivantes :
Les requêtes SQL et les procédures stockées (PL/SQL)
Les plans d'exécution et les résultats d'analyse des ordres
venant des processus utilisateurs
Les requêtes récursives (requêtes sur le dictionnaire)
Tampon de journalisation (redo log buer) : Tampon conte-
nant les informations en cours de modication dans les blocs de
données (données avant et données après)
Cours d'administration de Base de Données 24
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les mémoires : Mémoire SGA (System Global Area)


Zone de mémoire Large Pool : Zone facultative qui fournit
des espaces importants d'allocation de mémoire à des processus
volumineux, tels que les opérations de sauvegarde et de récupé-
ration Oracle et les processus serveur d'E/S.
Le DBA peut congurer une zone de la SGA appelé Large Pool
pour soulager le Buer de données ou la zone des requêtes par-
tagées pour certaines opérations gourmandes en mémoire
Zone de mémoire Java : Zone de mémoire nécessaire pour la
machine virtuelle Java intégré dans Oracle. Cette zone permet
d'exécuter le code Java stocké dans le noyau Oracle.
Zone de mémoire streams : Gestion du partage de données
et événements dans un système distribué.
Ex : plusieurs bases de données. Il change les données sur une
BD source et la propage sur les autres
Cours d'administration de Base de Données 25
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les mémoires : Mémoire PGA (Program Global Area)

Une mémoire PGA (Program Global Area) est une zone de mé-
moire contenant des données et des informations de contrôle
pour chaque processus serveur.
Un processus serveur Oracle traite les demandes d'un client.
Chaque processus serveur dispose de sa propre mémoire PGA
privée, qui est créée lors du démarrage du processus serveur.
L'accès à la mémoire PGA est exclusivement réservé à ce pro-
cessus serveur, qui peut lire le contenu de la mémoire et écrire
dans celle-ci par l'intermédiaire du code Oracle.

Cours d'administration de Base de Données 26


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les mémoires : Mémoire PGA (Program Global Area)

Pour un processus serveur, la PGA contient :


Une zone de tri
allouée dynamiquement lors d'un tri
associée à un serveur (dédié ou non) pour traiter des ordres
nécessitant des tris (Group by, Order by, join,.)
La taille de la zone de tri est déterminée par le paramètre
SORT_AREA_SIZE (en bytes)
Par défaut cette taille est de 65 000 bytes.
Si cette zone est pleine, un segment temporaire est généré.
Des informations sur la session
Des informations sur le traitement des requêtes de la session
Les variables de session

Cours d'administration de Base de Données 27


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les processus

Les processus associés à Oracle présentent deux types :


Processus utilisateurs : démarre lorsqu'un utilisateur de base
de données demande la connexion à un serveur Oracle pour
exécuter une application SQL*Plus, Pro*C, etc.
Processus Oracle
Processus serveur : interaction entre processus utilisateur et
l'instance ( mémoire de la SGA).
Processus en arrière plan (BACKGROUND ) : démarre en
même temps qu'une instance Oracle et eectue des tâches bien
dénies pour l'ensemble des utilisateurs.
Cours d'administration de Base de Données 28
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les processus : Processus serveur

Fonctions des processus serveurs :


analyser et exécuter les commandes SQL soumises par les ap-
plications (utilisateurs).
transférer les blocs de données nécessaires du disque vers la zone
SGA.
communiquer les résultats de requêtes aux applications (utilisa-
teurs).

Cours d'administration de Base de Données 29


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les processus : Processus en arrière plan

Ces processus gèrent les transferts de données entre la mémoire


et le disque dur.
Cours d'administration de Base de Données 30
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Les processus : Processus en arrière plan

Les plus importants d'entre eux sont :


Processus SMON (System Monitor) : eectue la récupération après panne
lorsque l'instance est démarrée suite à une défaillance.
Processus PMON (Process Monitor) : procède au nettoyage des processus
utilisateur en cas d'échec.
Processus Database Writer (DBWn) : écrit les blocs modiés du cache de
tampons (buer cache) de la base de données vers les chiers de données présents
sur le disque.
Point de reprise (CKPT) : met à jour l'ensemble des chiers de données et de
contrôle de la base de données an d'indiquer le point de reprise (checkpoint) le
plus récent.
Processus LGWR (Log Writer) : transcrit les informations contenues dans le
REDO LOG Buer vers les chiers REDOLOG FILE.
Processus d'archivage (ARCn) : est chargé de copier le chier Redo Log courant
dès qu'il est plein sur la destination des chiers d'archives.

Cours d'administration de Base de Données 31


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Architecture de l'instance

Processus serveur et cache de tampon de la base de données

Lors du traitement d'une demande, le processus serveur Oracle recherche dans le


cache de tampons (buer cache) de la BD tout bloc dont il a besoin.
Si le bloc recherché n'y gure pas, le processus serveur lit le bloc du chier de
données et en place une copie dans le cache de tampons de la BD.
Les demandes suivantes qui concernent le même bloc peuvent alors trouver le bloc
en mémoire. Par conséquent, elles ne doivent pas requérir de lectures physiques.

Cours d'administration de Base de Données 32


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données

Une base de données est constituée :


D'un ou plusieurs chiers de données
D'au minimum un chier de contrôle
D'au minimum deux groupes de chiers de journalisation

Cours d'administration de Base de Données 33


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données

Les chiers de journalisation peuvent être archivés


Chaque BD porte un nom dénit par le paramètre
d'initialisation DB_NAME du chier paramètre
D'au minimum deux groupes de chiers de journalisation

Cours d'administration de Base de Données 34


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données

Les chiers de données


Ils contiennent toutes les données proprement dites de la base
de données (tables, index, clusters, dictionnaire Oracle).
Un chier de données est associé à une seule base de données
L'unité de découpage est le bloc (2 K, 4K,. . . ) selon l'OS.
Ces chiers sont de taille xe et optionnellement variables.

Cours d'administration de Base de Données 35


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données


Les chiers de contrôle
Un chier de contrôle contient des informations de contrôle sur
la base de données :
Nom de la BD
Date/heure de création de la BD
Emplacement des autres chiers de la BD (chiers de données
et de journalisation)
Numéro de séquence actuel des chiers de journalisation
Informations sur les points de reprise (checkpoint)
Ces chiers sont essentiels pour la base de données. Sans eux,
vous ne pouvez pas ouvrir les chiers de données pour accéder
aux données de la base.
Oracle recommande de mettre les chiers de contrôle en miroir
et de les localiser sur des disques diérents.
Cours d'administration de Base de Données 36
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données


Les chiers de journalisation (Redo log)
Les chiers de redo log enregistrent toutes les modications
apportées à la BD.
Ils permettent la récupération d'une instance de la base de don-
nées. Si la base de données connaît une défaillance et qu'aucun
chier de données n'est perdu, l'instance peut récupérer la base
de données à partir des informations de ces chiers.
Deux groupes au moins avec chacun au moins un chier sont
obligatoires.
Ils doivent être multiplexés pour plus de sécurité.
Ne sont utiles qu'en cas de perte des chiers de données ou
d'arrêt anormal de la BD.
Fonctionnement de façon cyclique.
Cours d'administration de Base de Données 37
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données

Les chiers de journalisation archivés


Présents si mode avec Archives.
Ils contiennent un historique des modications des données (in-
formations de journalisation) générées par l'instance.
A la même taille que le chier Redo log correspondant
A l'aide de ces chiers et d'une sauvegarde de la base de don-
nées, vous pouvez récupérer un chier de données perdu. Au-
trement dit, les chiers de journalisation archivés permettent la
récupération des chiers de données restaurés.

Cours d'administration de Base de Données 38


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure physique de la base de données

Le chier de paramètres
Utilisé pour dénir la façon dont l'instance est congurée au
démarrage.
Il contient des paramètres d'initialisation. Ce chier est géré par
le DBA.
Les paramètres d'initialisation permettent notamment à l'ins-
tance :
D'allouer la mémoire souhaitée aux diérentes structures de la
SGA
De trouver le nom et l'emplacement des chiers de contrôle de
la base

Cours d'administration de Base de Données 39


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Les structures logiques servent à organiser le stockage et la gestion


des données d'une base Oracle
La structure logique d'une base est composée
des tablespaces
des segments
des extensions (extents)
des blocs

Mme. Wafa Mekki Cours d'administration de Base de Données 40


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Les tablespaces
Une base de données est composée d'un ensemble d'unités lo-
giques dites tablespaces.
Un tablespace permet de regrouper un ensemble d'objets lo-
giques (tables, index, etc.)
Il peut être utilisé pour regrouper des objets logiques d'une appli-
cation pour que les opérations de sauvegarde et de restauration
soient ecaces
Une base de données Oracle comprend 1 à N Tablespaces.

Cours d'administration de Base de Données 41


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Les tablespaces
Chaque objet logique doit être associe a un et un seul tablespace.
Chaque tablespace est identié par un nom.
Un tablespace peut être supprime même s'il contient des don-
nées.
Une base de données doit avoir au moins un tablespace appelé
SYSTEM qui contient le dictionnaire de données.

Cours d'administration de Base de Données 42


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Les tablespaces
Un Tablespace peut être TEMPORARY ou PERMANENT.
Un tablespace temporaire contient des données temporaires liés
au TRI par exemple
Il est possible de créer des tablespaces pour contenir les tables
temporaires
Un tablespace peut être active (OnLine) ou desactive (OLine)
Le tablespace SYSTEM ne peut jamais être desactive
Un tablespace peut être crée, modié et supprimé

Cours d'administration de Base de Données 43


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Segment, extension, bloc


Lors de la création d'un chier, Oracle réserve tout l'espace qui
lui est associé
A l'intérieur de ce chier, l'espace disque est géré dynamique-
ment au fur et à mesure de l'utilisation de la base de données
Gestion selon trois niveaux de granularité :
segment
extension
bloc

Cours d'administration de Base de Données 44


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données


Segment, extension, bloc

Cours d'administration de Base de Données 45


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Le bloc de données
Un bloc de données est la plus petite unité logique d'entrée/sortie
utilisée par Oracle
Appelé également Bloc logique ou Page
À distinguer du bloc physique utilise par les OS (bloc physique
= ensemble d'octets sur disque)
La taille d'un bloc de données est attribuée par défaut selon OS
(2 , 4 ou 8 Ko) ou modiable par DB_BLOCK_SIZE = n

Cours d'administration de Base de Données 46


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données


Format d'un bloc de données

Cours d'administration de Base de Données 47


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Format d'un bloc de données


Entête : contient des informations générales (adresse du bloc,
type du segment, etc)
Liste des tables : contient des informations relatives aux tables
groupées ayant des données dans ce bloc
Liste des lignes : contient des informations relatives aux lignes
situées dans ce bloc (adresse)
Espace libre : utilisé pour l'insertion de nouvelles lignes ou la
mise a jour des lignes nécessitant de l'espace
Reste du bloc : réservé aux données

Cours d'administration de Base de Données 48


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Gestion de l'espace des blocs de données


Les paramètres suivants permettent de contrôler la taille d'un bloc
en insertion ou en mise à jour :
PCTFREE : dénit le pourcentage que Oracle laisse de libre
dans un bloc de données pour les mises à jour. (10% par défaut)
Dès qu'il reste que ce pourcentage de libre dans le bloc de don-
nées, Oracle bloque les insertion dans ce bloc et il ne permet
que les "UPDATE" et "DELETE".
Exemple
Si PCTFREE est xé à 25%, Oracle bloquera les insertions des
nouvelles lignes dans le bloc de données quand il est rempli à 75%.

Cours d'administration de Base de Données 49


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données


Gestion de l'espace des blocs de données
PCTUSED : dénit le pourcentage en dessous du quel Oracle
autorise à nouveau les insertions dans un bloc pour le quel les
insertions étaient bloquées (40% par défaut).
Exemple : PCTFREE = 20% et PCTUSED = 50%
On prend un bloc vide, il est rempli par les données jusqu'à 80%.
Oracle bloque les insertions pour ce bloc et le considère comme plein
(Les mises à jour des lignes déjà existantes ne sont pas bloquées).
Un utilisateur supprime des données du bloc et il se retrouve avec
un taux de remplissage de 70%, Oracle le considère toujours comme
plein. Un autre utilisateur supprime à nouveau des données, et le taux
de remplissage devient 45%, Oracle autorise à nouveau les insertions
dans ce bloc car on est descendu en dessous du seuil de 50%.
Cours d'administration de Base de Données 50
Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Remarques : Les conséquences d'un petit PCTFREE


Moins d'espace est réservé au niveau du bloc pour eectuer les
mises a jour des lignes existantes.
Permet aux insertions de mieux remplir le bloc.
Permet d'économiser de l'espace dans la mesure ou les blocs
sont mieux remplis.
Augmente le temps de traitement dans la mesure ou Oracle doit
régulièrement réorganiser les blocs lorsque l'on insère ou modie
des lignes.
Un petit PCTFREE est utilise pour les objets ayant une faible activité
en mise à jour.

Cours d'administration de Base de Données 51


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Remarques : Les conséquences d'un grand PCTFREE


Plus d'espace est réservé au niveau du bloc pour eectuer les
mises a jour des lignes existantes.
Plus de blocs peuvent être nécessaires pour gérer la même quan-
tité de données (moins de lignes sont stockées dans les blocs).
Diminution du temps de traitement dans la mesure ou les réor-
ganisation les blocs sont moins nombreuses.
Un grand PCTFREE est nécessaire pour les objets ayant une forte
activité en mise à jour.

Cours d'administration de Base de Données 52


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Les conséquences d'un petit PCTUSED


Les blocks sont moins remplis.
Réduction des coûts de traitements lors des commandes IN-
SERT UPDATE pour mettre à jour la FREELIST quand un
bloc est utilisé à moins de PCTUSED pourcent.
Augmentation de la consommation d'espace dans la base de
données.
Les conséquences d'un grand PCTUSED
Les blocs sont mieux remplis.
Amélioration de la gestion d'espace.
Augmentation du coût des insertions et des mises à jour.

Cours d'administration de Base de Données 53


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Une extension(Extent)
Unité logique d'allocation d'espace
composée d'un ensemble contigües de blocs de données
alloués simultanément à un segment
Tout segment est initialement crée avec au moins une extension
appelée extension initial (INITIAL EXTENT).
Lorsque l'espace d'un segment est complètement utilisé, Oracle
attribue une nouvelle extension dite extension supplémentaire
(INCREMENTAL EXTENT).
Le nombre maximum d'extensions allouables à un segment dé-
pend de la taille du bloc.

Cours d'administration de Base de Données 54


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Procédure d'attribution d'une nouvelle extension


1 Recherche dans le tablespace contenant le segment le premier
ensemble contigüe de blocs libres de taille au moins égale à celle
de l'extension supplémentaire
2 Si la recherche n'aboutit pas, fusion des blocs libres pour consti-
tuer des ensembles de blocs libres de taille supérieure, puis re-
prend la recherche
3 Si de nouveau la procédure de recherche n'aboutit pas, message
d'erreur signale
4 Mise à jour de l'entête du segment et du dictionnaire de données
pour tenir compte de la nouvelle extension

Cours d'administration de Base de Données 55


Cours d'administration de Base de Données

Les bases de l'architecture Oracle


Structure de la base de données Oracle

Structure logique de la base de données

Un segment
Composé d'un ou de plusieurs extensions contenant les données
d'une structure logique dans un tablespace.
Quatre types de segments :
segments de données : Stockage des données des tables et des
clusters utilisateurs et système.
segments d'index : Stockage des données d'index séparément
des données.
segments temporaires : Utilisés pour le traitement des com-
mandes SQL nécessitant un espace disque temporaire (order by,
group by, distinct, union, instersect ou minus).
segments de rollback : Stockage des données avant modication
par les transactions possibilité d'annulation de leur eet en cas
de besoin.
Cours d'administration de Base de Données 56
Cours d'administration de Base de Données

Les tâches d'administration Oracle

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données
Le dictionnaire de données
Gestion des tablespaces
Gestion des chiers de contrôle
Gestion des chiers de journalisation

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 57


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Création d'une base de données

Variables d'environnement à positionner


ORACLE_SID=nom_de_instance
ORACLE_HOME=home_oracle
ORACLE_BASE=home_des_bases_Oracle
Outils de lancement des commandes
Le Database Conguration Assistant : Outil graphique permet-
tant de créer et modier les bases
implicite lors de l'installation du serveur Oracle

Cours d'administration de Base de Données 58


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Création d'une base de données


Fichier d'initialisation init.ora
contient les paramètres d'initialisation dont la plupart sont renseignés
par défaut.
Trois classes de valeurs de paramètres :
les booléens (TRUE, FALSE)
des chaînes de caractères
et des entiers.
Ils sont regroupés par catégorie
db_* : paramètres liés à la base
log_* : paramètres liés au REDO LOG
distributed_* : paramètres liés à l'option distribuée
mts_* : paramètres liés à l'architecture Multithread
gc_* : paramètres liés à l'option parallèle
sort_* : paramètres liés au tri
Cours d'administration de Base de Données 59
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Étapes de création une base avec le DBCA

1 Démarrer l'assistant Démarrer->programmes->OracleHome->


Outils de conguration et migration->Assistant Conguration
de base de données
2 Choisir créer une base de données
3 Choisir un modèle de base de données
4 Identication de la base de données
Donner le nom global de la base (exemple DBTEST) ainsi que
le SID
5 Choisir les options de gestion
6 Saisir les informations d'identication et de connexion de la
base de données
Saisir les mots de passe d'administration diérents
7 Choisir l'emplacement des chiers de base de données
Cours d'administration de Base de Données 60
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Étapes de création une base avec le DBCA


8 Conguration de la récupération
Indiquer la zone de récupération rapide
Sélectionner le mode d'archivage de la base (Archivelog ou noar-
chivelog)
Localiser les chiers d'archives
9 Saisir le contenu de la base de données
10 Saisir les paramètres d'initialisation
Fixer la taille de la SGA et la PGA
Fixer le nombre maximal de processus utilisateur pouvant être
connectés simultanément à cette base de données
Sélectionner le mode de déploiement de la base (mode serveur
dédié) ou (mode serveur partagé)
11 Stockage de base de données
Localiser les chiers de contrôles, de données et de journalisation
12 Modier à tout moment les paramètres d'initialisation
supplémentaires et démarrer la création de la base de données
Cours d'administration de Base de Données 61
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Création d'une base de données

Syntaxe générale
CREATE DATABASE [nombase]
[CONTROLFILE REUSE]
[LOGFILE [GROUP entier] logFileSpec, . . . ]
[MAXLOGFILES entier]
[MAXLOGMEMBERS entier]
[MAXLOGHISTORY entier]
[MAXDATAFILES entier]
[MAXINSTANCES entier]
[NOARCHIVELOG | ARCHIVELOG]
[CHARACTER SET nomCaracterSet]
[NATIONAL CHARACTER SET nomCaracterSet]
[DATAFILE dataFileSpec [ClauseAutoExtend], . . . ]
[default_temp_tablespace]
[undo_tablespace_clause]
[SET STANDBY DATABASE PROTECTED/UNPROTECTED]
[set_time_zone_clause]

Cours d'administration de Base de Données 62


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Création d'une base de données

Cours d'administration de Base de Données 63


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Création d'une base de données

Exemple de création d'une base de données


create database DBCOURS
CHARACTER SET us7ascii
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGFILES 24
MAXLOGMEMBERS 3
NOARCHIVELOG
datale 'oracle/oradata/DBCOURS/tssys/sys1dbcours.dbf' size 110 M,
'oracle/oradata/DBCOURS/tssys/sys2dbcours.dbf' size 110 M
AUTOEXTEND ON NEXT 10M MAXSIZE
UNLIMITED
logle 'oracle/oradata/DBCOURS/disk1/log1adbcours.dbf' size 500K,
'oracle/oradata/DBCOURS /disk1/log2adbcours.dbf' size 500K,
'oracle/oradata/DBCOURS/disk1/log3adbcours.dbf' size 500K
DEFAULT TEMPORARY TABLESPACE temp_ts TEMPFILE
'oracle/oradata/DBCOURS/tstemp/temp1dbcours.dbf' size 110 M
AUTOEXTEND ON NEXT 10M MAXSIZE
UNLIMITED
UNDO TABLESPACE undo_ts
datale 'oracle/oradata/DBCOURS/tsrbs/rbs1dbcours.dbf'
size110 M AUTOEXTEND ON NEXT 50M
MAXSIZE UNLIMITED
SET TIME_ZONE = '+02 :00' ;

Cours d'administration de Base de Données 64


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

États d'une base de données


Une Base de données comporte les états suivants

Cours d'administration de Base de Données 65


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Démarrage d'une base de données

Dans SQL*Plus, la commande STARTUP permet de :


démarrer une instance
lui associer une BD avec le niveau de disponibilité souhaité
Syntaxe de la commande
STARTUP [FORCE]
[RESTRICT] [PFILE=ch_param]
[OPEN | MOUNT | NOMOUNT]
Description des mots et paramètres
FORCE : Fermeture puis démarrage si l'instance est ouverte.
RESTRICT : sert à des tâches de maintenance. Il faut avoir le privilège
Restricted Session.
PFILE = : Indique le chier des paramètres.
OPEN : démarrer et ouvrir les chiers de la base.
MOUNT : Instance démarrée et chier(s) de contrôle ouvert(s).
NOMOUNT : Seule l'instance est démarrée.

Cours d'administration de Base de Données 66


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Démarrage d'une base de données

Exemples
1 Démarrer une instance à l'état MOUNT pour eectuer certaines
tâches d'administration
SQL> startup mount ;
2 Démarrer avec un chier de paramètre PFILE
SQL> startup ple='D :\CoursBD\initessai.ora' ;
3 Forcer la base à redémarrer
SQL> startup force ;

Cours d'administration de Base de Données 67


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Modication de la disponibilité d'une base de données

Si l'instance a été démarrée dans un niveau intermédiaire (NO-


MOUNT ou MOUNT), il est possible de la faire passer au niveau
supérieur grâce à la commande SQL
ALTER DATABASE [nom_base] MOUNT | OPEN
Les passages d'états autorisés sont :
NOMOUNT -> MOUNT
ALTER DATABASE MOUNT
MOUNT -> OPEN
ALTER DATABASE OPEN
Remarque
La commande SQL ALTER DATABASE ne permet pas de revenir à
un niveau inférieur. Il faut arrêter la base et la redémarrer avec le
niveau souhaité.
Cours d'administration de Base de Données 68
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Création, Démarrage et arrêt d'une Base de Données

Arrêt d'une base de données


Dans SQL*Plus, la commande SHUTDOWN permet d'arrêter
l'instance et la base de données.
Syntaxe de la commande
SHUTDOWN [NORMAL | IMMEDIATE |TRANSACTIONAL |
ABORT]
Description des paramètres
NORMAL : Oracle attend la déconnexion de tous les utilisateurs
(pas de nouvelle connexion autorisée).
IMMEDIATE : Oracle invalide les transactions en cours et dé-
connecte les utilisateurs.
TRANSACTIONAL : Oracle laisse nir les transactions en
cours avant de déconnecter les utilisateurs.
ABORT : Oracle déconnecte tous les utilisateurs (sans eec-
tuer de ROLLBACK des transactions en cours) sans eectuer
de point de synchronisation. (recouvrement utile : SMON)
Cours d'administration de Base de Données 69
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Le dictionnaire de données

Ensemble de tables/vues accédées en lecture seule, créées et


maintenues par le système.
Il est automatiquement mis à jour par Oracle lorsque la base de
données a été modiée.
Il est créé dans le tablespace SYSTEM, et c'est l'utilisateur SYS
qui en est le propriétaire.
Le dictionnaire de données stocke les informations sur :
La structure logique de la base de données.
La structure physique de la base de données.
Les noms et les dénitions des objets.
Les contraintes d'intégrité dénies pour les objets d'une base de données.
Les noms des utilisateurs valides de la base de données et les privilèges
attribués à chaque utilisateur de la base de données.
L'audit sur une base de données.

Cours d'administration de Base de Données 70


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Le dictionnaire de données

Pour utiliser le dictionnaire de données, il sut de l'interroger


grâce à des requêtes SELECT.
Toutes les informations sont stockées en majuscules, sauf ex-
ception.
Il est chargé en mémoire dans la partie Dictionary Cache de la
Shared Pool.
Il est crée lors de la création de la base.

Cours d'administration de Base de Données 71


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues du dictionnaire de données


Il existe deux types de vues dans le dictionnaire de données :
les vues statiques
les vues dynamiques

Cours d'administration de Base de Données 72


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Notion de vue

Une vue dans une base de données est


une synthèse d'une requête d'interrogation de la base.
On peut la voir comme une table virtuelle, dénie par une re-
quête.
Les vues se créent avec la commande CREATE VIEW.

Cours d'administration de Base de Données 73


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Exemple de vue

Les employés d'une entreprise sont dans une table


Les départements de l'entreprise dans une autre
On doit faire une jointure pour acher le nom du département
à côté de celui de l'employé

Cours d'administration de Base de Données 74


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Exemple de vue

Si, par contre, on crée une vue :

On pourra alors écrire la requête SELECT plus simplement

Cours d'administration de Base de Données 75


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues statiques du dictionnaire de données

Elles sont basées sur des tables créés réellement dans le diction-
naire de données.
Accessibles uniquement si la base est ouverte.
Elles Commencent par les préxes :
USER_ concernent les objets possédées par l'utilisateur.
ALL_ concernent les objets accessibles par l'utilisateur.
DBA_ concernent TOUS les objets de la base. Accessible par
l'administrateur.

Cours d'administration de Base de Données 76


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues statiques du dictionnaire de données

Cours d'administration de Base de Données 77


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues dynamiques de performance

Elles ne sont pas basées sur des tables du dictionnaire de don-


nées. Leurs informations sont extraites de la mémoire et/ou des
chiers de contrôle.
Peuvent être consultées même si la base de données n'est pas
ouverte.
Commencent par le préxe V$ et ne sont accessibles que par
les administrateurs. (Accessibles uniquement pour l'utilisateur
 SYS  ou pour tout autre utilisateur qui a le privilège 
SYSDBA .)
Ces vues sont utilisées pour fournir des données relatives aux
performances telles que des informations sur les chiers de don-
nées et les structures de la mémoire.
Cours d'administration de Base de Données 78
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues dynamiques

Cours d'administration de Base de Données 79


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Le dictionnaire de données

Les vues DICTIONARY et DICT_COLUMNS

Les vues DICTIONARY et DICT_COLUMNS donnent la des-


cription de toutes les tables et vues du dictionnaire de données.
La vue DICTIONARY est également accessible via le synonyme
public  DICT .
La vue DICTIONARY est pratique pour retrouver le nom des
vues qui traitent d'un sujet donné.
Le nom de la vue contient une chaîne de caractères représenta-
tive de l'information présentée par la vue (TAB ou TABLE pour
les tables, COL ou COLUMN pour les colonnes), il sut de faire
une recherche à l'aide de l'opérateur LIKE.
Exemple : La vue DICTIONARY
SQL> SELECT * FROM DICT WHERE table_name LIKE 'USER%TAB%' ;

Cours d'administration de Base de Données 80


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Rappel sur les tablespaces


Une BD Oracle comprend 1 à N Tablespaces.
Un tablespace est une unité logique de stockage composée d'un ou plusieurs
chiers physiques (chiers de données).
A l'intérieur d'un tablespace, le stockage est organisé en segments, composés
d'une ou plusieurs extensions.
La majorité des opérations d'administration relatives au stockage s'eectue au
niveau du tablespace, et non au niveau des chiers de données.

Cours d'administration de Base de Données 81


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Généralités sur les tablespaces

Avantages d'un Tablespace


Séparer les données de l'application des données du dictionnaire
de données
Séparer les données de plusieurs applications stockées dans la
même BD
Répartir les entrées/sorties sur plusieurs disques
Réaliser des sauvegardes/restaurations partielles
Contrôler la disponibilité des données (arrêt partiel d'une base
via l'arrêt d'un Tablespace)

Cours d'administration de Base de Données 82


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Généralités sur les tablespaces

Un tablespace peut être ONLINE (accessible) ou OFFLINE


Un tablespace OFFLINE est un moyen pour rendre certaines
données de l'application temporairement inaccessibles ou pour
rendre une application inaccessible sans toucher à une autre si
la BD abrite plusieurs applications.
Un tablespace peut être TEMPORARY ou PERMANENT (mode
par défaut).
Un tablespace temporaire contient des données temporaires liés
au TRI par exemple.
Un tablespace peut être réservé à contenir des données Roll-
back : UNDO TABLESPACE

Mme. Wafa Mekki Cours d'administration de Base de Données 83


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Généralités sur les tablespaces

Oracle introduit deux types de tablespaces :


un tablespace BIGFILE est un tablespace composé d'un seul
chier de données qui peut être particulièrement volumineux
(jusqu'à 232 blocs Oracle)
Un tablespace SMALLFILE peut contenir plusieurs chiers de
données (jusqu'à 1022 chiers), mais de taille plus limitée (2 22
blocs Oracle)

Mme. Wafa Mekki Cours d'administration de Base de Données 84


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Généralités sur les tablespaces

Une BD possède toujours au minimum deux tablespaces nom-


més SYSTEM et SYSAUX qui ne doivent pas contenir de don-
nées utilisateur normalement.
Le tablespace SYSTEM
contient le dictionnaire de données.
créé par défaut lors de la création de la base.
ne peut être mis OFFLINE.
il est déconseillé d'y stocker des données autres que celles du
dictionnaire.
Le tablespace SYSAUX contient les données de certains com-
posants Oracle

Mme. Wafa Mekki Cours d'administration de Base de Données 85


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Création d'un tablespace permanent


Syntaxe générale
CREATE [BIGFILE|SMALLFILE] TABLESPACE nom_tablespace
DATAFILE specication_chier [. . . ]
[clause_gestion_extension]
[clause_gestion_segment]
[MINIMUM EXTENT valeur [K|M] ]
[DEFAULT [clause_compression] [clause_stockage]]
[BLOCKSIZE valeur [K]]
[LOGGING | NOLOGGING][FORCE LOGGING]
[FLASHBACK ON | OFF]
[ONLINE | OFFLINE] ;

Cours d'administration de Base de Données 86


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Option Description
BIGFILE|SMALLFILE indique si le tablespace est un tablespace BIGFILE ou SMALLFILE
specication_chier [. . . ] :
'nom_chier' [SIZE valeur Nom_chier : chemin d'accès complet au chier de données
[K|M|G|T]] [REUSE]
[AUTOEXTEND OFF | AU- Size : taille initiale du chier qui peut être omise uniquement
TOEXTEND ON | [ NEXT valeur si l'option REUSE est utilisée et que le chier existe déjà.
[K|M|G|T]] REUSE : Si l'option est présente et que le chier existe déjà,
[MAXSIZE ULIMITED | valeur Oracle le réutilise et l'écrase. Si elle est absente, dans la même
[K|M|G|T]] situation, un message d'erreur s'ache et la création du ta-
blespace est stoppée
AUTOEXTEND : indique si le chier peut ou non grossir si
tout l'espace initialement alloué est utilisé
NEXT : espace minimum alloué au chier lors de l'extension
MAXSIZE : taille maximale du chier, éventuellement non
limitée
clause_gestion_extension dénit le mode de gestion des extensions à l'intérieur du tablespace
clause_gestion_segment dénit le mode de gestion de l'espace libre des segments stockés dans
le tablespace

Cours d'administration de Base de Données 87


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Option Description
MINIMUM EXTENT valeur [K|M] dénit la taille minimale des extensions dans le tablespace.
DEFAULT [COMPRESS | NO- dénit une clause de stockage par défaut pour les segments qui seront
COMPRESS ] crées dans le tablespace sans clause de stockage.
[clause_stockage] La clause_stockage n'est valide que pour un tablespace géré par le
dictionnaire.
BLOCKSIZE valeur [K] dénit la taille de bloc utilisée par le tablespace (2Ko, 4Ko, 8Ko, 16
Ko, 32 Ko).
La valeur par défaut est la taille de bloc standard dénie par le
paramètre DB_BLOCK_SIZE.
LOGGING | NOLOGGING dénit le mode de journalisation par défaut des segments
FORCE LOGGING permet de garantir que toutes les modications seront enregistrées
dans les chiers de journalisation même si l'opération concernée est
eectuée dans le mode NOLOGGING.
FLASHBACK [ON | OFF] indique si le tablespace participe ou non aux opérations de FLASH-
BACK DATABASE
ONLINE | OFFLINE indique si le tablespace est crée ONLINE ou OFFLINE

Cours d'administration de Base de Données 88


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Création d'un tablespace permanent


Exemple : Tablespace pour les tables avec une gestion locale
uniforme des extensions
CREATE TABLESPACE data
DATAFILE 'E :\oradata\hermes\data01.dbf' SIZE 500 M
AUTOEXTEND ON NEXT 100M MAXSIZE 800M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M
SEGMENT SPACE MANAGEMENT AUTO ;

Cours d'administration de Base de Données 89


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents


Remarques sur les tablespaces BIGFILE
Les tablespaces BIGFILE simplient l'administation en orant une transparence
du chier de données.
Certaines opérations peuvent être réalisées directement sur le tablespace BIGFILE
(par ALTER TABLESPACE) et non sur les chiers de données, comme pour un
tablespace SMALLFILE.
Un type par défaut SMALLFILE ou BIGFILE peut être déni au niveau de la BD.

Soit lors de la création de la BD (clause SET DEFAULT TABLESPACE)


Soit ultérieurement (grâce à ALTER DATABASE)

Syntaxe
ALTER DATABASE SET DEFAULT [SMALLFILE | BIGFILE] TABLESPACE ;
Le type par défaut actuel peut être consulté dans la vue DATABASE_PROPERTIES
pour la propriété DEFAULT_TBS_TYPE.
Syntaxe
SQL> select property_value from database_properties where property_name='DEFAULT_TB

Cours d'administration de Base de Données 90


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Tablespace permanent par défaut


Pour créer et dénir un tablespace permanent par défaut après la création de la
BD, il faut :
créer un tablespace permanent (CREATE TABLESPACE)
le dénir comme tablespace permanent par défaut (DEFAULT TABLES-
PACE)

Syntaxe
ALTER DATABASE DEFAULT TABLESPACE nom ;
Pour retrouver le nom du tablespace permanent par défaut, interroger la vue DA-
TABASE_PROPERTIES pour la propriété DEFAULT_PERMANENTS_TABLESPACE.

Syntaxe
SQL> select property_value from database_properties where property_name='DEFAULT_PER

Cours d'administration de Base de Données 91


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

Modication d'un tablespace permanent


Après la création, il est possible de modier un tablespace :
Le renommer
Lui allouer de l'espace supplémentaire à une BD
En ajoutant un nouveau tablespace
En ajoutant un chier de données à un tablespace existant
En augmentant la taille d'un chier de données d'un tablespace
Déplacer le(s) chiers de données
Le passer OFFLINE/ONLINE
Le passer READ ONLY / READ WRITE
Modier les autres caractéristiques (LOGGING/ NOLOGGING,
FLASHBACK ON / OFF, etc)
Ces opérations s'eectuent selon les cas avec ALTER DATA-
BASE ou ALTER TABLESPACE.
Cours d'administration de Base de Données 92
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents


1 Renommer un tablespace
Syntaxe
ALTER TABLESPACE ancien_nom RENAME TO nouveau_nom ;

Remarque
Les tablespaces SYSTEM , SYSAUX et les tablespaces OF-
FLINE ne peuvent pas être renommés.
2 Ajouter un chier de données à un tablespace
Syntaxe
ALTER TABLESPACE nom ADD DATAFILE specication_chier [..] ;

Remarques
Généralement utilisé pour allouer un nouveau chier de données
sur un autre disque.
Cette opération est interdite pour un tablespace BIGFILE.
Cours d'administration de Base de Données 93
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

3 Modier la taille d'un chier de données


Syntaxe
ALTER DATABASE DATAFILE 'nom_complet' | numéro_chier [..] RESIZE valeur
[K|M|G|T] ;
ALTER TABLESPACE nom_tablespace_bigle RESIZE valeur [K|M|G|T] ;

Remarques
Modier la taille d'un chier de données permet :
Dans le cas d'une diminution, de récupérer de l'espace inutilisé
alloué au tablespace. La taille du chier de données ne peut
pas descendre en dessous de la position de la dernière extension
occupée par un segment dans le tablespace.
Dans le cas d'une augmentation, d'allouer de l'espace supplé-
mentaire à un tablespace

Cours d'administration de Base de Données 94


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

4 Modier l'extension automatique d'un chier de données


Syntaxe
ALTER DATABASE DATAFILE 'nom_complet' | numéro_chier [..] clause_auto_extension ;
ALTER TABLESPACE nom_tablespace_bigle clause_auto_extension ;

5 Passer un tablespace OFFLINE / ONLINE

Syntaxe
ALTER TABLESPACE nom_tablespace ONLINE | OFFLINE ;

Remarque
Désactiver un tablespace peut être nécessaire pour eectuer cer-
taines opérations d'administration sur le tablespace (exemple :
déplacer un de ces chiers de données) ou tout simplement pour
rendre certaines données temporairement inaccessibles.

Cours d'administration de Base de Données 95


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents


6 Renommer ou déplacer un chier de données

Syntaxe
ALTER DATABASE RENAME FILE 'ancien_nom_complet' TO 'nouveau_nom_complet' ;
ALTER TABLESPACE nom_tablespace RENAME DATAFILE 'ancien_nom_complet'
TO 'nouveau_nom_complet' ;

Remarques
En cas d'utilisation de l'ordre SQL ALTER TABLESPACE, la BD doit être ouverte
mais le tablespace concerné doit être OFFLINE.
En cas d'utilisation de l'ordre SQL ALTER DATABASE, le tablespace concerné
doit être OFFLINE ou la BD en état MOUNT.
Pour déplacer un chier de données du tablespace SYSTEM, la BD doit être
montée dans l'ordre ALTER DATABASE.
Ces deux ordres SQL ne manipulent pas physiquement le chier. Ils se contentent
de mettre à jour le chier de contrôle.
Le chier de données doit être renommé/copié/déplacé à l'aide d'une commande
du système d'exploitation, avant d'exécuter l'ordre SQL.
Cours d'administration de Base de Données 96
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents

7 Supprimer un chier de données

Syntaxe
ALTER TABLESPACE nom_tablespace DROP DATAFILE 'nom_complet' | numéro_chier ;

Remarques
Le chier de données
Doit être vide
Ne peut pas être le premier chier crée pour le tablespace
Ne doit pas appartenir à un tablespace en lecture seule
Doit être en ligne
Ne doit pas appartenir au tablespace SYSTEM

Cours d'administration de Base de Données 97


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces permanents


Suppression d'un tablespace permanent
Syntaxe
DROP TABLESPACE nom_tablespace [INCLUDING CONTENTS [AND DATAFILES]
[CASCADE CONSTRAINTS]] ;

INCLUDING CONTENTS : est nécessaire si le tablespace n'est pas vide, pour


forcer la suppression préalable des segments qui y sont stockés.
AND DATAFILES : permet de supprimer les chiers physiques du tablespace.
Sinon, ils ne sont pas supprimés.
CASCADE CONSTRAINTS : permet de supprimer les contraintes d'intégrité
référentielle dénies sur des tables hors du tablespace et qui référencent des tables
à l'intérieur du tablespace.
Remarques
Le tablespace SYSTEM et le tablespace permanent par défaut
ne peuvent pas être supprimés.
Il est recommandé de passer le tablespace OFFLINE avant de le
supprimer.
Cours d'administration de Base de Données 98
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Organisation du stockage à l'intérieur d'un tablespace


Un tablespace peut être :
Géré par le dictionnaire : les informations relatives à la gestion
de l'espace sont enregistrées dans le dictionnaire de données.
Géré localement : les informations relatives à la gestion de
l'espace sont enregistrées dans l'en-tête de chaque chier de
données du tablespace.
Une gestion dite  automatique  : la taille des extensions est
déterminée automatiquement par Oracle.
Une gestion dite  uniforme  : la taille des extensions est
uniforme égale à une valeur dénie lors de la création du ta-
blespace.
Par défaut, un tablespace permanent géré localement est en
gestion automatique des extensions, la gestion uniforme doit
être spéciée.
Un tablespace temporaire géré localement est obligatoirement
en gestion uniforme des extensions.
Cours d'administration de Base de Données 99
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Organisation du stockage à l'intérieur d'un tablespace


Spécier le stockage d'un segment
Syntaxe de la clause de stockage
STORAGE ( [ INITIAL valeur [K|M] ]
[NEXT valeur [K|M] ]
[MINEXTENTS valeur ]
[MAXEXTENTS [valeur | UNLIMITED] ]
[PCTINCREASE valeur])
INITIAL : taille de la première extension allouée
NEXT : taille de la deuxième extension allouée
MINEXTENTS : nombre initial d'extension(s) allouée(s)
MAXEXTENTS : nombre maximal d'extensions allouables
PCTINCREASE : pourcentage d'augmentation (0 à 100) de la taille
des extensions à partir de la troisième par rapport à la précédente
Cours d'administration de Base de Données 100
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Organisation du stockage à l'intérieur d'un tablespace


Spécier le mode de gestion d'un tablespace
Syntaxe de la clause de gestion des extensions
EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE |
UNIFORM [SIZE valeur[K|M] ] ]

DICTIONARY : indique que le tablespace est géré par le dictionnaire


LOCAL : indique que le tablespace est géré localement
AUTOALLOCATE : indique que les extensions sont automatique-
ment gérés par Oracle
UNIFORM : indique que les extensions ont une taille uniforme dénie
par la clause SIZE
SIZE : la taille des extensions pour les tablespaces LOCAL UNIFORM
Cours d'administration de Base de Données 101
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires

Un segment temporaire peut être crée dans n'importe quel tablespace


mais ce n'est pas souhaitable pour les performances.
Oracle recommande donc de créer un tablespace dédié, de type TEM-
PORARY, pour stocker les segments temporaires.
Les requêtes qui peuvent demander un tri sont :
SELECT . . . ORDER BY ;
SELECT . . . GROUP BY ;
SELECT DISTINCT . . . ;
Requêtes ensemblistes (UNION, INTERSECT, MINUS) ;
Calcul des statistiques
En utilisant un tablespace temporaire, un seul segment de tri est crée,
par le premier tri, et réutilisé par les tris suivants.

Cours d'administration de Base de Données 102


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires


Groupe de tablespaces temporaires
Il est possible de dénir des groupes de tablespaces temporaires.
Dans le cas de l'exécution d'une requête en parallèle, les diérents
tablespaces temporaires du groupe pourront être utilisés.
De point de vue performance, cela n'a pas d'intérêt que si les chiers
de données des diérents tablespaces temporaires sont stockées sur
des disques diérents.
Un groupe de tablespaces temporaires n'est pas explicitement crée ou
supprimé.
Il est implicitement créé lorsqu'un premier tablespace temporaire
est aecté au groupe.
Il est implicitement supprimé lorsque le dernier tablespace tem-
poraire est retiré du groupe.
Cours d'administration de Base de Données 103
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires

Création d'un tablespace temporaire géré localement


Syntaxe
CREATE [BIGFILE | SMALLFILE ] TEMPORARY TABLESPACE nom_tablespace
TEMPFILE spécication_chier [. . . ]
[EXTENT MANAGEMENT LOCAL] [UNIFORM [SIZE valeur [K|M] ] ]
[TABLESPACE GROUP nom_groupe] ;
-spécication_chier -
'nom_chier' [SIZE valeur [K|M|G|T] ] [REUSE]
[clause_auto_extend]
-clause_auto_extend -
AUTOEXTEND [OFF | ON [NEXT valeur [K|M|G|T] ]
[MAXSIZE] [ UNLIMITED | valeur [K|M|G|T] ] ] ]

Cours d'administration de Base de Données 104


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires

Remarques sur la création d'un tablespace temporaire géré locale-


ment
Les chiers de données d'un tablespace temporaire géré localement
sont spéciés par le mot clé TEMPFILE et non DATAFILE.
Les clauses LOGGING, NOLOGGING, FORCE LOGGING et FLASH-
BACK sont interdites pour un tablespace temporaire géré localement.
La clause TABLESPACE GROUP permet d'aecter le tablespace tem-
poraire à un groupe ; si le groupe n'existe pas, il est implicitement
crée.
Par défaut, le tablespace temporaire n'appartient à aucun groupe.

Cours d'administration de Base de Données 105


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires

Administration des tablespaces temporaires gérés localement


Les chiers de données d'un tablespace temporaire géré locale-
ment sont particuliers appelés  chiers de données temporaires
.
Les diérences avec un chier de données ordinaire sont :
Ils sont toujours en mode NOLOGGING : les modications ne
sont pas enregistrées dans les chiers de journalisation
Ils ne peuvent pas être désactivés
Ils ne peuvent pas être passés en lecture seule
Les chiers de données temporaires sont administrés avec les
ordres SQL ALTER TBLESPACE et ALTER DATABASE, en
remplaçant DATAFILE par TEMPFILE

Cours d'administration de Base de Données 106


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires


Les opérations autorisées sont :
1 Ajout d'un chier de données temporaire à un tablespace temporaire géré locale-
ment.
SQL>ALTER TABLESPACE nom_tablespace ADD TEMPFILE spécication_chier ;
2 Modication de la taille d'un chier de données temporaire
Tout type de tablespace
ALTER DATABASE TEMPFILE 'nom_complet' [..] RESIZE
valeur [K|M|G|T] ;
Tablespace BIGFILE uniquement
ALTER TABLESPACE nom_tablespace_bigle RESIZE valeur
[K|M|G|T] ;
3 Modication de la clause AUTOEXTEND d'un chier de données temporaire
Tout type de tablespace
ALTER DATABASE TEMPFILE 'nom_complet' [..] clause_auto_exten
Tablespace BIGFILE uniquement
ALTER TABLESPACE nom_tablespace_bigle clause_auto_extension
Cours d'administration de Base de Données 107
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces temporaires

Un chier de données temporaire ne peut pas être renommé par l'ordre


ALTER TABLESPACE .. RENAME DATAFILE (car il ne peut pas
passer OFFLINE)
Pour le renommer, il est possible d'utiliser l'ordre ALTER DATABASE
RENAME FILE (base montée)
Pour le déplacer, il faut le supprimer et puis le récréer.
Exemple
supprimer le chier de données temporaire
SQL> ALTER DATABASE TEMPFILE 'E :\oradata\hermes\temp01.dbf'
DROP INCLUDING DATAFILES ;
recréer le chier de données temporaire
SQL> ALTER TABLESPACE temp ADD TEMPFILE 'F :\oradata\hermes\temp01
SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 1G ;
Cours d'administration de Base de Données 108
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces d'annulation

Le tablespace UNDO est réservé exclusivement à l'annulation des


commandes LMD (UPDATE, INSERT, DELETE).
Lorsqu'on exécute l'ordre DELETE par exemple, Oracle commence
par copier les lignes à supprimer dans le tablespace UNDO et en-
suite indique que les blocs contenant les données dans le tablespace
d'origine sont libres.
Un ROLLBACK permet de revenir en arrière, alors que COMMIT
supprimera les lignes du tablespace UNDO.
Toutes les données d'annulation sont stockées dans un tablespace
spécial appelé  UNDO .
À la création de la base de données, si vous ne précisez pas de tables-
pace undo, Oracle crée un tablespace undo appelé  SYS_UNDOTS
.
Cours d'administration de Base de Données 109
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les tablespaces d'annulation

Création d'un tablespace d'annulation


Syntaxe
CREATE [BIGFILE|SMALLFILE] UNDO TABLESPACE nom_tablespace
[ DATAFILE ['nom_chier'] [ SIZE integer [K|M|G|T] ]
[ AUTOEXTEND [OFF |
ON [ NEXT integer [K|M|G|T]]
[ MAXSIZE [UNLIMITED | integer [K|M|G|T] ] ] ]
][...]
]
[ONLINE | OFFLINE] ;

Cours d'administration de Base de Données 110


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les informations sur les tablespaces et les chiers de données


Tablespaces et chiers de données
Plusieurs vues du dictionnaire de données permettent d'obtenir des infor-
mations sur les tablespaces et les chiers de données
DBA_TABLESPACES ou V$TABLESPACE : informations sur les ta-
blespaces
DBA_DATA_FILES ou V$DATAFILE : informations sur les chiers
de données (sauf ceux des tablespaces temporaires gérés localement)
DBA_TEMP_FILES ou V$TEMPFILE : informations sur les chiers
de données des tablespaces temporaires gérés localement
DBA_TABLESPACE_GROUPS : informations sur les groupes de ta-
blespaces temporaires
DATABASE_PROPERTIES : propriétés de la BD dont le tablespace
temporaire par défaut, le tablespace permanent par défaut et le type
de tablespace par défaut (BIGFILE ou SMALLFILE)
Cours d'administration de Base de Données 111
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des tablespaces

Les informations sur les tablespaces et les chiers de données

Supervision du stockage des tablespaces


Plusieurs vues du dictionnaire de données permettent d'obtenir des infor-
mations sur le stockage à l'intérieur des tablespaces.
DBA_FREE_SPACE : informations sur l'espace disponible à l'inté-
rieur d'un tablespace
DBA_SEGMENTS : informations sur les segments alloués à l'inté-
rieur d'un tablespace
DBA_EXTENTS : informations sur les extensions alloués à l'intérieur
d'un tablespace
V$SORT_SEGMENT : supervision du stockage des segments tem-
poraires

Cours d'administration de Base de Données 112


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Rappel sur le chier de contrôle

Le chier de contrôle contient des informations de contrôle sur la base de


données :
Nom de la BD
Date/heure de création de la BD
Emplacement des autres chiers de la BD (chiers de données et de
journalisation)
Numéro de séquence actuel des chiers de journalisation
Informations sur les points de reprise (checkpoint)
Le chier de contrôle est automatiquement mis à jour par Oracle lors de
chaque modication de la structure de la BD.
La taille du chier de contrôle est déterminé par Oracle.

Cours d'administration de Base de Données 113


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Rappel sur le chier de contrôle

Il est le premier chier ouvert lorsqu'une instance est lancée pour


ouvrir une BD.
Il permet de localiser et d'ouvrir les autres chiers de la BD.
S'il ne peut pas être trouvé (ou endommagé), la BD ne peut pas être
montée même si les autres chiers de la BD sont présents (l'instance
reste dans le statut NOMOUNT).
Pour des raisons de sécurité, Oracle recommande de multiplexer le
chier de contrôle et de les localiser sur des disques diérents.
Techniquement, il est possible de créer une BD avec un seul chier
de contrôle mais il est vivement conseillé d'utiliser plusieurs copies,
même si le serveur ne comprend qu'un disque (cela met à l'abri d'une
suppression accidentelle)

Cours d'administration de Base de Données 114


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Les informations sur les chiers de contrôle

La vue V$CONTROLFILE donne la liste des chiers de contrôle


SQL> select * from V$CONTROLFILE ;

Colonne Description
STATUS Normalement toujours vide, INVALID si
le nom ne peut pas être déterminé
NAME Nom du chier de contrôle
IS_RECOVERY_FILE_DEST Le chier de contrôle est stocké dans la
zone de récupération rapide ou non

Cours d'administration de Base de Données 115


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Les informations sur les chiers de contrôle

Certaines colonnes de la vue V$DATABASE donnent des


informations sur les chiers de contrôle

Colonne Description
CONTROLFILE_CREATED Date de création du chier de contrôle
CONTROLFILE_TIME Date/heure de dernier enregistrement
dans le chier de contrôle

Cours d'administration de Base de Données 116


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Multiplexer le chier de contrôle

Il est conseillé de faire fonctionner la BD avec au moins deux chiers


de contrôle, si possible sur des disques diérents (dans l'idéal, 3 ou 4
sur des disques diérents)
Le multiplexage peut être mis en ÷uvre
lors de la création de la BD, en spéciant la liste des chiers de contrôle
souhaités dans le paramètre CONTROL_FILES avant d'exécuter l'ordre
CREATE DATABASE
Ultérieurement. Il faut arrêter proprement la BD, dupliquer un chier de
contrôle existant vers le nouvel emplacement, mentionner le nouveau chier
de contrôle dans le paramètre CONTROL_FILES et redémarrer la BD.
En cas d'utilisation d'un chier de paramètres, il faut modier le paramètre
CONTROL_FILES avant d'arrêter la BD

Cours d'administration de Base de Données 117


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Multiplexer le chier de contrôle


Spécier l'emplacement du nouveau chier de contrôle dans le chier
de paramètres
SQL> ALTER SYSTEM SET CONTROL_FILES =
'F :\oradata\hermes\control01.ctl',
'G :\oradata\hermes\control02.ctl' ;
Arrêter la BD proprement
SQL> SHUTDOWN IMMEDIATE ;
Dupliquer un chier de contrôle existant vers le nouvel emplacement
SQL> HOST copy F :\oradata\hermes\control01.ctl -
G :\oradata\hermes\control02.ctl
Redémarrer la BD
SQL> STARTUP ;
Vérier
SQL> from v$controlle ;
Cours d'administration de Base de Données 118
Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de contrôle

Multiplexer le chier de contrôle

Remarques
La duplication du chier de contrôle doit se faire sur un chier cohé-
rent.
Il ne faut pas dupliquer ce chier alors que la BD est ouverte ou
après un SHUTDOWN ABORT (le chier de contrôle n'a pas été
fermé proprement)
Si la copie du chier de contrôle n'est pas jugée cohérente par Oracle,
une erreur se produira au redémarrage.

Cours d'administration de Base de Données 119


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Rappel sur les chiers de journalisation

Les chiers de journalisation enregistrent toutes les modications ap-


portées à la BD.
Ils sont organisés en groupes (min 2) composés d'un ou de plusieurs
membres (min 1) qui sont crées lors de la dénition de la BD.

Cours d'administration de Base de Données 120


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Rappel sur les chiers de journalisation

Tous les membres d'un groupe ont la même taille dénie lors de la
création du groupe, le nombre de groupe est déterminé, il n'augmente
pas dynamiquement.
Ils sont écrits de manière circulaire ; les informations sauvegardées
sont donc, par défaut, périodiquement écrasées.
Lorsqu'un groupe est plein, l'instance Oracle passe au groupe suivant et
ainsi de suite jusqu'au dernier.
Lorsque le dernier groupe est plein, l'instance Oracle repasse au premier.
Le passage d'un groupe à un autre est appelé basculement (switch).
Lorsque l'instance Oracle revient dans le premier groupe, elle écrase les
informations qui y sont stockées ⇒ ces informations ne sont plus disponibles
en cas de besoin.
An de garantir la possibilité d'eectuer des restaurations complètes, il faut
d'activer le mécanisme d'archivage.

Cours d'administration de Base de Données 121


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Les informations sur les chiers de journalisation


Plusieurs vues du dictionnaire permettent d'obtenir des informations sur
les chiers de journalisation
V$LOG : informations sur les groupes

Colonne Description
GROUP# Numéro du groupe
SEQUENCE# Nom du chier de contrôle
BYTES Taille en octets
MEMBERS Nombre de membres
ARCHIVED Groupe archivé
STATUS Statut du groupe ( UNUSED | CURRENT | AC-
TIVE | INACTIVE)
FIRST_CHANGE# Plus petit numéro SCN écrit dans le groupe
FIRST_TIME Date et heure du plus petit numéro SCN

Cours d'administration de Base de Données 122


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Les informations sur les chiers de journalisation


V$LOGFILE : informations sur les membres
Colonne Description
GROUP# Numéro du groupe
STATUS Statut du membre (INVALID | STALE | DE-
LETED)
MEMBER Nom complet du chier membre
V$LOG_HISTORY : informations sur l'historique des chiers de
journalisation
Colonne Description
SEQUENCE# Numéro de séquence du groupe
FIRST_CHANGE# Plus petit numéro SCN écrit dans le groupe
NEXT_CHANGE# Plus grand numéro SCN écrit dans le groupe
FIRST_TIME Date et heure du plus petit numéro SCN

Cours d'administration de Base de Données 123


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Dimensionner les chiers de journalisation

La détermination du nombre de groupes et la taille des groupes ne se


base pas sur une formule de calcul.
Au contraire, il est possible d'auditer le fonctionnement des chiers
de journalisations an de voir si le nombre de groupes et la taille des
groupes sont satisfaisants.
En cas de problème, il est relativement simple d'apporter des correc-
tions en ajoutant un nouveau groupe ou en augmentant la taille des
groupes

Cours d'administration de Base de Données 124


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Dimensionner les chiers de journalisation

L'objectif est simple :


Utiliser des chiers de journalisation de taille susante pour éviter
des basculements trop fréquentes, pénalisant pour les performances.
⇒ Oracle recommande d'avoir un basculement toutes les 20 à 30
minutes environ.
Utiliser un nombre susant de groupes pour permettre aux points de
reprise et à l'archivage de se terminer avant que l'instance ne revienne
sur un chier de journalisation.
⇒ Si le point de reprise ou l'archivage ne sont pas terminés, le pro-
cessus LGWR attend, ce qui est très mauvais pour les performances.

Cours d'administration de Base de Données 125


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Dimensionner les chiers de journalisation

L'objectif est simple :


Avoir des basculements peu fréquents et donc des points de reprise
peu fréquents, combinés à une forte activité de mise à jour est béné-
que pour les performances mais cela risque en cas d'arrêt anormal
de l'instance, d'augmenter la durée de la récupération de l'instance
et donc, la durée du redémarrage.
⇒ Oracle recommande de trouver un bon compromis entre la perfor-
mance en fonctionnement normal et la performance du redémarrage,
en cas d'arrêt anormal de l'instance.

Cours d'administration de Base de Données 126


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation

Ajouter un nouveau membre à un groupe


Permet d'améliorer la sécurité des chiers de journalisation
Le multiplexage des chiers de journalisation peut être mis en ÷uvre

Lors de la création de la BD : il sut de spécier plusieurs


membres pour chaque groupe listé dans la clause LOGFILE de
l'ordre CREATE DATABASE
Ultérieurement : à l'aide de l'ordre SQL ALTER DATABASE
Syntaxe : Ajout d'un nouveau membre à un groupe
ALTER DATABASE
ADD LOGFILE MEMBER 'nom_chier' [..] TO GROUP numéro ;

Cours d'administration de Base de Données 127


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation


Ajouter un nouveau groupe
Permet d'améliorer la disponibilité des chiers de journalisation pour
le processus LGWR en augmentant la durée d'un cycle complet de
rotation
Syntaxe : Ajout d'un nouveau groupe
ALTER DATABASE
ADD LOGFILE [GROUP numéro] ('nom_chier' [. . . ]) [SIZE valeur [K|M|G]]
[REUSE] ;

Numéro : numéro du groupe


Nom_chier : chemin d'accès complet à un chier membre du groupe
Size : taille de chaque membre du groupe en octets (en K ou M ou G)
REUSE : Si le chier existe déjà, Oracle le réutilise et l'écrase

Cours d'administration de Base de Données 128


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation

Déplacer un membre du groupe


Permet d'améliorer la répartition des entrées/sorties par exemple
Le mode opératoire est :
Arrêter la BD proprement
SQL> SHUTDOWN IMMEDIATE
Déplacer les(s) chier(s) de journalisation vers le nouvel emplacement
SQL> HOST move E :\oradata\hermes\redo04a.log  F :\oradata\hermes\redo04a
Monter la BD
SQL> STARTUP MOUNT
Utiliser l'ordre SQL ALTER DATABASE RENAME FILE pour indiquer à
Oracle le nouvel emplacement
SQL> ALTER DATABASE RENAME FILE 'E :\oradata\hermes\redo04a.log'
TO 'F :\oradata\hermes\redo04a.log' ;
Ouvrir la BD
SQL> ALTER DATABASE OPEN ;

Cours d'administration de Base de Données 129


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation

Renommer un membre du groupe


Syntaxe : Renommage d'un membre du groupe
ALTER DATABASE
RENAME FILE 'ancien_nom_complet' TO 'nouveau_nom_complet' ;

Cet ordre SQL ni renomme, ni déplace le chier physique ; cette opéra-


tion doit être eectuée par une commande du système d'exploitation.
Cet ordre SQL sert juste à indiquer à Oracle le nouvel emplacement
ou le nouveau nom d'un chier.

Cours d'administration de Base de Données 130


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation


Supprimer un groupe
Peut être utilisé dans une opération d'augmentation de la taille des
groupes (ajout d'un nouveau groupe plus gros puis suppression d'un
ancien)
Syntaxe : Suppression d'un membre du groupe
ALTER DATABASE
DROP LOGFILE GROUP numéro ;
La BD doit avoir au moins 3 groupes de chiers de journalisation pour pouvoir
en supprimer un (il doit rester au moins 2 groupes).
Seul un groupe au statut INACTIVE peut être supprimé
Le groupe courant (celui dans lequel LGWR est en train d'écrire) ne peut pas être
supprimé ou si le groupe a le statut ACTIVE
En mode ARCHIVELOG, un groupe non encore archivé ne peut pas être supprimé

Cours d'administration de Base de Données 131


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation


Supprimer un membre d'un groupe
En cas de chier endommagé par exemple
Syntaxe : Suppression d'un groupe
ALTER DATABASE
DROP LOGFILE MEMBER 'nom_chier' [. . . .] ;
Le groupe concerné doit avoir au moins 2 membres pour pouvoir en supprimer un
(il doit toujours au moins exister un membre valide par groupe)
Si le groupe a 2 membres dont un invalide, il est impossible de supprimer le
membre valide.
Pour supprimer tous les membres d'un groupe, il faut supprimer le groupe
Un membre ne peut être supprimé que si le groupe a un statut INACTIVE
En mode ARCHIVELOG, un membre non encore archivé ne peut pas être supprimé

Cours d'administration de Base de Données 132


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Administrer les chiers de journalisation

Forcer le basculement du groupe courant au suivant


Peut être utilisé dans l'opération d'augmentation de taille
Syntaxe : Basculement du groupe courant au suivant
ALTER SYSTEM SWITCH LOGFILE ;

Cours d'administration de Base de Données 133


Cours d'administration de Base de Données

Les tâches d'administration Oracle


Gestion des chiers de journalisation

Contrôler la fréquence des points de reprise


Les points de reprise se déclenchent lors d'un basculement de chier
de journalisation
Lorsque les chiers de journalisation sont gros et que les basculements
sont peu fréquentes ⇒ conduit à des redémarrages un peu longs en
cas anormal de l'instance
⇒ Il peut être intéressant de contrôler la fréquence des points de
reprise et d'avoir des points de reprise intermédiaires entre les bascu-
lements de chiers de journalisation
La méthode recommandée consiste à utiliser le paramètre FAST_START
_MTTR_TARGET qui indique le nombre maximum de secondes sou-
haité pour le redémarrage de l'instance après un arrêt anormal.
Une fois que ce paramètre est positionné, l'instance ajuste automa-
tiquement la fréquence des points de reprise an de ne pas avoir
trop d'activité à rejouer dans les chiers de données, en cas d'arrêt
anormal.
Cours d'administration de Base de Données 134
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs
Gestion des prols
Gestion des privilèges
Gestion des rôles

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 135


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Quelques notions de base

Compte utilisateur de base de données : un moyen d'organiser


l'appartenance des objets de base de données et l'accès à ces objets.
Schéma : est une collection (ou un ensemble) nommé d'objets tels
que des tables, vues, clusters, procédure et packages associés à un
utilisateur précis. Quand un utilisateur de base de données est crée,
son schéma est automatiquement crée. Un utilisateur ne pourra alors
être associé qu'à un seul schéma et réciproquement.
Prol : un ensemble nommé de limites concernant l'utilisation de la
base de données et les ressources des instances.
Privilège : droit d'exécuter un type particulier d'instruction SQL ou
d'accéder à l'objet d'un autre utilisateur.
Rôle : un groupe nommé de privilèges liés qui sont accordés à des
utilisateurs ou à d'autres rôles.
Cours d'administration de Base de Données 136
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Identication de l'utilisateur Oracle

Un utilisateur est identié au niveau de la base par son nom et peut


se connecter puis accéder aux objets de la base sous réserve d'avoir
reçu un certain nombre de privilèges.
L'utilisateur se connecte à la BD en saisissant un nom et un mot de
passe.
Oracle vérie le nom et le mot de passe de l'utilisateur.

Cours d'administration de Base de Données 137


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Création d'un utilisateur

Pour pouvoir créer un utilisateur vous devez posséder le privilège CREATE


USER.
L'ordre SQL CREATE USER permet de créer un nouvel utilisateur.
Syntaxe : Création d'un utilisateur
CREATE USER nom IDENTIFIED { BY mot_de_passe | EXTERNALLY}
[DEFAULT TABLESPACE nom_tablespace]
[TEMPORARY TABLESPACE nom_tablespace]
[QUOTA {valeur [K|M] | UNLIMITED } ON nom_tablespace [,...]]
[PROFILE nom_prol]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK|UNLOCK}] ;

Cours d'administration de Base de Données 138


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Création d'un utilisateur

Colonne Description
nom nom de l'utilisateur
IDENTIFIED l'utilisateur est identié par Oracle (mot de passe) ou
par le système d'exploitation (EXTERNALLY)
DEFAULT TABLESPACE le tablespace dans lequel est crée les segments de l'uti-
lisateur par défaut
TEMPORARY TABLESPACE le tablespace dans lequel est crée les segments tempo-
raires de l'utilisateur
QUOTA permet de limiter ou pas chaque espace alloué.
PROFILE aecte un prol (caractéristiques système relatives au
CPU et auxconnexions) à l'utilisateur.
PASSWORD EXPIRE obliger l'utilisateur à changer son mot de passe à la
première connexion
ACCOUNT verrouiller ou autoriser l'accès à la base

Mme. Wafa Mekki Cours d'administration de Base de Données 139


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Création d'un utilisateur

Exemple 1 : Création d'un utilisateur


CREATE USER User1 IDENTIFIED BY
oracle11gDEFAULT TABLESPACE USERS
QUOTA 10M ON USERSTEMPORARY
TABLESPACE TEMPQUOTA 5M ON TEMP
PASSWORD EXPIRE ;

Exemple 2 : Création d'un utilisateur


CREATE USER User2 IDENTIFIED BY oracle11g
DEFAULT TABLESPACE USERSACCOUNT
LOCK ;

Cours d'administration de Base de Données 140


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Modication d'un utilisateur

Pour pouvoir modier les caractéristiques d'un utilisateur, vous devez pos-
séder le privilège ALTER USER.
L'ordre SQL ALTER USER permet de modier un utilisateur.
Syntaxe : Création d'un utilisateur
ALTER USER nom IDENTIFIED { BY mot_de_passe | EXTERNALLY}
[DEFAULT TABLESPACE nom_tablespace]
[TEMPORARY TABLESPACE nom_tablespace]
[QUOTA {valeur [K|M] | UNLIMITED } ON nom_tablespace [,...]]
[PROFILE nom_prol]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK|UNLOCK}] ;

Cours d'administration de Base de Données 141


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Modication d'un utilisateur

Exemple 1 : Modication d'un utilisateur


ALTER USER User1
IDENTIFIED BY oracle
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON TEMP ;
Exemple 2 : Modication d'un utilisateur
ALTER USER User2
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
ACCOUNT UNLOCK ;

Cours d'administration de Base de Données 142


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Suppression d'un utilisateur

Pour pouvoir supprimer un utilisateur vous devez posséder le privilège


DROP USER.
L'ordre SQL DROP USER permet de supprimer un utilisateur.
Syntaxe : Suppression d'un utilisateur
DROP USER nom [CASCADE] ;
Si l'utilisateur possède des objets, l'option CASCADE doit être pré-
sente pour forcer la suppression et détruire tous les objets du schéma
de l'utilisateur.
Un utilisateur actuellement connecté ne peut pas être supprimé.
Pour forcer cette suppression, il faut arrêter ses sessions par la com-
mande ALTER SYSTEM et l'option KILL SESSION.
Cours d'administration de Base de Données 143
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Les informations sur les utilisateurs

Plusieurs vues du dictionnaire de données permettent d'obtenir des infor-


mations sur les utilisateurs :
DBA_USERS : informations sur les utilisateurs

Colonne Description
USERNAME Nom de l'utilisateur
USER_ID Identiant de l'utilisateur
PASSWORD Mot de passe (crypté) de l'utilisateur
ACCOUNT_STATUS Statut du compte (OPEN, LOCKED,UNLOCKED,
EXPIRED..)
LOCK_DATE Date du verrouillage (si le compte est verrouillé)
EXPIRY_DATE Date d'expiration du mot de passe
PROFILE Prol

Cours d'administration de Base de Données 144


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des utilisateurs

Les informations sur les utilisateurs

DBA_TS_Quotas : informations sur les quotas des utilisateurs

Colonne Description
TABLESPACE_NAME Nom du tablespace
USERNAME Nom de l'utilisateur
BYTES Espace, en octets, actuellement utilisé par l'utilisateur.
MAX_BYTES Quota, en octets, de l'utilisateur sur le tablespace
BLOCKS Espace, en blocs, actuellement utilisé par l'utilisateur
MAX_BLOCKS Quota, en blocs, de l'utilisateur sur le tablespace

Cours d'administration de Base de Données 145


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Introduction de la notion du prol

Un prol regroupe des caractéristiques système (ressources) qu'il est


possible d'aecter à un ou plusieurs utilisateurs.
Les ressources suivantes peuvent être limitées :
Temps CPU par appel et/ou par session
Nombre de lectures logiques par appel et/ou par session
Nombre de sessions ouvertes simultanément par un utilisateur
Temps d'inactivité par session
Durée totale de la session
Quantité de mémoire privée dans la SGA

Cours d'administration de Base de Données 146


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Introduction de la notion du prol

Un prol est identié par son nom.


Un prol est créé par CREATE PROFILE, modié par ALTER
PROFILE et supprimé par DROP PROFILE.
Un prol peut être attribué à un utilisateur :
lors de la création de l'utilisateur (CREATE USER)
lors d'une modication de l'utilisateur (ALTER USER)
Le prol DEFAULT est aecté par défaut à chaque utilisateur si au-
cun prol déni n'est précisé. Il est automatiquement crée lors de la
création de la BD.

Cours d'administration de Base de Données 147


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Création d'un prol


Pour pouvoir créer un prol vous devez posséder le privilège CREATE
PROFILE.
L'ordre SQL CREATE PROFILE permet de créer un nouveau prol.
Syntaxe : Création d'un prol
CREATE PROFILE nomProl LIMIT
[SESSION_PER_USER { valeur | UNLIMITED | DEFAULT }]
[CPU_PER_SESSION { valeur | UNLIMITED | DEFAULT }]
[CPU_PER_CALL { valeur | UNLIMITED | DEFAULT }]
[CONNECT_TIME { valeur | UNLIMITED | DEFAULT }]
[IDLE_TIME { valeur | UNLIMITED | DEFAULT }]
[LOGICAL_READS_PER_SESSION { valeur | UNLIMITED | DEFAULT }]
[LOGICAL_READS_PER_CALL { valeur | UNLIMITED | DEFAULT }]
[COMPOSITE_LIMIT { valeur | UNLIMITED | DEFAULT }]
[PRIVATE_SGA{ valeur [K|M] | UNLIMITED | DEFAULT }]
[FAILED_LOGIN_ATTEMPTS{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_LIFE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_REUSE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_REUSE_MAX{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_LOCK_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_GRACE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_VERIFY_FUNCTION{nom_fonction | NULL | DEFAULT }] ;

Cours d'administration de Base de Données 148


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Création d'un prol

Les limitations de ressources sont :

Colonne Description
SESSIONS_PER_USER Nombre de sessions simultanés
CPU_PER_SESSION Temps CPU maximal pour une session en cen-
tièmes de secondes
CPU_PER_CALL Temps CPU autorisé pour un appel noyau en cen-
tièmes de secondes
CONNECT_TIME Temps total autorisé pour une session en minutes
IDLE_TIME Temps d'inactivité autorisé en minutes
LOGICAL_READS_PER_SESSION Nombre de lectures logiques par session
LOGICAL_READS_PER_CALL Nombre de lectures logiques par appel
PRIVATE_SGA Espace mémoire privé alloué dans la SGA

Cours d'administration de Base de Données 149


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Création d'un prol


Les limitations relatives aux mots de passe sont :

Colonne Description
FAILED_LOGIN_ATTEMPTS Nombre de tentatives de connexion avant de bloquer
l'utilisateur
PASSWORD_LOCK_TIME Nombre de jours d'interdiction d'accès à un compte après
quel nombre de tentatives de connexions a été atteint
PASSWORD_LIFE_TIME Nombre de jours de validité du mot de passe
PASSWORD_GRACE_TIME Nombre de jours d'une période de grâce qui prolonge
l'utilisation du mot de passe avant son changement
PASSWORD_REUSE_TIME Nombre de jours avant que le mot de passe puisse être
utilisé à nouveau. Si ce paramètre est initialisé à un en-
tier, le paramètre PASSWORD_REUSE_MAX doit être
passé à UNLIMITED.
PASSWORD_REUSE_MAX Nombre de modications de mot de passe avant de
pouvoir réutiliser le mot de passe courant. Si ce pa-
ramètre est initialisé à un entier, le paramètre PASS-
WORD_REUSE_TIME doit être passé à UNLIMITED.

Cours d'administration de Base de Données 150


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Création d'un prol


Exemple : Création d'un prol
CREATE PROFILE
prol_Etudiants LIMIT
SESSIONS_PER_USER 3
CPU_PER_CALL 3000
CONNECT_TIME 45
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 15K
IDLE_TIME 40
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 70
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10 ;

Aectation de ce prol à l'utilisateur User1


ALTER USER user1 PROFILE prol_Etudiants ;
Cours d'administration de Base de Données 151
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Modication d'un prol


Pour pouvoir créer un prol vous devez posséder le privilège ALTER PRO-
FILE.
L'ordre SQL ALTER PROFILE permet de modier un prol.
Syntaxe : Modication d'un prol
ALTER PROFILE nomProl LIMIT
[SESSION_PER_USER { valeur | UNLIMITED | DEFAULT }]
[CPU_PER_SESSION { valeur | UNLIMITED | DEFAULT }]
[CPU_PER_CALL { valeur | UNLIMITED | DEFAULT }]
[CONNECT_TIME { valeur | UNLIMITED | DEFAULT }]
[IDLE_TIME { valeur | UNLIMITED | DEFAULT }]
[LOGICAL_READS_PER_SESSION { valeur | UNLIMITED | DEFAULT }]
[LOGICAL_READS_PER_CALL { valeur | UNLIMITED | DEFAULT }]
[COMPOSITE_LIMIT { valeur | UNLIMITED | DEFAULT }]
[PRIVATE_SGA{ valeur [K|M] | UNLIMITED | DEFAULT }]
[FAILED_LOGIN_ATTEMPTS{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_LIFE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_REUSE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_REUSE_MAX{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_LOCK_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_GRACE_TIME{ valeur | UNLIMITED | DEFAULT }]
[PASSWORD_VERIFY_FUNCTION{nom_fonction | NULL | DEFAULT }] ;

Cours d'administration de Base de Données 152


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Suppression d'un prol

Pour pouvoir supprimer un prol, vous devez posséder le privilège DROP


PROFILE.
L'ordre SQL DROP PROFILE permet de supprimer un prol.
Syntaxe : Suppression d'un prol
DROP PROFILE nomProl [CASCADE] ;

CASCADE permet de supprimer le prol même si des utilisateurs en


sont pourvus (option obligatoire dans ce cas)
La suppression d'un prol n'aecte les utilisateurs qu'à leur prochaine
connexion.
Le prol DEFAULT ne peut pas être supprimé.

Cours d'administration de Base de Données 153


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des prols

Les informations sur les prols

Plusieurs vues du dictionnaire de données permettent d'obtenir des infor-


mations sur les prols :
DBA_USERS : informations sur les utilisateurs, dont le prol attri-
bué.
DBA_PROFILES : informations sur les prols.

Colonne Description
PROFILE Nom du prol
RESOURCE_NAME Nom de la ressource contrôlée
RESOURCE_TYPE Type de la ressource contrôlée
LIMIT Limite de la ressource

Cours d'administration de Base de Données 154


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Les types de privilèges

Il existe deux types de privilèges :


Privilège système : est le droit d'exécuter un ordre SQL en général.
Chaque ordre SQL a généralement, au moins, un privilège système
associé qui porte le même nom que l'ordre SQL. Par exemple, l'ordre
SQL CREATE TABLE possède un privilège système associé CREATE
TABLE
Privilège objet : est le droit d'accéder à un objet d'un autre utilisa-
teur. Seul le propriétaire d'un objet a le droit d'y accéder. Pour qu'un
autre utilisateur puisse accéder à l'objet, le propriétaire de l'objet doit
lui donner un privilège objet.

Cours d'administration de Base de Données 155


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Les privilèges système

Cours d'administration de Base de Données 156


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Attribution d'un privilège système à un utilisateur

L'ordre SQL GRANT permet d'attribuer un privilège système.


Syntaxe : Attribution d'un privilège système à un utilisateur
GRANT { privilègeSystème | nomRôle | ALL PRIVILEGES }
[, { privilègeSystème | nomRôle | ALL PRIVILEGES }]. . .
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle | PUBLIC } ]. . .
[ IDENTIFIED BY motdePasse ]
[ WITH ADMIN OPTION ] ;

Cours d'administration de Base de Données 157


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Attribution d'un privilège système à un utilisateur

Colonne Description
privilègeSystème description du privilège système
ALL PRIVILEGES tous les privilèges système
PUBLIC pour attribuer le(s) privilège(s) à tous les utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans la base.
Cette option n'est pas valide si le bénéciaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION permet d'attribuer aux bénéciaires le droit de retrans-
mettre le(s) privilège(s) reçu(s) à une tierce personne

Le privilège attribué est immédiatement actif. Pour attribuer un privilège


système, il faut avoir reçu :
le privilège en question avec la clause WITH ADMIN OPTION
le privilège système GRANT ANY PRIVILEGE

Cours d'administration de Base de Données 158


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Attribution d'un privilège système à un utilisateur

Exemple 1
GRANT CREATE TABLE TOUser1
WITH ADMIN OPTION ;
Exemple 2
GRANT CREATE SESSION,
CREATE ANY TABLE,DROP
ANY TABLE TO User2 ;

Cours d'administration de Base de Données 159


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège système à un utilisateur

L'ordre SQL REVOKE permet de révoquer un privilège système.


Syntaxe : Révocation d'un privilège système à un utilisateur
REVOKE
{ privilègeSystème | nomRôle | ALL PRIVILEGES }
[,{ privilègeSystème | nomRôle }]. . .
FROM { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle } ]. . . ;

Colonne Description
ALL PRIVILEGES valable si l'utilisateur ou le rôle ont tous les privilèges
système
PUBLIC pour annuler le(s) privilège(s) à chaque utilisateur
ayant reçu ce(s) privilège(s) par l'option PUBLIC.

Cours d'administration de Base de Données 160


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège système à un utilisateur

Le privilège est immédiatement révoqué et ne peut plus être exercé. Pour révoquer
un privilège système, il faut avoir reçu :
le privilège en question avec la clause WITH ADMIN OPTION
le privilège système GRANT ANY PRIVILEGE
Il n'y a pas de cascade dans la révocation d'un privilège système qui a été transmis
grâce à la clause WITH ADMIN OPTION.
REVOKE permet de révoquer uniquement les privilèges qu'un utilisateur a reçu
en direct (nom les privilèges qu'il a implicitement via PUBLIC).
Il en est de même pour PUBLIC : vous ne pouvez pas révoquer à PUBLIC un
privilège non attribué à PUBLIC en pensant l'enlever ainsi à tout le monde.
Si vous avez attribué un privilège avec l'option WITH ADMIN OPTION et que
vous souhaitez enlever cette possibilité de transmission, il faut révoquer le privilège
et l'attribuer de nouveau sans l'option.

Cours d'administration de Base de Données 161


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège système à un utilisateur

Exemple 1
REVOKE CREATE SESSION
FROM User1, User2 ;
Exemple 2
REVOKE ALL PRIVILEGES FROM User2 ;

Cours d'administration de Base de Données 162


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Les privilèges objet

Cours d'administration de Base de Données 163


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Attribution d'un privilège objet à un utilisateur


L'ordre SQL GRANT permet d'attribuer un privilège objet.
Syntaxe : Attribution d'un privilège objet à un utilisateur
GRANT { privilègeObjet | nomRôle | ALL PRIVILEGES } [(colonne1 [,colonne2]. . . )]
[, { privilègeObjet | nomRôle | ALL PRIVILEGES }] [(colonne1 [,colonne2]. . . )]. . .
ON { [schéma.]nomObjet | { DIRECTORY nomRépertoire | JAVA { SOURCE |
RESOURCE } [schéma.]nomObjet } }
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle | PUBLIC } ]. . .
[WITH GRANT OPTION] ;

Colonne Description
privilègeObjet description du privilège objet
colonne précise la ou les colonnes sur lesquelles se porte le pri-
vilège INSERT, REFERENCES, ou UPDATE
ALL PRIVILEGES donne tous les privilèges avec l'option GRANT OP-
TION l'objet en question.
PUBLIC pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH ADMIN OPTION permet de donner aux bénéciaires le droit de retrans-
mettre les privilèges reçus à une tierce personne (utili-
sateur(s) ou rôle(s)).
Cours d'administration de Base de Données 164
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Attribution d'un privilège objet à un utilisateur

Plusieurs privilèges peuvent être attribué à plusieurs utilisateurs en un seul


ordre ; par contre, l'attribution des privilèges objet s'eectue objet par ob-
jet. Pour attribuer un privilège objet, il faut avoir reçu :
être propriétaire de l'objet
avoir reçu le privilège en question avec la clause WITH ADMIN OP-
TION
avoir reçu le privilège système GRANT ANY PRIVILEGE
Exemple
GRANT
UPDATE(nom, age),SELECT
ON Pilote TO User1 ;

Cours d'administration de Base de Données 165


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège objet à un utilisateur


L'ordre SQL REVOKE permet de révoquer un privilège objet.
Syntaxe : Révocation d'un privilège système à un utilisateur
REVOKE { privilègeObjet | ALL PRIVILEGES } [(colonne1 [,colonne2]. . . )]
[, { privilègeObjet | ALL PRIVILEGES }] [(colonne1 [,colonne2]. . . )]. . .
ON { [schéma.]nomObjet | { DIRECTORY nomRépertoire | JAVA { SOURCE |
RESOURCE } [schéma.]nomObjet } }
FROM { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle | PUBLIC } ]. . .
[CASCADE CONSTRAINTS] [FORCE] ;

Colonne Description
CASCADE CONSTRAINTS concerne les privilèges REFERENCES ou ALL PRI-
VILEGES. Cette option permet de supprimer la
contrainte référentielle entre deux tables de schémas
distincts
FORCE concerne les privilèges EXECUTE sur les types (exten-
sions SQL3). En ce cas, tous les objets dépendants
(types, tables ou vues) sont marqués INVALID et les
index sont notés UNUSABLE.
Cours d'administration de Base de Données 166
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège objet à un utilisateur

Pour révoquer un privilège objet, il faut :


être propriétaire de l'objet
avoir reçu le privilège en question avec la clause WITH ADMIN OPTION
avoir reçu le privilège système GRANT ANY PRIVILEGE
Il y a cascade dans la révocation d'un privilège objet qui a été transmis grâce à
la clause WITH ADMIN OPTION.
REVOKE permet de révoquer uniquement les privilèges qu'un utilisateur a reçu
en direct (pas les privilèges qu'il a implicitement via PUBLIC).
Il en est de même pour PUBLIC : vous ne pouvez pas révoquer à PUBLIC un
privilège non attribué à PUBLIC en pensant l'enlever ainsi à tout le monde.
Si vous avez attribué un privilège avec l'option WITH ADMIN OPTION et que
vous souhaitez enlever cette possibilité de transmission, il faut révoquer le privilège
et l'attribuer de nouveau sans l'option.

Cours d'administration de Base de Données 167


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Révocation d'un privilège objet à un utilisateur

Exemple 1
REVOKE UPDATE, SELECT
ON Pilote FROM User1 ;
Exemple 2
REVOKE REFERENCES
ON Pilote FROM User1
;doit être utilisée.
Exemple 3
REVOKE REFERENCES
ON Pilote FROM User1
CASCADE CONSTRAINTS ;
Cours d'administration de Base de Données 168
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des privilèges

Privilèges prédénis
Oracle propose des privilèges prédénis pour faciliter la gestion des droits.

Les privilèges système SYSDBA et SYSOPER sont nécessaires pour qu'un utili-
sateur puisse démarrer (startup) ou arrêter (shutdown) la base de données.
Pour une connexion avec le privilège SYSDBA, vous êtes dans le schéma de SYS.
Avec SYSOPER, vous êtes dans le schéma PUBLIC.
Les privilèges SYSOPER sont inclus dans ceux de SYSDBA.

Cours d'administration de Base de Données 169


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Introduction au rôle
Un rôle est un ensemble nommé de privilèges (système ou objets). Ce
mécanisme facilite la gestion des privilèges.
Les principales caractéristiques des rôles sont :
Un rôle est accordé à un ou plusieurs utilisateurs, voire à tous
(utilisation de PUBLIC).
Un rôle peut être aussi attribué à un autre rôle pour transmettre
davantage de droits.
Un utilisateur peut avoir plusieurs rôles.
Un rôle n'appartient à personne.
La chronologie des actions à entreprendre pour travailler avec des
rôles est la suivante :
1 Création du rôle (CREATE ROLE)
2 Attribution des privilèges (système et objet) au rôle
3 Attribution du rôle aux utilisateurs

Cours d'administration de Base de Données 170


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Introduction au rôle

Le rôle président est constitué du privilège objet SELECT sur la table


Vols, et du privilège système DROP de tables de tout schéma.
Il hérite aussi des privilèges du rôle trésorier constitué du privilège
système CREATE TABLE dans tout schéma.

Cours d'administration de Base de Données 171


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Création d'un rôle


Pour pouvoir créer un prol vous devez posséder le privilège CREATE
ROLE.
L'ordre SQL CREATE ROLE permet de créer un rôle.
Syntaxe : Création d'un prol
CREATE ROLE nomRôle
[ IDENTIFIED { BY motdePasse | USING [schéma.]paquetage | EXTERNALLY | GLO-
BALLY }
| NOT IDENTIFIED] ;

Colonne Description
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, applicative par un
paquetage, externe à Oracle et globale par un service
d'annuaire) avant que le rôle soit activé par SET ROLE

Cours d'administration de Base de Données 172


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Création d'un rôle


Exemple
Voir_Base autorise l'accès en lecture aux tables de deux schémas.
Modif_Pilotes autorise la modication de la table Pilote du schéma
au niveau des colonnes nom et age.
Voir_et_Modier hérite des deux rôles précédents et est aecté à
l'utilisateur président.

Cours d'administration de Base de Données 173


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Création d'un rôle


la chronologie à respecter pour créer, alimenter et aecter ces rôles :
1 Création des trois rôles
CREATE ROLE Voir_Base NOT IDENTIFIED ;
CREATE ROLE Modif_Pilotes NOT IDENTIFIED ;
CREATE ROLE Voir_et_Modier NOT IDENTIFIED ;

2 Alimentation des rôles par des privilèges


GRANT SELECT ON User1.Pilote TO Voir_Base ;
GRANT SELECT ON User2.Qualications TO Voir_Base ;
GRANT UPDATE (nom,age) ON User1.Pilote TO Modif_Pilotes
;
3 Alimentation d'un rôle par deux autres rôles
GRANT Voir_Base, Modif_Pilotes TO Voir_et_Modier ;

4 Aectation des trois rôles à des utilisateurs


GRANT Modif_Pilotes TO User2 ;
GRANT Voir_Base TO User1 User2 ;
GRANT Voir_et_Modier TO président ;
Cours d'administration de Base de Données 174
Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Attribution d'un rôle à un utilisateur ou un rôle

L'ordre SQL GRANT permet d'attribuer un rôle à un utilisateur ou


à un rôle.
Pour attribuer un rôle, il faut avoir reçu :
le rôle en question avec la clause WITH ADMIN OPTION
le privilège système GRANT ANY ROLE
Le rôle attribué n'est pas immédiatement actif si l'utilisateur est déjà
connecté.
La clause WITH ADMIN OPTION donne le droit de modier et sup-
primer le rôle.
Syntaxe : Attribution d'un rôle
GRANT nomRôle [, nomRôle. . . ]
TO utilisateur | nomRôle | PUBLIC [,{utilisateur | nomRôle | PUBLIC}]. . .
[WITH ADMIN OPTION] ;

Cours d'administration de Base de Données 175


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Révocation d'un rôle à un utilisateur ou un rôle

La révocation de privilèges (système ou objet) d'un rôle existant se


réalise à l'aide de la commande REVOKE.
Pour pouvoir annuler un rôle, il faut avoir reçu :
le rôle en question avec la clause WITH ADMIN OPTION
le privilège système GRANT ANY ROLE
Lorsqu'un rôle est révoqué, les utilisateurs connectés avec le rôle actif
peuvent continuer à exercer les privilèges associés, jusqu'à la n de
la session ou jusqu'à la désactivation du rôle.

Syntaxe : Révocation d'un rôle


REVOKE nomRôle [, nomRôle. . . ]
FROM utilisateur | nomRôle | PUBLIC [,{utilisateur | nomRôle | PUBLIC}]. . . ;

Cours d'administration de Base de Données 176


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Activation ou désactivation d'un rôle

Un rôle attribué à un utilisateur est par défaut automatiquement


activé lors de la connexion de l'utilisateur.
Si l'utilisateur est connecté au moment de l'attribution, l'activation
immédiate n'est pas automatique. L'utilisateur peut activer le rôle
grâce à l'ordre SET ROLE.
Le nombre de rôles qui peuvent être actifs simultanément pour un uti-
lisateur est limité par le paramètre d'initialisation MAX_ENABLED_ROLES
(30 par défaut).

Cours d'administration de Base de Données 177


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Activation ou désactivation d'un rôle

Syntaxe : Activation d'un rôle


SET ROLE
{ nomRôle [IDENTIFIED BY motdePasse] [,nomRôle [IDENTIFIED BY motdePasse]]. . .
| ALL [EXCEPT nomRôle [,nomRôle]. . . ]
| NONE } ;

Colonne Description
IDENTIFIED indique le mot de passe du rôle si besoin
ALL Tous les rôles attribués à l'utilisateur sont activés. La clause EX-
CEPT permet d'en enlever certains.
NONE désactive tous les rôles dans la session courante

Cours d'administration de Base de Données 178


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Modication d'un rôle

La commande ALTER ROLE permet de changer le mode d'identi-


cation d'un rôle.
Vous devez :
être propriétaire du rôle
l'avoir reçu avec l'option WITH ADMIN OPTION
détenir le privilège ALTER ANY ROLE

Syntaxe : Modication d'un rôle


ALTER ROLE nomRôle
[ NOT IDENTIFIED | IDENTIFIED
{ BY motdePasse | USING [schéma.]paquetage | EXTERNALLY | GLOBALLY } ] ;

Cours d'administration de Base de Données 179


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Suppression d'un rôle

La commande DROP ROLE permet de supprimer un rôle et le désaf-


fecte en cascade aux bénéciaires.
Vous devez :
être propriétaire du rôle
l'avoir reçu avec l'option WITH ADMIN OPTION
détenir le privilège DROP ANY ROLE
Les utilisateurs des sessions en cours ne sont pas aectés par cette
suppression qui sera active dès une nouvelle session.

Syntaxe : Suppression d'un rôle


DROP ROLE nomRôle ;

Cours d'administration de Base de Données 180


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Rôles prédénis
Oracle propose des rôles prédénis attribués aux utilisateurs SYSTEM et SYS.
Ils sont générés lors de la création de la base par des scripts accessibles.
Il est possible d'utiliser ces rôles en les aectant à des utilisateurs ou en enrichis-
sant d'autres rôles.

Cours d'administration de Base de Données 181


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Les informations sur les rôles

Plusieurs vues du dictionnaire de données permettent d'obtenir des infor-


mations sur les rôles :
DBA_ROLES : liste des rôles existants dans la base.

Colonne Description
ROLE Nom du rôle
PASSWORD_REQUIRED indique si un mot de passe est nécessaire pour activer
le rôle

Cours d'administration de Base de Données 182


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Les informations sur les rôles

DBA_ROLE_PRIVS : rôles attribués aux utilisateurs ou aux rôles.


Colonne Description
GRANTEE Nom de l'utilisateur ou du rôle qui a reçu le rôle
GRANTED_ROLE Nom du rôle reçu
ADMIN_OPTION rôle reçu avec la clause WITH ADMIN OPTION

ROLE_SYS_PRIVS : privilèges système attribués aux rôles.


Colonne Description
ROLE Nom du rôle
PRIVILEGE Nom du privilège système reçu via le rôle
ADMIN_OPTION Privilège reçu avec la clause WITH ADMIN OPTION

Cours d'administration de Base de Données 183


Cours d'administration de Base de Données

Gestion des utilisateurs et de leurs droits


Gestion des rôles

Les informations sur les rôles

ROLE_TAB_PRIVS : privilèges objet attribués aux rôles.


Colonne Description
ROLE Nom du rôle
OWNER Nom de l'utilisateur propriétaire de l'objet
TABLE_NAME Nom de l'objet (pas forcément une table, malgré le
nom)
COLUMN_NAME Nom de la colonne
PRIVILEGE Privilège objet reçu

ROLE_ROLE_PRIVS : rôles attribués à d'autres rôles.


Colonne Description
ROLE Nom du rôle
GRANTED_ROLE Nom du rôle attribué au rôle
ADMIN_OPTION Rôle reçu avec la clause WITH ADMIN OPTION

Cours d'administration de Base de Données 184


Cours d'administration de Base de Données

Gestion des tables et des index

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 185


Cours d'administration de Base de Données

Sauvegarde et récupération

Plan

1 Introduction générale

2 Les bases de l'architecture Oracle

3 Les tâches d'administration Oracle

4 Gestion des utilisateurs et de leurs droits

5 Gestion des tables et des index

6 Sauvegarde et récupération

Cours d'administration de Base de Données 186


Cours d'administration de Base de Données

Sauvegarde et récupération

Cours d'administration de Base de Données 187

Vous aimerez peut-être aussi