Bases de Données Avancées

Documents pareils
Cours Bases de données 2ème année IUT

1. Qu'est qu'un tablespace?

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

TP11 - Administration/Tuning

Introduction aux SGBDR

Notion de base de données

Administration des Bases de Données Oracle

Master Exploration Informatique des données DataWareHouse

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Le Langage De Description De Données(LDD)

Gestion des utilisateurs et de leurs droits

Administration des bases de données relationnelles Part I

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de Données Avancées

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, /96

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de données et sites WEB

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

TP Contraintes - Triggers

Devoir Data WareHouse

Administration des bases de données. Jean-Yves Antoine

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Oracle Maximum Availability Architecture

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Cours Bases de données 2ème année IUT

Bases de données et sites WEB Licence d informatique LI345

Nœud Suisse du Projet International GBIF (Global Biodiversity Information Facility)

Oracle : Administration

PREPARATION AU PTI SGBD

Du 10 Fév. au 14 Mars 2014

FILE MANAGEMENT. TABLESPACES TEMPORAIRES Temporaire par défaut autre que system

Cours Bases de données 2ème année IUT

Chapitre III Architecture de Base de Données Oracle

Auto-évaluation Oracle: cours de base

TP Administration Oracle

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

420-PK6-SL Banques de données Avancées UTILISATEURS

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Administration de Base de Données Notes de cours

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage SQL : créer et interroger une base

Olivier Mondet

Module 25 : Correction des exercices

CHAPITRE 1 ARCHITECTURE

TP Bases de données réparties

Administration de Bases de Données : Optimisation

Le Langage SQL version Oracle

Structure fonctionnelle d un SGBD

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Notes de cours : bases de données distribuées et repliquées

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Bases de Données Réparties

Encryptions, compression et partitionnement des données

Création et Gestion des tables

ADMINISTRATION D'UNE BASE DE DONNEES

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Mise en oeuvre TSM 6.1

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

CREATION WEB DYNAMIQUE

Systèmesdegestionde. basesdedonnées

SQL Historique

Bases de données relationnelles

Partie II Cours 3 (suite) : Sécurité de bases de données

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Introduction au Système de Gestion de Base de Données et aux Base de Données

Bases de Données Avancées

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

Bases de Données Avancées

Architectures, modèles et langages de données

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Intégrité des données

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

A QUOI SERVENT LES BASES DE DONNÉES?

//////////////////////////////////////////////////////////////////// Administration bases de données

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Gestion de base de données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Module n 2 CREER UNE BASE DE DONNEES 1Z0-001

Corrigés détaillés des exercices

TP3 : Creation de tables 1 seance

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

<Insert Picture Here> Solaris pour la base de donnés Oracle

Présentation du module Base de données spatio-temporelles

A QUOI SERVENT LES BASES DE DONNÉES?

Compétences Business Objects

Développement d une base de données relationnelle. Exploitation des statistiques de pêche au thon tropical

Optimisation de MySQL

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

1 Introduction et installation

3. La SGA ou System global Area

I4 : Bases de Données

Transcription:

1/116 Bases de Données Avancées Implantation d une BD Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex Tél. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55 thierry.hamon@univ-paris13.fr http://www-limbio.smbh.univ-paris13.fr/membres/hamon/bda-20112012 INFO2 BDA

2/116 Sources des transparents F. Boufares, LIPN, Université Paris Nord

3/116 Structure physique Introduction Création/définition d une table Attributs : types de données de base (prédéfinis par le système Numérique, Caractère, Texte, Date, etc.) Attributs : types de données définis par l utilisateur Contraintes : contrôles de validité (Clés primaire et étrangères, etc.) Caractéristiques physiques : Taux de remplissage des blocs, évolution, etc. Lieu de stockage (disque, MC, ), parallélisme, etc. Optimisations : Partitionnement, découpage

4/116 Structure physique Introduction Création/définition d une table Indexer : Accélérer les traitement Reconstruire les blocs, etc. Construire de vues matérialisées (des pré-calculs, etc.) Partager les données entre plusieurs utilisateurs Créer des vues, des droits d accès, des rôles, des profiles, etc.

5/116 Structure physique Introduction Création/définition d une table CREATE TABLE nomtb ( a t t r i b u t s, c o n t r a i n t e s ) TABLESPACE nomtbsp PCTUSED x1 PCTFREE x2 INITRANS x3 MAXTRANS x4 STORAGE ( INITIAL n1 NEXT n2 MINEXTENTS m1 MAXEXTENTS m2 PCTINCREASE p ) PARALLEL p / NOPARALLEL ( a p p l i q u e r l e p a r a l l é l i s m e ) LOGGING / NOLOGGING ( pour ne pas c o p i e r l e s m i s e s à j o u r dans l e r o l l b a c k ) CACHE / NOCACHE ( permet de g a r d e r l a t a b l e en mémoire ; à u t i l i s e r avec p r é c a u t i o n ) PARTITIONnement ( une s o r t e de découpage de l a t a b l e )

6/116 Structure physique Introduction Structure d une base de données (Oracle) une structure physique une structure logique un ensemble de vues donnant des visions partielles aux utilisateurs Description de ces trois niveaux et la correspondance entre eux à travers le dictionnaire de données

7/116 Structure physique Introduction Structure d une base Eléments composant d une base : Fichiers qui composent la base de données : Fichier rollback Fichier tablespace Redo logs Fichiers de contrôle (Control files) Fichiers de trace et alert.log Instances définies par un nom (SID) Il s agit des processus qui gèrent : La cohérence de la base La mise à jour, rollback etc.. Aussi le SGA (System Global Area)

8/116 Structure physique Introduction Structure physique Composée d un ensemble de fichiers qui constituent le support physique de stockage de données Trois types de fichiers : Fichiers de données (Data Files) Fichiers de reprise (Redo Log Files) Fichiers de contrôle (Control Files) Spécification des Data Files et Redo Log lors de la création ou la modification de la base de données

9/116 Structure physique Fichiers de données Fichiers de données (Data Files) Les fichiers de données assurent le stockage des objets créés par les utilisateurs : tables, index, vues, clusters, etc. des structures nécessaires au fonctionnement d Oracle : dictionnaire de données Un fichier de données est associé à une et une seule base de données Lors de la création d une base de données, il doit y avoir au moins un fichier de données pour stocker le dictionnaire de données

10/116 Structure physique Fichiers de données Taille d un Data File Exprimée en Kilo ou en Méga octets Attribuée au moment de la création du fichier, pouvant être modifiée Son choix dépend de la taille de la base de données et de son évolution Le premier fichier de données créé doit avoir une taille supérieure ou égale à 2Mo

11/116 Structure physique Fichiers de données Nom d un Data File Dépend du système d exploitation Peut être modifié, sauf pour le premier fichier La modification se fait en deux étapes : modification du nom du fichier en utilisant les commandes OS répercussion de cette modification dans les fichiers de contrôle

12/116 Structure physique Fichiers de données Création d un Data File Réalisée selon quatre configurations : Création d une base CREATE DATABASE base DATAFILE s p é c i f i c a t i o n f i c h i e r Création d un tablespace CREATE TABLESPACE t b s DATAFILE s p é c i f i c a t i o n f i c h i e r Modification d une base par ajout d un nouveau fichier de données ALTER DATABASE base CREATE DATAFILE f i c h i e r AS s p é c i f i c a t i o n Modification d un tablespace par ajout d un nouveau fichier de données ALTER TABLESPACE t b s ADD DATAFILE s p é c i f i c a t i o n f i c h i e r

13/116 Structure physique Fichiers de données Modification d un Data File Deux cas de modifications : modification du nom et de localisation modification de la taille Modification du nom : TableSpace en Offline (éviter que des données soient accesssible pendant le déplacement) ALTER TABLESPACE o r a d a t a OFFLINE ALTER TABLESPACE t b s RENAME DATAFILE f i c h 1, f i c h 2 TO f i c h 1 1, f i c h 2 2 ALTER DATABASE base RENAME FILE f i c h 1, f i c h 2 TO f i c h 1 1, f i c h 2 2

14/116 Structure physique Fichiers de données Modification d un Data File Modification de la taille : ALTER TABLESPACE t b s ADD DATAFILE s p é c i f i c a t i o n AUTOEXTEND [ OFF ON [NEXT e n t i e r [K M] ] [ MAXSIZE UNLIMITED e n t i e r [K M] ] ALTER DATABASE base DATAFILE f i c h 1 RESIZE e n t i e r [K M] AUTOEXTEND [ OFF ON [NEXT e n t i e r [K M] ] [ MAXSIZE UNLIMITED e n t i e r [K M] ]

15/116 Structure physique Fichiers de données Suppression d un Data File Solution 1 : en deux étapes 1 Suppression du tablespace associé au Data file DROP TABLESPACE t b s INCLUDING CONTENTS 2 Suppression des fichiers physiques manuellement par commande OS. Solution 2 : en une seule étape Suppression du tablespace associé au Data file ainsi que les fichiers physiques DROP TABLESPACE t b s INCLUDING CONTENTS and d a t a f i l e s

16/116 Structure physique Fichiers de reprise Fichiers Redo Log Contiennent les modifications les plus récentes des données de la base Utilisés par Oracle pour remettre la base dans un état cohérent après une panne sans perdre les mises à jour qui n ont pas été enregistrées dans les data files Lors du redémarrage de l instance, Oracle applique les mises à jour des Redo Log sur les Data file (reprise à chaud) Au moins deux fichiers par instance, utilisés d une façon circulaire

17/116 Structure physique Fichiers de reprise Fichiers Redo Log Redo Log multiple : duplication des fichiers Redo Log sur différents disques Lorsqu un des fichiers est perdu ou endommagé, son image sur l autre disque peut être utilisé L ensemble des Redo Logs actifs simultanément constitue un groupe Chaque fichier de ce groupe est dit membre Avant de réutiliser un Redo Log plein, Oracle peut l archiver si la base est en mode ARCHIVELOG (voir plus loin)

18/116 Structure physique Fichiers de reprise Création d un Redo Log Possibilité de créer ou d ajouter des Redo Logs dans une base existante : CREATE DATABASE base LOGFILE [GROUP e n t i e r ] ( f i c h, f i c h,... ) SIZE e n t i e r [K M]... ALTER DATABASE base ADD LOGFILE [THREAD e n t i e r ] [GROUP e n t i e r ] ( f i c h, f i c h,... ) SIZE e n t i e r [K M]... ADD LOGFILE MEMBER f i c h [ REUSE ] TO {GROUP e n t i e r f i c h }

19/116 Structure physique Fichiers de reprise Suppression d un Redo Log Suppression d un Redo Log, d un groupe ou d un membre : ALTER DATABASE base DROP LOGFILE {GROUP e n t i e r ( f i c h, f i c h,... ) }... DROP LOGFILE MEMBER { f i c h ( f i c h, f i c h,... ) } Un Redo Log peut être initialisé par : ALTER DATABASE base CLEAR [ UNARCHIVED ] LOGFILE {GROUP e n t i e r ( f i c h, f i c h,... ) }... [UNRECOVERABLE DATAFILE ]

20/116 Structure physique Fichiers de contrôle Control File Contient les informations relatives à la structure physique de la base de données : nom de la base de données noms et localisations des Datafile et Redo Logs timestamp de création de la base le nombre de séquence log courant informations sur le checkpoint Créé au moment de la création de la base

21/116 Structure physique Fichiers de contrôle Control File Utilisé lors de l ouverture d une base pour identifier les Datafiles et les Redo Logs Au moins un fichier de contrôle Recommandation : dupliquer ce fichier plusieurs fois Mise à jour automatique à chaque modification de structure de la base Noms spécifiés dans init.ora

22/116 Introduction La structure logique d une base est composée des tablespaces des segments des extensions (extents) des blocs Un ensemble d objets logiques constitué d objets de schéma (schema objects) Les objets de schéma constituent la structure relationnelle de la base

23/116 Tablespace Tablespace Une base de données est composée d un ensemble d unités logiques dites tablespaces Un tablespace permet de regrouper un ensemble d objets logiques (tables, index, etc.) Il peut être utilisé pour regrouper des objets logiques d une application pour que les opérations de sauvegarde et de restauration soient efficaces

24/116 Tablespace Structure d une base de données

25/116 Tablespace Tablespace Chaque objet logique doit être associé à un et un seul tablespace. Chaque tablespace est identifié par un nom. Un tablespace peut être supprimé même s il contient des données. Une base de données doit avoir au moins un tablespace appelé SYSTEM qui contient le dictionnaire de données

26/116 Tablespace Tablespace Un tablespace peut être activé (OnLine) ou désactivé (OffLine) Le tablespace SYSTEM ne peut jamais être désactivé Un tablespace peut être créé, modifié et supprimé Il est recommandé de créer d autres tablespaces pour les objets de la base

27/116 Tablespace Création de Tablespace CREATE TABLESPACE t b s DATAFILE spec SIZE e n t i e r {M K} [ AUTOEXEND {OFF ON} ] [NEXT e n t i e r {M K} ] [ MAXSIZE {UNLIMITED e n t i e r {M K } ] }... [DEFAULT STORAGE c l a u s e s t o c k a g e ] [ ONLINE OFFLINE ] [ PERMENENT TEMPORARY]

28/116 Tablespace Modification d untablespace ALTER TABLESPACE t b s ADD DATAFILE spec SIZE e n t i e r {M K} [ AUTOEXEND {OFF ON} ] [NEXT e n t i e r {M K} ] [ MAXSIZE {UNLIMITED e n t i e r {M K } ] }... [RENAME f i c h,... TO f i c h,... ] [COALESCE] [DEFAULT STORAGE c l a u s e s t o c k a g e ] [ ONLINE OFFLINE {NORMAL TEMPORARY IMMEDIATE} ] [ { BEGIN END} BACKUP] [READ {ONLY WRITE} ] [ PERMENENT TEMPORARY]

29/116 Tablespace Suppression d un Tablespace DROP TABLESPACE t b s [ INCLUDING CONTENTS] [CASCADE CONSTRAINTS] INCLUDING CONTENTS supprime le contenu de tablespace CASCADE CONSTRAINTS supprime les contraintes d intégrité des tables d autres tablespaces qui se réfèrent aux clés primaires des tables du tablespace spécifié

30/116 Tablespace Gestion des tablespaces L administrateur peut consulter les vues du dictionnaire de données suivantes : USER_EXTENTS, DBA_EXTENTS USER_SEGMENTS, DBA_SEGMENTS USER_FREE_SPACE, DBA_FREE_SPACE DBA_USERS DBA_TS_QUOTAS USER_TABLESPACES, DBA_TABLESPACES DBA_DATA_FILES V$DATAFILE

31/116 Tablespace Utilisation des tablespaces Un tablespace peut être attribué par défaut à un utilisateur Les objets de cet utilisateur seront stockés dans ce tablespace sauf contre indication CREATE ALTER u s e r IDENTIFIED [BY mdp EXTERNALLY ] [DEFAULT TABLESPACE t b s ] [TEMPORARY TABLESPACE t b s ] [QUOTA { e n t i e r {M K} UNLIMITED} ON t b s ]

32/116 Tablespace Exemple s e l e c t from d b a t a b l e s p a c e s ; a l t e r t a b l e s p a c e USERS o f f l i n e ; a l t e r t a b l e s p a c e USERS rename d a t a f i l e c : \ d a t a f i l e \ tp \db\ g e s t e e. dbf TO c : \ d a t a f i l e \ tp \db\ g e s t e e 0 1. dbf a l t e r t a b l e s p a c e USERS o n l i n e create t a b l e s p a c e t e s t d a t a f i l e c : \ d a t a f i l e \Tp\DB\ d a t a t e s t. dbf s i z e 20M; a l t e r t a b l e s p a c e t e s t add d a t a f i l e c : \ d a t a f i l e \Tp\DB\ d a t a t e s t 2. dbf s i z e 3M create table t o t o ( c o l 1 number, c o l 2 number ) t a b l e s p a c e t e s t

33/116 Tablespace et SQL2 Retour sur le schéma physique (SQL2) c r e a t e t a b l e COURS (NUM COURS NUMBER( 2 ), NOMC VARCHAR( 2 0 ), NBHEURES NUMBER( 2 ), ANNE NUMBER( 1 ), c o n s t r a i n t PK COURS p r i m a r y key (NUM COURS), c o n s t r a i n t NN COURS NOMC check (NOMC I S NOT NULL) )

34/116 Tablespace et SQL2 Ajout d un tablespace dans le schéma physique PCTUSED de 98% initialement une seule transaction PCTFREE de 1% peut accèder aux lignes à la fois 255 transsactions au maximum Taille du premier extent : 11280 Ko Nombre illimité d extents alloués au segment Taille du premier extent : 11 Mo Nombre de blocs dans lequel Oracle 1 extent alloué à la création du segment peut écrire des données : 9 (1 groupe de blocs) Possibilité de traitement en parallèle TABLESPACE S COURS DATA PCTUSED 98 PCTFREE 1 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 11280K NEXT 11M MINEXTENTS 1 MAXEXTENTS u n l i m i t e d PCTINCREASE 0 FREELISTS 9 FREELIST GROUPS 1 ) PARALLEL ;

35/116 Tablespace et SQL2 Ajout dans le schéma physique c r e a t e t a b l e PROFESSEURS (NUM PROF NUMBER( 4 ), NOMP VARCHAR2( 2 5 ), SPECIALITE VARCHAR2( 2 0 ), DATE ENTREE DATE, DER PROM DATE, SALAIRE BASE NUMBER, SALAIRE ACTUEL NUMBER, c o n s t r a i n t PK PROFESSEURS p r i m a r y key (NUM PROF) c o n s t r a i n t NN PROFESSEURS NOMP check (NOMP I S NOT NULL) ) TABLESPACE S PROF DATA PCTUSED 98 PCTFREE 1 INITRANS 6 MAXTRANS 255 STORAGE ( INITIAL 20M NEXT 5M) NOPARALLEL ;

36/116 Tablespace et SQL2 Ajout dans le schéma physique c r e a t e t a b l e CHARGE (NUM PROF NUMBER( 4 ), NUM COURS NUMBER( 4 ), c o n s t r a i n t PK CHARGE p r i m a r y key (NUM COURS, NUM PROF) c o n s t r a i n t FK CHARGE COURS f o r e i g n key (NUM COURS) r e f e r e n c e s COURS (NUM COURS) c o n s t r a i n t FK CHARGE PROFESSEURS f o r e i g n key (NUM PROF) r e f e r e n c e s PROFESSEURS (NUM PROF) ) TABLESPACE S CHARGE DATA PCTUSED 98 PCTFREE 1 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 11280K NEXT 11M MINEXTENTS 1 MAXEXTENTS u n l i m i t e d PCTINCREASE 0 FREELISTS 9) PARALLEL 3 ;

37/116 Espace de stockage SEGMENT, EXTENSION, BLOC Lors de la création d un fichier, Oracle réserve tout l espace qui lui est associé A l intérieur de ce fichier, l espace disque est géré dynamiquement au fur et à mesure de l utilisation de la base de données Gestion selon trois niveaux de granularité : segment extension bloc

38/116 Espace de stockage SEGMENT, EXTENSION, BLOC

39/116 Bloc de données 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 A distinguer du bloc physique utilisé par les OS (bloc physique = ensemble d octets sur disque) Taille d un bloc de données attribuée par défaut selon OS (2, 4 ou 8 Ko) modifiable par DB_BLOCK_SIZE = n

40/116 Bloc de données Format d un bloc de données Les blocs de données sont organisés de la même façon quelque soit leur contenu : données, index ou cluster

41/116 Bloc 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 : utilisée uniquement pour les clusters. 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 à jour des lignes nécessitant de l espace Reste du bloc : réservé aux données

42/116 Bloc de données Organisation d une ligne Ordre de stockage des colonnes : déterminé par Oracle peut différer de celui utilisé lors de la création de la table Ajout d une nouvelle colonne à une table : la colonne se trouve toujours en dernière position

43/116 Bloc de données Gestion de l espace des blocs Paramètres PCTFREE et PCTUSED : Gestion de l espace libre des blocs de données Utilisation dans les commandes de création ou de modification de tables, clusters, snapshot et snapshot log Le paramètre PCTFREE peut être utilisé également dans les commandes de création et de modification d index

44/116 Bloc de données PCTFREE Définition du pourcentage d espace dans un bloc qui doit être maintenu libre pour les éventuelles mises à jour des lignes du bloc Exemple : PCTFREE = 15 Possibilité d insérer de nouvelles lignes dans le bloc tant que l espace libre > 15% Critères de choix mode d utilisation de la table ou de l index associé supérieur à 10 si la mise à jour augmente souvent la taille inférieur à 10 dans le cas contraire

45/116 Bloc de données PCTFREE Chercher un compromis entre le gain d espace et l amélioration des performances valeur faible : gain d espace et dégradation des performances à cause de la fragmentation des données valeur élevée : perte d espace et un gain de performances

46/116 Bloc de données PCTUSED Utilisé simultanément avec le paramètre PCTFREE (valeur par défaut est 40) Un bloc est initialement vide Insertions de nouvelles lignes jusqu à atteindre PCTFREE Possibilité d insertion de nouvelles lignes dans le bloc que si le pourcentage d espace utilisé devient inférieur à PCTUSED A nouveau, possibilité d insertion de nouvelles lignes jusqu à ce que l espace libre atteint PCTFREE

47/116 Bloc de données Exemple PCTFREE et PCTUSED PCTFREE = 20, PCTUSED = 40

48/116 Bloc de données Remarques PCTFREE Permet de spécifier l espace libre laissé dans le bloc pour réaliser les mises à jour des lignes stockées dans le bloc Par défaut, la valeur de ce paramètre est égale à 10 Dans tous les cas, la somme de PCTFREE et de PCTUSED ne peut excéder 100 Lorsque l espace libre dans un bloc atteint PCTFREE, aucune nouvelle ligne n est insérée dans le bloc PCTUSED Lorsque l on ne peut plus insérer de lignes dans le bloc (l espace libre restant dans le bloc devient égal à PCTFREE) le bloc n est plus utilisé pour insérer de nouvelles lignes tant que l espace utilisé n est pas redescendu en dessous de la valeur de PCTUSED

49/116 Bloc de données Remarques Les conséquences d un petit PCTFREE : Moins d espace est réservé au niveau du bloc pour effectuer les mises à jour des lignes existantes Permet aux insertions de mieux remplir le bloc Permet d économiser de l espace dans la mesure où les blocs sont mieux remplis Augmente le temps de traitement dans la mesure où Oracle doit régulièrement réorganiser les blocs lorsque l on insère ou modifie des lignes Augmente les temps de traitement dans la mesure où les mises à jour peuvent conduire à la génération de chaînages entre différents blocs Un petit PCTFREE est utilisé pour les objets ayant une faible activité en mise à jour

50/116 Bloc de données Remarques Les conséquences d un grand PCTFREE : Plus d espace est réservé au niveau du bloc pour effectuer les mises à jour des lignes existantes Plus de blocs peuvent être nécessaires pour gérer la même quantité de données (moins de lignes sont stockées dans les blocs) Diminution du temps de traitement dans la mesure où les réorganisation les blocs sont moins nombreuses Amélioration des performances en MAJ dans la mesure où les chaînages des blocs sont évités Un grand PCTFREE est nécessaire pour les objets ayant une forte activité en mise à jour

51/116 Bloc de données Remarques Les conséquences d un petit PCTUSED : Les blocks sont moins remplis Réduction des coûts de traitements lors des commandes INSERT 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 : Le blocs sont mieux remplis Amélioration de la gestion d espace. Les blocs sont mieux remplis Augmentation du coût des insertions et des mises à jour

52/116 Bloc de données Autres paramètrages INITRANS Nombre initial de transactions pouvant accéder simultanément aux lignes contenues dans un bloc L espace est réservé en entête de chaque bloc de données et d index La valeur par défaut est 1 pour les données et 2 pour les indexes MAXTRANS Le paramètre MAXTRANS permet de limiter le nombre de transactions

53/116 Bloc de données Autres paramètrages FREELISTS Liste des blocs libres par objet Par défaut, la valeur est égale à 1 En cas de contention sur la freelist, les performances des applications peuvent être altérées Pour identifier ce problème, 1 il suffit de consulter le contenu de la table v$waitstat de la façon suivante : s e l e c t c l a s s, count w a i t s from v $ w a i t s t a t where c l a s s = f r e e l i s t ;

54/116 Bloc de données Autres paramètrages 2 Il faut ensuite comparer le nombre waits sur les blocs libres par rapport au nombre total de demandes de données sur la même période. s e l e c t sum( value ) g e t s from v $ s y s s t a t where name i n ( db b l o c k g e t s, c o n s i s t e n t g e t s ) ; 3 Si le ratio waits/gets est inférieur à 1%, il faut ajouter des freelist

55/116 Extent Extent (extension) Unité logique d allocation d espace composée d un ensemble contiguë de blocs de données alloués simultanément à un segment Tout segment est initialement créé avec au moins une extension appelée extension initial (INITIAL EXTENT) Lorsque l espace d un segment est complètement utilisé, attribution par Oracle d une nouvelle extension dite extension supplémentaire (INCREMENTAL EXTENT)

56/116 Extent Procédure d attribution d une nouvelle extension 1 Recherche dans le tablespace contenant le segment le premier ensemble contiguë 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 constituer des ensembles de blocs libres de taille supérieure, puis reprend la recherche 3 Si de nouveau la procédure de recherche n aboutit pas, message d erreur signalé 4 Mise à jour de l entête du segment et du dictionnaire de données pour tenir compte de la nouvelle extension

57/116 Extent Libération des extensions Libération des extensions d un segment que lorsque le segment est supprimé suite à la suppression d une table, d un cluster, etc. Lorsque des extensions sont libérées, mise à jour du dictionnaire de données

58/116 Extent Taille des extensions Définition de la taille des extents par les paramètres de la clause STORAGE : STORAGE ( INITIAL n1 NEXT n2 MINEXTENTS m1 MAXEXTENTS m2 PCTINCREASE p ) n1 : taille du premier extent alloué lorsque un segment est créé n2 : taille du second extent alloué au segment m1 : nombre d extents alloués à la création du segment m2 : nombre total d extents pouvant être alloués à segment p : pourcentage d accroissement de la taille du segment I + 1 par rapport à celle du segment I (I > 2). taille du segment I + 1 = (taille du segment I ) (1 + p/100)

59/116 Extent Exemple STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS 5 PCTINCREASE 50) Si la taille d un bloc = 2Ko, la taille des différents extents sera : 1 er Extent : 50Ko 2ème Extent : 50Ko 3ème Extent : Arrondi(50 1, 5) = 76Ko 4ème Extent : Arrondi(76 1, 5 = 114Ko 5ème Extent : Arrondi(114 1, 5) = 172Ko

60/116 Extent Exemple Donner des valeurs explicites dans la clause storage des tables du schéma INFO2 Il existe dèjà dans la base, le tablespace suivant : Create t a b l e s p a c e s t o r a g e s t a n d a r d d a t a f i l e c : \ d a t a b a s e \ s t r g s t d 0 1. dbf s t o r a g e ( i n i t i a l 1 M next 5M maxextents 1 0 0 0 ) ; Solution 1 : Create table t a b s t d ( c o l 1 number ) t a b l e s p a c e s t o r a g e s t a n d a r d ; Solution 2 : Create u s e r INFO2 i d e n t i f i e d by INFO2 d e f a u l t t a b l e s p a c e STORAGE STANDARD;

61/116 Segments Segment Composé d un ou de plusieurs extents contenant les données d une structure logique dans un tablespace Quatre types de segments : segments de données segments d index segments temporaires segments de rollback

62/116 Segments Structure d une base de données

63/116 Segments Segments de données Stockage des données des tables et des clusters utilisateurs et système Chaque table possède un et un seul segment créé automatiquement lors de la création de la table Un cluster contient un seul segment pour stocker toutes les données des tables en cluster La manière dont les extents sont alloués dans un segment est spécifiée par les paramètres de stockage lors de la création de la table ou du cluster

64/116 Segments Segments d index Stockage des données d index séparément des données Chaque index est contenu dans un segment distinct créé lors de la création d index Lors de la création d index, on peut préciser le tablespace dans lequel sera créé le segment d index Le tablespace peut être différent de celui du segment de données de la table associée

65/116 Segments Segments temporaires Utilisés pour le traitement des commandes SQL nécessitant un espace disque temporaire (order by, group by, distinct, union, instersect ou minus) Une même commande SQL peut nécessiter plusieurs segments temporaires Création automatique en cas de besoin et suppression après l exécution de la commande le tablespace dans lequel sont créés les segments temporaires est défini à l aide de l option temporary tablespace de create/alter user

66/116 Rollback Segments rollback Enregistrement des actions effectuées par les transactions Stockage des données avant modification par les transactions possibilité d annulation de leur effet en cas de besoin Composantes d un segment rollback : rollback entries Chaque roolback entry contient les informations suivantes : identification du bloc modifié (noms des fichier et ID du bloc) valeurs des données avant modification par la transaction

67/116 Rollback Création de Rollback CREATE ROLLBACK SEGMENT r o l l b a c k TABLESPACE t b s STORAGE c l a u s e s t o c k a g e

68/116 Rollback Modification et suppression de Rollback Modification de Rollback ALTER ROLLBACK SEGMENT r o l l b a c k OFFLINE ONLINE STORAGE c l a u s e s t o c k a g e OPTIMAL TO [ e n t i e r K M] [NULL] SHRINK TO [ e n t i e r K M] Suppression de Rollback DROP ROLLBACK SEGMENT r o l l b a c k

69/116 Rollback Exemple : utilisation d un ROLLBACK SEGMENT Définition d un rollback segment particulier à utiliser pour une transaction : SET TRANSACTION USE ROLLBACK SEGMENT r b s l a r g e ; Création d un ROLLBACK SEGMENT RBS_Large create r o l l b a c k segment r b s l a r g e t a b l e s p a c e INFO2 STORAGE ( INITIAL 50K NEXT 10K MINEXTENTS 100 MAXEXTENTS 1 0 0 0) Modification du rollback segment (mise online) a l t e r r o l l b a c k segment r b s l a r g e o n l i n e

70/116 Rollback Gestion et suivi des Rollbacks Liste des rollbacks de la base s e l e c t from s y s. d b a r o l l b a c k s s e g s ; Affichage des statistiques des Rollback en cours d utilisation s e l e c t n. name, s. e x t e n t s, s. r s s i t e, s. o p t i z e, s. hwmsize, s. xacts, s. s t a t u s from v $ r o l l n a m e n, v $ r o l l s t a t s s where n. usn=s. usn Quelles transactions utilisent quels rollback segments? s e l e c t s. username, t. xidusn, t. u b a f i l e, t. ubablk, t. u s e d u b l k from v $ s e s s i o n s, v $ t r a n s a c t i o n t where s. s a d d r=t. s e s a d d r

71/116 Rollback et PL/SQL Contrôle de transactions Commandes COMMIT et ROLLBACK Lancer une transaction avec la première commande du LMD à la suite d un COMMIT ou un ROLLBACK Utiliser le COMMIT ou le ROLLBACK de SQL pour terminer une transaction

72/116 Rollback et PL/SQL Commande ROLLBACK

73/116 Rollback et PL/SQL Contrôle de transactions Déterminer le traitement des transactions pour le bloc PL/SQL suivant BEGIN END; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 1, 1, ROW 1 ) ; SAVEPOINT a ; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 2, 2, ROW 2 ) ; SAVEPOINT b ; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 3, 3, ROW 3 ) ; SAVEPOINT c ; ROLLBACK TO SAVEPOINT b ; COMMIT;

74/116 UNDO Tablespace Gestion automatique des Undo Tablespace (9i) Objectifs : Gestion moins contraignante par le DBA des segments de Rollback (moins de problème concernant leur taille) Possibilité d historiser les modifications sur plusieurs générations de transactions

75/116 UNDO Tablespace Exemple de paramètrage Paramétrage du temps de retention des données dans Undo Tablespace : Alter system set u n d o r e t e n t i o n=nbre s e c o n d e s / d e f a u t Ora-1555 (snapshot too old) Plus l intervalle de retention choisi est grand, plus le tablespace UNDO devra être volumineux

76/116 UNDO Tablespace Gestion d une Base avec Rollback CREATE DATABASE t e s t r o l l CONTROLFILE REUSE LOGFILE GROUP 1 ( $ORA DBS/ oradata17 /CHAR T/CHAR T LOG 11. rdo, $ORA DBS/ oradata17 /CHAR T/CHAR T LOG 12. rdo ) SIZE 10M, GROUP 2 ( $ORA DBS/ oradata17 /CHAR T/CHAR T LOG 21. rdo, $ORA DBS/ oradata17 /CHAR T/CHAR T LOG 22. rdo ) SIZE 10M $ORA DBS/ oradata17 /CHAR T/CHAR T SYSTEM 1. dbf SIZE 100M MAXLOGFILES 20 MAXDATAFILES 1022 MAXLOGMEMBERS 3 CHARACTER SET WE8ISO8859P1 ;

77/116 UNDO Tablespace Création d une base avec UNDO Tablespace (9i) Create d a t a b a s e Testundo MAXINSTANCES 1 MAXLOGHISTORY 1 M a x l o g f i l e s 5 maxlogmenbers 3 m a x d a t a f i l e s 100 D a t a f i l e I : \ o r a c l e \ o r a d a t a \ t e s t \ system01. dbf s i z e 250M r e u s e Autoextend on next 1024 k m a s i z e u n l i m i t e d e x t e n t management l o c a l D e f a u l t Temporary T a b l e s p a c e Temp T e m p f i l e I : / o r a c l e / dbs / t e s t. dbf s i z e 40M r e u z e a u t o e x t e n d on next 640 k m a x s i z e u n l i m i t e d

78/116 UNDO Tablespace Création d une base avec UNDO Tablespace (9i) Undo T a b l e s p a c e UNDOTBS1 d a t a f i l e i : \ o r a c l e \ o r a d a t a \ t e s t \ undotbs01. dbf s i z e 200M r e u s e a u t o e x t e n d on next 5120 k m a x s i z e u n l i m i t e d C h a r a c t e r s e t WE8MSWIN1252 NATIONAL c h a r a c t e r s e t AL16UTF16 LOGFILE GROUP 1 ( I : \ o r a c l e \ o r a d a t a \ t e s t \ redo01. l o g ) s i z e 102400 k GROUP 2 ( I : \ o r a c l e \ o r a d a t a \ t e s t \ redo02. l o g ) s i z e 102400 k GROUP 3 ( I : \ o r a c l e \ o r a d a t a \ t e s t \ redo03. l o g ) s i z e 102400 k ;