Oracle OrgaBD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 10

Oracle Organisation d’une base de données Oracle Organisation d’une base de données

SOMMAIRE
ORGANISATION D’UNE BASE DE DONNEES
1. Architecture ........................................................................................................................ 2
1.1 Les structures mémoire .............................................................................................. 2
1.1.1. La Shared Pool ................................................................................................... 2 1. Architecture
1.1.2. Le Database Buffer Cache.................................................................................. 3
1.1.3. Le Redo Log Buffer ........................................................................................... 4 PMON SMON RECO Clients
1.2 Les Process ................................................................................................................. 4
1.2.1. Les process background ..................................................................................... 4 Serveur
1.2.2. Les process utilisateurs et serveurs .................................................................... 6 Mémoire Globale Multithread Dispatcher
1.3 Les fichiers de la base de données.............................................................................. 7
1.3.1. Les Fichiers Redo Log ....................................................................................... 7 Dispatcher Queue
1.3.2. Les Fichiers de contrôle ..................................................................................... 9
Shared Pool Serveur
2. La Base de Données Oracle.............................................................................................. 10
Dédié
2.1 Notions de Tablespace, Segment, Extent, Cluster et Bloc ....................................... 10
2.1.1. Tablespace ........................................................................................................ 10 DB Buffers
2.1.2. Segment ............................................................................................................ 11
2.1.3. Extent ............................................................................................................... 12 Redo Log Buffer
2.1.4. Cluster .............................................................................................................. 12
2.1.5. Bloc .................................................................................................................. 12 ARCH DBWR
2.2 Gestion de l’espace de stockage............................................................................... 13 LGRW
2.2.1. Paramètres de stockage et de gestion de l’espace ............................................ 13
2.2.2. Gestion des tablespaces, segment rollback et des tables .................................. 15
2.3 Dictionnaire de données ........................................................................................... 17
3. EXERCICE ...................................................................................................................... 18 Archives Journaux Bases
Serveur

Le DBA doit comprendre les composants suivants de l’architecture d’Oracle :


• Les structures mémoire
• Les process
• Les fichiers

1.1 Les structures mémoire

Chaque fois que le serveur Oracle est démarré, la System Global Area (SGA) est
allouée en mémoire. C’est un groupe de mémoire partagée qui contient des
données et informations de contrôle pour un système de base de données Oracle.
La SGA est également appelée Shared Global Area.

La SGA est composée de trois zones :

1.1.1. La Shared Pool

Professeur : ASSALE Adjé Louis 1/19 INP-HB Professeur : ASSALE Adjé Louis 2/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

La Shared Pool est une zone de la SGA qui contient des instructions telles que • Le cache miss
les zones des requêtes SQL partagées et le cache mémoire du dictionnaire des La première fois qu’un process utilisateur Oracle accède à une
données. donnée, le process doit copier cette donnée à partir du disque vers le
cache avant d’y accéder.
- Les zones des requêtes SQL partagées (Shared SQL Areas) • Le cache hit
Quand un process accède à une donnée qui est déjà dans le cache, le
Les zones de requêtes SQL partagées contiennent chacune l’information utilisée process peut lire les données directement à partir de la mémoire.
pour exécuter un seul ordre SQL. Les process exécutant des commandes SQL
identiques partagent cette information. Etant donné que le cache a une taille limitée, toutes les données contenues sur le
disque ne peuvent pas tenir dans le cache. Quand le cache est plein, les cache
Un ordre SQL est placé dans une zone de requêtes SQL partagée, sur la base miss suivants amènent Oracle à écrire sur disque des données qui sont déjà dans
d’un algorithme de hashing appliqué à cet ordre. Par conséquent, seuls les ordres le cache, afin de faire de la place pour les nouvelles données. Les accès suivants
totalement identiques seront dirigés vers le même emplacement de mémoire. aux données écrites sur disque résultent en un cache miss.

- Le cache mémoire du dictionnaire de données (Data Dictionary Cache)


1.1.3. Le Redo Log Buffer
Le dictionnaire de données est un ensemble de tables et de vues contenant
l’information de référence sur la base de données, ses structures et ses Le Redo Log Buffer est un tampon circulaire qui contient des informations sur
utilisateurs. Parmi les données stockées dans le dictionnaire de données, l’on les changements effectués dans la base de données.
trouve :
• Les noms de toutes les tables et vues présentes dans la base de données. • Contient toutes les modifications faites dans la base de données.
• Les noms et types de données des colonnes contenues dans les tables de la • Permet de reconstruire les modifications faites sur la base de
base de données. données et les entrées de rollback segments lorsqu’une restauration
• Les privilèges de tous les utilisateurs Oracle. est nécessaire.
• Peut être ignoré en utilisant le mot-clé UNREVOCABLE dans les
Le cache mémoire du dictionnaire de données est également appelé row cache. ordres CREATE TABLE et CREATE INDEX.
• Peut être ignoré lors de chargements par Oracle Loader.
- le contenu de la Shared Pool est le suivant :
• Le texte des ordres SQL ou PL/SQL.
• Les formes analysées des ordres SQL ou PL/SQL. 1.2 Les Process
• Les plans d’exécution des ordres SQL et PL/SQL.
• Le cache-mémoire du dictionnaire de données contenant des lignes Oracle distingue trois sorte de process : les process détachés, les process
d’information du dictionnaire de données. utilisateurs et les process serveurs.

1.1.2. Le Database Buffer Cache 1.2.1. Les process background

Le Database Buffer Cache (cache des buffers de la base de données) garde les Afin d’améliorer les performances et accueillir de nombreux utilisateurs, le
copies des blocs de données lus à partir du disque. Tous les utilisateurs système Oracle utilise un certain nombre de process Oracle appelés background
connectés de façon concurrente au système partagent l’accès aux buffers de la processes (process détaché).
base de données.
Un système Oracle peut avoir plusieurs process détachés, selon la configuration.
L’accès aux données Les noms des process détachés sont les suivants :

Professeur : ASSALE Adjé Louis 3/19 INP-HB Professeur : ASSALE Adjé Louis 4/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

• Database Writer (DBWR) • LCKn réalise le verrouillage inter-instance dans un système


• Log Writer (LDWR) parallel server.
• Checkpoint (CKPT) • Pnnn permet le parallélisme des requêtes, de la création d’index, du
• System Monitor (SMON) chargement de données, et de la commande CREATE TABLE AS
• Process Monitor (PMON) SELECT.
• Archiver (ARCH) • SNPn réalise les rafraîchissements automatiques des snapshots
• Recoverer (RECO) (tables répliquées en lecture-seule). Il est également responsable des
• Lock (LCKn) files d’attente de job du serveur et des files d’attente de réplication.
• Snapshot Refresh (SNPn)
• Shared Server (Snnn) Les options :
• L’option parallel query (parallélisme des requêtes) est un produit
• Dispatcher (Dnnn)
qui fait l’objet d’une licence particulière.
• Parallel Query (Pnnn)
• L’option procédurale est requise pour les snapshots. Elle est incluse
dans Oracle Serveur.
- Les process PMON et SMON récupèrent des resources de la base de données
qui ne sont plus nécessaire à l’utilisateur. • L’option distribuée est requise pour les transactions distribuées.
C’est un produit vendu séparément.
Le PMON • L’option de réplication est un produit vendu séparément.
• Nettoie les connexions terminées de façon anormale.
• Défait les transactions non validées. 1.2.2. Les process utilisateurs et serveurs
• Libère les verrous qui avaient été posés par un process qui s’est
terminé en erreur. - Un process utilisateur est démarré lorsqu’un utilisateur exécute un programme
• Libère les ressources du SGA allouées par le process en erreur. applicatif. Le process utilisateur exécute l’outil ou l’application et est considéré
• Redémarre les serveurs partagés et les process dispatcher en erreur. comme étant le client – transmet le SQL au process serveur et en reçoit les
résultats.
Le SMON
• Réalise la restauration automatique d’instance. - Avant que les données puissent être accédés, un process serveur doit les placer
• Récupère l’espace occupé par des segments temporaires qui ne sont dans le cache mémoire de données. Pour traiter les commandes SQL, un process
plus utilisés. serveur utilise de la mémoire partagé dans la SGA.
• Fusionne les zones contiguës d’espace libre dans les fichiers de
données. Les tâches du process serveur sont :
• Analyser et exécuter les commandes SQL.
PMON, SMON, DBWR et LGWR sont des process obligatoires pour exécuter • Lire les blocs de données à partir du disque dans les tampons
une instance Oracle. Les autres sont optionnels. partagés de la base de données de la SGA.
PMON, SMON, DBWR et LGWR ne peuvent pas être contrôlés en modifiant • Renvoyer les résultats des commandes SQL au process utilisateur.
les paramètres d’initialisation. Ces tâches se récapitulent ainsi :
Si l’un de ces quatre process échoue, l’instance sera détruite et devra être Tâche Description
redémarrée. Parse Teste la conformité syntaxique, la sécurité d’accès, la
résolution d’objets, et l’optimisation (construction du plan
Les process RECO, LCKn, Pnnn et SNPn sont seulement créés lorsqu’on utilise d’exécution). Le parsing utilise les zones de requêtes SQL
une des options supplémentaires. partagées ; de ce fait, des process différents peuvent partager
• RECO résout les erreurs concernant une transaction distribuée. le même plan d’exécution.

Professeur : ASSALE Adjé Louis 5/19 INP-HB Professeur : ASSALE Adjé Louis 6/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

Exécute Applique le plan d’exécution aux données, réalise une Les fichiers redo log contiennent toutes les modifications effectuées sur la base
lecture physique et modifie les données si nécessaires. de données, et sont utilisés pour la restauration des données. Si les fichiers redo
Fetch Passe les données à l’utilisateur lors d’ordre SELECT. log son multiplexés, la même information de redo log est écrite sur les membres
du même groupe actif.
La Program Global Area (PGA) est une zone de mémoire contenant les
informations de contrôle et les données d’un utilisateur ou d’un serveur. La PGA
est allouée par le serveur à l’établissement d’une session. Elle se compose d’un - les fichiers redo log
Stack Space qui un espace mémoire pour l’allocation des variables et des
tableaux – d’une zone de données de la session utilisateur.
Log1 Log2 Log3
La PGA est modifiable et non partagée.

L’instance Oracle est la combinaison de la SGA et des process détachés de la


base de données. Quand une instance est démarrée, les tampons de mémoire de • Ils sont remplis selon un mode circulaire.
la SGA sont alloués et les process détachés sont lancés. • Il doit y avoir au moins deux groupes de fichiers redo log.

Il ne faut pas confondre une base de données Oracle et une instance Oracle. - les fichiers redo log multiplexés
L’instance est démarrée (la mémoire est allouée et les process détachés sont Groupe 1 Groupe 2 Groupe 3
lancés) ; ensuite, elle monte la base de données (fichiers).

Les process serveurs et utilisateurs ne sont pas définis comme faisant partie Disque 1 Membre A Membre A Membre A
d’une instance Oracle.

1.3 Les fichiers de la base de données Disque 2 Membre B Membre B Membre B

Une base de données Oracle est composée d’un ou de plusieurs fichiers de


contrôle, fichiers de données, et de fichiers redo log nommés dans les fichiers de
contrôle. • La configuration recommandée des fichiers redo log est d’avoir au
Structure Physique Définition moins deux membres de redo log par groupe, chaque membre étant
Fichiers de données Contiennent toutes les données : les structures sur un disque différent.
logiques, telles que les tables et index sont • Les fichiers redo log multiplexés préservent de la perte d’un fichier
physiquement stockés dans les fichiers de données. redo log.
Fichiers Redo Log Gardent des enregistrements de toutes les • Tous les membres d’un groupe de fichiers redo log contiennent la
modifications effectuées sur la base de données dans même information et sont de même taille.
un but de restauration. • Les membres du groupe sont mis à jour simultanément.
Fichiers de contrôle Enregistrent les structures physiques et les états de la • Chaque groupe devrait contenir le même nombre de membres que
base de données. les autres groupes.

Exemple :
1.3.1. Les Fichiers Redo Log
Les disques 1 et 2 représentent différents disques sur la même machine. Chaque
membre à l’intérieur d’un groupe doit être de taille identique. Chaque membre

Professeur : ASSALE Adjé Louis 7/19 INP-HB Professeur : ASSALE Adjé Louis 8/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

d’un groupe devrait être localisé sur un disque différent pour se protéger contre DB_BLOCK_SIZE La taille en octets d’un buffer de la base de données.
les pannes. Tous les membres d’un groupe sont mis à jour en même temps. DB_BLOCK_BUFFERS Le nombre de database buffers: chacun ayant la taille
du DB_BLOCK_SIZE, alloué pour la SGA. La
L’installation par défaut crée deux groupes redo log avec un membre par groupe quantité totale de l’espace alloué pour le database
et une taille de 500KB. Il faut considérer l’adjonction de membres buffer cache dans la SGA est égale au produit de
supplémentaires sur des disques différents. Il est également recommandé DB_BLOCK_SIZE par DB_BLOCK_BUFFERS.
d’augmenter la taille des fichiers redo log. LOG_BUFFER Le nombre d’octets alloués pour le buffer redo log.

2. La Base de Données Oracle


1.3.2. Les Fichiers de contrôle
La structure physique d’une base de données est constitués d’une série de
Le fichier de contrôle est un petit fichier binaire qui décrit la structure de la base fichiers qui contiennent l’ensemble des données de la base : les fichiers de
de données. données (data files), les fichiers de reprise (redo log files) et les fichiers de
• Tous les fichiers de données et les fichiers redo log de la base de contrôle (control files).
données sont identifiés dans le fichier de contrôle.
• Le nom de la base de données est répertorié dans le fichier de La structure logique se compose des objets suivants : espace de tables
contrôle. (tablespaces), segments, extensions (extents), blocs et objets de schéma (schema
• Le fichier de contrôle est requis pour monter, ouvrir et accéder à la objects). Les objets de schéma sont : les tables, les vues, les index, les clusters,
base de données. les séquences, les procédures stockées, les fonctions, les packages et les
• L’information de synchronisation nécessaire à la restauration est déclencheurs (triggers).
stockée à l’intérieur du fichier de contrôle.
• La configuration recommandée est un minimum de deux fichiers de La correspondance entre structure logique et physique est :
contrôle sur des disques différents.
• Le paramètre CONTROL_FILES identifie les fichiers de contrôle.
Base de données
Le fichier de contrôle doit être disponible en écriture au serveur Oracle à chaque
fois que la base de données est ouverte. Tablespace Tablespace

Le nom par défaut du fichier de contrôle dépend du système d’exploitation.


Fichier Fichier Fichier Fichier

Pour démarrer une instance, Oracle doit lire un fichier de paramètres init.ora. le
fichier paramètres est un fichier texte contenant une liste de paramètres de
configuration d’instance. En autre, le fichier renseigne sur les points suivants :
Bloc Segment
• La quantité de mémoire à utiliser pour les structures mémoire dans la
SGA
• Que faire avec les fichiers redo log actifs pleins
2.1 Notions de Tablespace, Segment, Extent, Cluster et
• Les noms et emplacements des fichiers de contrôle de la base de données. Bloc
Taille de la SGA
Paramètre Définition
SHARED_POOL_SIZE La taille en octets de l’espace assigné pour le partage 2.1.1. Tablespace
des ordres SQL et PL/SQL.

Professeur : ASSALE Adjé Louis 9/19 INP-HB Professeur : ASSALE Adjé Louis 10/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

Une base de données est composée d’unités logiques appelées tablespaces qui • Les segments différés sont utilisés lors d’une fermeture d’un tablespace en
sont le support de stockage des différents objets de la base (tables, index, mode immédiat. Ils contiennent les transactions non achevées à la
clusters, etc.). Chaque Tablespace est identifié par un nom. Une base de données fermeture du tablespace, qui seront annulées lors de la remise en service.
doit avoir au moins un Tablespace appelé SYSTEM, qui contient le dictionnaire
des données. Un Tablespace est composé logiquement d’un ou plusieurs Chaque segment est formé d’une ou plusieurs extensions (ensemble contigu de
segments et physiquement d’un ou plusieurs fichiers. Chaque objet de la base blocs).
(table, index, cluster, etc.) doit toujours se trouver dans un seul Tablespace.
Il est possible d’ajouter des Tablespaces à une base de données en cours 2.1.3. Extent
d’utilisation et il aussi possible d’ajouter des fichiers à un Tablespace en cours
d’utilisation. Un extent est un ensemble de blocs de données contigus. Le premier bloc,
Un Tablespace peut être supprimé même s’il contient des données, les données appelé bloc en-tête, contient le caractéristiques du segment, le répertoire des
sont alors supprimées. extensions du segment, le pointeur vers la chaîne de blocs pouvant recevoir de
Un Tablespace peut être actif (online), ses données sont accessibles aux nouvelles lignes.
utilisateurs – désactivé (offline) ses données ne sont plus accessibles aux Lorsqu’un objet de la base de données croît, de l’espace lui est alloué. Le
utilisateurs. Le Tablespace SYSTEM ne peut jamais être désactivé. premier extent est appelé INITIAL EXTENT et est alloué quand le segment est
crée. Le prochain est appelé NEXT EXTENT et est alloué quand le segment
Lors de sa création, une table est implantée dans un Tablespace ; ses données et croit.
ses index ne pourront pas s’étendre dans un autre Tablespace. Une table ou ses
index peuvent s’étendre sur plusieurs fichiers physiques appartenant au
Tablespace dans lequel est créée la table. 2.1.4. Cluster

Un cluster est un ensemble de segments de données regroupant des tables en vue


2.1.2. Segment d’améliorer les performances. On distingue :
• Cluster indexé : contient les lignes d’une ou plusieurs tables
Un segment est l’emplacement logique correspondant à un objet. Il est stockées ensemble en fonction d’une clé fonctionnelle basée sur des
entièrement contenu dans un même tablespace mais peut s’étendre sur plusieurs colonnes communes aux tables.
fichiers physiques associés au même tablespace. • Cluster hash : contient les lignes d’une table stockée en fonction
Il y a plusieurs types de segments : d’un algorithme de hashing.
• Les segments de données (data) servent à stocker le données contenues
dans les tables des utilisateurs, dans les tables systèmes (dictionnaire de
données) et des tables regroupées par cluster. 2.1.5. Bloc
• Les segments d’annulation (rollback) sont utilisés pour la gestion des
transactions et contiennent les copies des données avant modification, Le bloc, niveau le plus bas, est composé d’un certain nombre d’octets. Il est
permettant d’annuler l’effet de la transaction en cas de besoin. l’unité logique de transfert d’information entre disque et mémoire centrale. La
• Les segments temporaires sont utilisés pour allouer de l’espace de travail taille de bloc est un facteur constant qui est choisi au moment de la création de
pour l’evaluation de certaines requêtes. la base de donnée (paramètre DB_BLOCK_SIZE du fichier INIT.ORA).
• Le segment de démarrage (bootstrap) est utilisé une seule fois, lors de la
création de la base de données, et sert à contenir les descriptions du L’organisation d’un bloc est la même quelle que soit la nature des informations
dictionnaire de données qui sont chargées dans la base lors du premier qu’il contient (données, index ou cluster).
démarrage ; de petite taille (moins de 50 blocs), il est crée dans le
tablespace SYSTEM. • En-tête de bloc : le bloc est composé d’une zone fixe de 61 octets qui
contient des information générales sur le bloc, telles que le numéro de
bloc, la date de création et le type de segment auquel il appartient, et

Professeur : ASSALE Adjé Louis 11/19 INP-HB Professeur : ASSALE Adjé Louis 12/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

d’une zone variable qui comprend : des besoins. Il est déconseillé d’utiliser cette
- le répertoire des tables, utilisé seulement en cas de cluster. Il contient les option pour les rollback segment et les tables du
numéros des tables en cluster et la valeur de la clé de cluster. 2 octets sont dictionnaire de données.
attribués pour chaque table en cluster ; MINEXTENTS Nombre total d’extents à allouer lorsque le
- le répertoire de lignes, qui contient, pour chaque ligne du bloc, son segment est créé ; la valeur par défaut est 1 sauf
adresse relative dans le bloc sur 2 octets ; pour les rollback segment qui en nécessitent 2.
- des informations sur les transactions concurrentes sur le bloc. PCTINCREASE Pourcentage d’accroissement des extents suivant
Lorsqu’une transaction modifie les données du bloc, le SGBDR créé une le dernier extent incrémental alloué ; la valeur par
cellule dans l’en-tête du bloc pour enregistrer des informations tant que la défaut est 50%. Les rollback segment n’utilisent
transaction n’est pas terminée. INITRANS et MAXTRANS permettent de pas ce paramètre. NEXT = NEXT * (1 + nouveau
gérer le nombre de cellules utilisables dans l’en-tête du bloc. La taille PCTINCREASE/100) dans le cas d’une
réservée au départ est égale à INITRANS multiplié par 23 octets pour un modification de PCTINCREASE.
bloc de données et par 46 pour un bloc d’index. Lorsque le nombre de OPTIMAL Spécifie la taille optimale en octets d’un rollback
transactions concurrentes sur le bloc dépassent la valeur INITRANS, cette segment ; la valeur par défaut est NULL.
partie s’étend sur la zone libre. FREELISTS Nombre de listes identifiant les blocs disponibles
• Espace libre : il est utilisé comme zone de débordement pour les mises à en insertion dans une table ; la valeur par défaut
jour des lignes du bloc dont la taille augment suite à un opération est 1.
UPDATE. Cette zone peut aussi recevoir de nouvelles lignes, insérées par FREELIST GROUPS Nombre de FREELISTS par instance en mode
l’opération INSERT. Parallel Server ; la valeur par défaut est 1.
• Espace des lignes : il contient les données ou index stockés. Un bloc peut
contenir une ou plusieurs lignes. Ces paramètres se positionnent sur les tables, cluster, index, rollback segments tablespaces
(seulement des positionnements par défaut).
Les règles suivantes s’appliquent :
2.2 Gestion de l’espace de stockage o Tout paramètre de stockage au niveau de l’objet remplace le
paramètre défini au niveau du tablespace.
o Lorsque les paramètres de stockage ne sont pas explicitement
2.2.1. Paramètres de stockage et de gestion de spécifiés au niveau de l’objet, ils prennent la valeur par défaut
l’espace définie au niveau du tablespace.
o Lorsque les paramètres de stockage ne sont pas explicitement
• Les paramètres de stockage sont : spécifiés au niveau du tablespace, ce sont les paramètres par défaut
au niveau du Serveur Oracle qui s’appliquent.
Paramètre Description Si les paramètres de stockage sont modifiés, les nouvelles options
INITIAL Taille en octets du premier extent alloué à un s’appliquent uniquement aux extents non encore alloués.
segment ; le défaut équivaut à cinq blocs de La clause OPTIMAL n’a de sens que pour les rollback segments.
données. o Les paramètres FREELISTS et FREELIST GROUPS ne peuvent
NEXT Taille en octets de l’extent suivant alloué à un pas être spécifiés par défaut au niveau du tablespace.
segment; le défaut équivaut à cinq blocs de Il faut spécifier les paramètres de stockage afin d’optimiser l’utilisation
données. d’espaces contigus et d’empêcher la fragmentation d’un tablespace. On réduit la
MAXETENTS Spécifie le nombre total d’extents. La valeur fragmentation en dimensionnant un segment de façon à tenir dans l’extent
minimale est 1. La valeur par défaut et la valeur INITIAL et en définissant PCTINCREASE de façon à agrandir les extents
maximale dépend de la taille du bloc de données. incrémentaux.
UNLIMITED spécifie que les extents doivent
être automatiquement alloués au fur et à mesure

Professeur : ASSALE Adjé Louis 13/19 INP-HB Professeur : ASSALE Adjé Louis 14/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

• Les paramètres de gestion de l’espace sont : méga octets. REUSE indique si on réutilise un fichier déjà présent sur le
disque, ou si on crée un nouveau.
Paramètre Définition Lors de la création d’un nouveau tablespace, après la création du
PCTFREE Spécifie le pourcentage d’espace dans chaque bloc tablespace SYSTEM et s’il n’existe qu’un segment ROLLBACK, il est
Oracle réservé pour les futures modification de lignes. nécessaire de créer un deuxième.
La valeur par défaut est 10 pour cent. • Modification d’un tablespace
PCTUSED Spécifie le pourcentage minimum d’espace utilisé que ALTER TABLESPACE nom_tablespace
Oracle maintient dans chaque de données. Un bloc ADD DATAFILE fichier [, fichier] ;
redevient candidat pour l’insertion de lignes quand son pour agrandir l’espace de stockage
espace utilisé tombe en dessous de PCTUSED. La
valeur par défaut est 40 pour cent. ALTER TABLESPACE nom_tablespace
INITRANS Indique le nombre d’entrées de transactions [DEFAULT STORAGE
initialement allouées dans l’entête du bloc. ([INITIAL valeur]
MAXTRANS Indique le nombre maximum de transactions pouvant [NEXT valeur]
accéder simultanément au bloc. [MINEXTENTS nombre]
[MAXEXTENTS nombre]
PCTFREE et PCTUSED permettent de contrôler l’utilisation de l’espace libre [PCTINCREASE pourcentage])
pour les insertions et les modifications de lignes dans les blocs de données. pour modifier les caractéristique de stockage
Chacun de ces deux paramètres peut être mentionné pour les tables, les clusters
et les snapshots lors des commandes CREATE et ALTER. De plus, PCTFREE ALTER TABLESPACE nom_tablespace
peut être spécifié pour les index. La somme de PCTFREE et PCTUSED doit être RENAME DATAFILE fichier_existant [, fichier_existant]…
inférieure ou égale à 100. TO fichier_nouveau [, fichier_nouveau] ;
Positionner une valeur plus haute pour le PCTFREE et une valeur plus basse pour changer le nom du fichier, le fichier de disque et la taille du fichier
pour le PCTUSED améliore les performances.
ALTER TABLESPACE nom_tablespace
OFFLINE [NORMAL | IMMEDIATE] ;
2.2.2. Gestion des tablespaces, segment rollback et pour une mise hors service du tablespace : NORMAL le tablespace est
des tables mis hors service quand tous les utilisateurs du tablespace ont fini leurs
transactions en cours ; IMMEDIATE le tablespace est mis hors service
• Création d’un tablespace même si les transactions en cours ne sont pas terminées (les transactions
CREATE TABLESPACE nom_tablespace non validées sont alors stockées dans un segment du tablespace).
DATAFILE fichier [, fichier] …
[DEFAULT STORAGE ALTER TABLESPACE nom_tablespace ONLINE ; mise en
([INITIAL valeur] service
[NEXT valeur]
[MINEXTENTS nombre] ALTER TABLESPACE nom_tablespace
[MAXEXTENTS nombre] BEGIN | END BACKUP ;
[PCTINCREASE pourcentage]) BEGIN BACKUP avant de démarrer une procédure de backup en ligne
[ONLINE | OFFLINE] des tables du tablespace. END BACKUP doit être exécutée
[PERMANENT | TEMPORARY] immédiatement après la fin d’une procédure de backup en ligne

fichier indique le chemin d’allocation du fichier physique sous la forme : ALTER TABLESPACE nom_tablespace READ ONLY ;
′chemin\nom_fichier′ SIZE taille REUSE. Taille s’exprime en kilo ou tablespace en lecture seule.

Professeur : ASSALE Adjé Louis 15/19 INP-HB Professeur : ASSALE Adjé Louis 16/19 INP-HB
Oracle Organisation d’une base de données Oracle Organisation d’une base de données

• Suppression d’un tablespace Les vues du dictionnaire de données permettent de visualiser les informations
DROP TABLESPACE nom_tablespace relatives à la structure logique de la base de données.
[INCLUDING CONTENTS] ;
l’option INCLUDING CONTENTS doit être utilisé si le tablespace Vue Information
contient des informations. La suppression du tablespace ne supprime pas ALL_ALL_TABLES Donne des informations sur la structure des tables et
les fichiers du disque. Un tablespace ne peut être supprimé que quand il des vues accessibles à l’utilisateur.
est hors service. ALL_CLUSTER Donne des informations sur la structure des clusters
• Création d’un segment rollback accessibles à l’utilisateur
CREATE ROLLBACK SEGMENT nom_segment ALL_OBJET_TABLES Donne des informations sur la structure des tables
TABLESPACE nom_tablespace accessibles à l’utilisateur
STORAGE (INITIAL… ALL_TAB_COLUMNS Donne la description des colonnes des tables, des
OPTIMAL entier | NULL); vues et des clusters accessibles à l’utilisateur.
• Modification d’un segment rollback DBA_ALL_TABLES Donne des informations sur la structure des tables et
ALTER ROLLBACK SEGMENT nom_segment des vues.
[ONLINE | OFFLINE] DBA_DATA_FILES Donne les informations sur les fichiers de la base de
[STORAGE parameter_stockage] données.
[SHRINK TO entier]; DBA_EXTENTS Donne la liste des extents de la base de données.
SHRINK essaie de réduire le segment rollback à sa taille optimale ou à DBA_FREE_SPACE Donne la place libre dans les fichiers de la base.
une taille donnée. DBA_SEGMENTS Donne la liste des segments de la base.
• Suppression d’un segment rollback DBA_TAB_COLUMNS Donne la description des colonnes des tables, des
DROP ROLLBACK SEGMENT nom_segment ; vues et des clusters de la base.
• Création de table DBA_TABLES Donne les caractéristiques des tables de la base.
Voir langage SQL ; Oracle ajoute les options suivantes pour la gestion de DBA_TABLESPACES Donne les caractéristiques des tablespaces de la
l’espace de stockage : base.
CREATE TABLE nom_table (…) USER_ALL_TABLES Donne des informations sur la structure des tables et
[PCTFREE pourcentage] [PCTUSED pourcentage] des vues accessibles à l’utilisateur.
[INITRANS nombre] [MAXTRANS nombre] USER_EXTENTS Donne la liste des extents des objets de l’utilisateur.
[TABLESPACE nom_tablespace] USER_FREE_SPACE Donne la place libre dans les tablespaces accessible
[STORAGE paramètres_stockage] à l’utilisateur.
[CLUSTER nom_cluster] USER_SEGMENTS Donne la liste des segments de l’utilisateur.
[ENABLE | DISABLE contrainte] USER_TAB_COLUMNS Donne la description des colonnes des tables de
[AS requête] ; l’utilisateur.
• Modification des paramètres d’allocation d’une table USER_TABLES Donne la description des tables de l’utilisateur.
ALTER TABLE nom_table USER_TABLESPACES Donne les caractéristiques des tablespaces
[PCTFREE pourcentage] [PCTUSED pourcentage] accessibles à l’utilisateur.
[INITRANS nombre] [MAXTRANS nombre]
[STORAGE paramètres_stockage] 3. EXERCICE
[DROP contrainte]
• Se connecter à la base en tant que system/manager. Créer un tablespace
2.3 Dictionnaire de données USER1, allouer un seul fichier user101.dbf ayant une taille de 10 Mo avec
un stockage par défaut de MINEXTENTS=2 et PCTINCREASE=0.

Professeur : ASSALE Adjé Louis 17/19 INP-HB Professeur : ASSALE Adjé Louis 18/19 INP-HB
Oracle Organisation d’une base de données

• Créer un tablespace TEMP1 pour les segments temporaires, allouer un


seul fichier temp01.dbf de taille 1 Mo avec un stockage par défaut de
PCTINCREASE à 0.
• Créer un segment rollback USER_SEG1 dans le tablespace USER1 avec
les paramètres de stockage par défaut. Interroger la vue
DBA_ROLLBACK_SEGS pour obtenir l’état actuel des segments
rollback et en particulier du vôtre. Activer le si nécessaire.
• Créer un tablespace APPL_DATA, allouer un seul fichier appl01.dbf de
taille 200 Ko avec un stockage par défaut de INITIAL à 20 Ko , NEXT à
10 Ko et PCTINCREASE à 0.
• Créer un tablespace USER2, allouer un seul fichier user201.dbf de taille
1Mo.
• Vérifier que les nouveaux tablespaces ont été créés avec succès en
interrogeant le dictionnaire des données.
• Créer une table TEST dans le tablespace USER2 avec un INITIAL extent
de 2M. que se passe-t-il et pourquoi ?
• Réessayer de créer la table TEST dans le tablespace USER2 sans la clause
de stockage, et puis essayer d’insérer une ligne dans la table. Que se
passe-t-il et pourquoi ?
• Créer une table TEST2 comme étant une copie de TEST dans le
tablespace USER2.
- Mettre le tablespace USER2 dans le mode read only.
- Essayer de supprimer la table TEST2. que se passe-t-il et pourquoi ?

Professeur : ASSALE Adjé Louis 19/19 INP-HB

Vous aimerez peut-être aussi