IN224G

March 17, 2018 | Author: Haffoudhi Nour | Category: Server (Computing), Oracle Database, Cache (Computing), Databases, Application Software


Comments



Description

Systèmes de Gestion des Bases de Données : ORACLEInstitut Supérieur d’Education et de Formation Continue Systèmes de Gestion Des Bases de Données Dr Mohamed Salah GOUIDER Dr Mohamed Salah GOUIDER Page 1 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE Table des matières 1. COMPOSANTS DE L ARCHITECTURE ORACLE 1.1. INTRODUCTION AU SERVEUR ORACLE 1.1.1. Tâches de l’administrateur de base de données 1.2. CONNEXION A UN SERVEUR ORACLE 1.2.1. Processus utilisateur 1.2.2. Processus serveur 1.3. INSTANCE ORACLE ET BASE DE DONN ES 1.3.1. System Global Area (SGA) 1.3.2. SGA dynamique. 1.3.3. Processus d'arrière plan 1.3.4. Fichiers de la base de données 1.3.5. Fichiers relatant à la Base de données 1.4. TRAITEMENT DE REQUETES 1.4.1. Etapes lors du traitement d'une requête 1.4.2. Pool partagé (Shared Pool) 1.4.3. Buffer de Cache de la base de données (Database Buffer Cache) 1.4.4. Buffer de Redo Log 1.4.5. Program Global Area (PGA) 1.5. TRAITEMENT DE REQU TES DML 1.5.1. Phases d'exécution d'un requête DML 1.5.2. Segments de Rollback 1.5.3. Database Writer (DBWn) 1.5.4. Log Writer (LGWR) 1.6. TRAITEMENT D’UN COMMIT 1.6.1. Numéro de changement du système (SCN) 1.6.2. Traitement d'un COMMIT : Etapes 2. OUTILS D'ADMINISTRATION 2.1. UTILITAIRES ADMINISTRATIFS 2.1.1. Utilitaires d'administration de base de données 2.1.2. Optimal Flexible Architecture (OFA) 2.2. ORACLE ENTREPRISE MANAGER (OEM) 2.2.1. Architecture d'OEM : Vue d'ensemble 2.2.2. Composants de la console OEM. 2.2.3. Services communs d'OEM. 2.2.4. Configurer OEM 2.3. PACKAGE D'ADMINISTRATION. 2.3.1. Pack de management DBA 2.3.2. Packs de management supplémentaires Dr Mohamed Salah GOUIDER Page 2 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE 3. GERER UNE INSTANCE ORACLE 3.1. AUTHENTIFICATION ET PRIVILEGES 3.2. FICHIERS DE PARAMETRES 3.2.1. Paramètres présents dans le fichier de paramètre 3.2.2. Le PFILE (initSID.ora) 3.2.3. Le SPFILE (spfileSID.ora) 3.2.4. Règles pour les valeurs de paramètre 3.2.5. Paramètres essentiels 3.2.6. Paramètres communément modifiés 3.3. DEMARRAGE ET ARRET D'UNE INSTANCE. 3.3.1. Etapes de démarrage d’une instance 3.3.2.. Changer la disponibilité de la Base de données 3.3.3. Etapes d'arrêt d'une instance 3.3.4. Modes d'arrêts 3.4. VUE DYNAMIQUE DES PERFORMANCES 3.4.1. Caractéristiques des vues dynamiques de performance 3.4.2. Descriptions des vues dynamiques de performance 4. PROCEDURE DE CREATION D UNE BASE DE DONN ES 4.1. PREREQUIS NECESSAIRES A LA CREATION 4.1.1. Gérer et sauvegarder les fichiers d’une base de données 4.1.2. Créer une base de données 4.2. ENVIRONNEMENT DU SYSTEME D’EXPLOITATION 4.2.1. Création de fichiers de mots de passe 4.3. CREER UNE BASE DE DONNEES 4.3.1. Assistant de configuration de base de données 4.3.2. Les options de la commande CREATE DATABASE 4.3.3. Créer une base de données en mode commande. 4.3.4. Les conditions d'erreur lors de la création d'une base de données 4.3.5. Le contenu d'une base de données après sa création 5. UTILISATION ET CONTENU DU DICTIONNAIRE DE DONNEES 5.1. STRUCTURE DU DICTIONNAIRE DE DONN ES 5.1.1. Présentation du dictionnaire de données 5.1.2. Création et catégories des vues du dictionnaire de données 5.1.3. Informations contenues dans le dictionnaire de données. 5.2. SCRIPTS DU DICTIONNAIRE DE DONNREES 5.2.1. Création de fonctions PL/SQL 5.2.2. Scripts administratifs Dr Mohamed Salah GOUIDER Page 3 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE 6. GESTION DES FICHIERS DE CONTROLE ET DE REDO LOG 6.1. FICHIER DE CONTROLE 6.1.1. Contenu des fichiers de contrôle 6.1.2. Multiplexage des fichiers de contrôle 6.1.3. Récupérer les informations des fichiers de contrôle 6.2. LES FICHIERS DE REDO LOG 6.2.1. Utiliser les fichiers de redo log 6.2.2. Structure des fichiers de redo log 6.2.3. Paramètres des fichiers de redo log. 6.3. GERER LES GROUPES DE REDO 6.3.1. Fonctionnement des fichiers de redo log. 6.3.2. Forcer un basculement de fichiers log et un point de synchronisation 6.3.3. Ajout de groupe de fichiers redo log online 6.3.4. Ajout des membres redo log online 6.3.5. Relocalisation des fichiers redo log online 6.3.6. Suppression de groupes de fichiers redo log online 6.3.7. Suppression des membres redo log online 6.3.8. Réinitialisation des fichiers redo log online 6.4. PLANIFICATION DES FICHIERS REDO LOG ONLINE 3.4.1. Nombre de fichiers redo log online 6.4.2. Emplacement des fichiers redo log online 6.4.3. Dimensionnement des fichiers redo log online 6.4.4. Gérer les redo log online with OMF 6.4.5. Obtenir des informations sur les groupes 6.4.6. Archivage de fichiers de redo log 7. GERER LES TABLESPACES ET LES FICHIERS DE DONNEES 7.1. ARCHITECTURE D'UNE BASE DE DONNEES 7.1.1. Vue d'ensemble de la structure d'une base de données 7.1.2. Relations. Création de base de données 7.1.3. Caractéristiques d'un tablespace 7.1.4. Utilisations d'un tablespace 7.1.5. Caractéristiques d'un fichier de données 7.2. CREER DES TABLESPACES 7.2.1. Types de tablespaces 7.2.2. Création d’un tablespace 7.2.3. Gestion de l’espace dans les tablespaces 7.2.4. Locally Managed tablespaces 7.2.5. Dictionary Managed Tablespaces 7.2.6. Paramètres de stockage 7.2.7. Les Undo Tablespaces 7.3. TABLESPACE TEMPORAIRE Dr Mohamed Salah GOUIDER Page 4 29/06/2006 Offline Status 7.4.3.5.3.5.1. AUTRES OPTIONS SUR LES TABLESPACES 7.1.4.6. Conséquences de la suppression de tablespaces 7. MANIPULATION DE TABLESPACE. FICHIERS DE MANIPULATION DES DONNNES 7. Dr Mohamed Salah GOUIDER Page 5 29/06/2006 . Restrictions sur les Tablespace temporaire par défaut 7.3.5. 7.4.5.2.3.4.1.1. Mettre en place l’extension automatique des fichiers de données 7.Systèmes de Gestion des Bases de Données : ORACLE 7. Configurer OMF pour la création de Tablespace 7.5. Supprimer un Tablespace 7. Récupérer des informations sur les Tablespaces.4.4.2. Déplacer un fichier de données : ALTER TABLESPACE 7.5.2.6.6.3. Tablespace temporaire par défaut 7. Tablespaces en lecture seul sur des supports en lecture seul 7.4.3. Tablespace en lecture seul 7.2. Ajouter un fichier de données à un Tablespace 7. Créer des Tablespaces avec OMF 7.3.4. Changer la taille des fichiers de données manuellement 7. Tablespace temporaire 7.6. 1. • Allouer et prévoir l'espace disque système de stockage nécessaire aux spécifications de la base de données. lorsque qu'un utilisateur lance un Oracle Forms (Front End pour consulter des bases de données Oracle à travers des formulaires. les utilisateurs doivent tout d'abord se connecter à un Serveur Oracle. les vues et les indexes. Connexion Deux Tiers : Ce type de connexion est couramment nommé "Connexion Client Serveur". les fichiers de contrôle et les fichiers de redo log. De nombreuses taches vont être effectuées par celui-ci : • Installer le serveur Oracle et les outils applicatifs. Connexion Multi Tiers : Dans une architecture multi tiers. Connexion a un serveur Oracle Pour travailler et consulter les données. • Monitorer les performances de la base de données. • Assurer la sécurité du système. c'est à dire les tablespaces. les tables. contrôler et monitorer les accès des utilisateurs. un utilisateur se connecte à partir d'une machine directement connectée à un Serveur Oracle. • Assurer la maintenance et la disponibilité de la base de données. un utilisateur est directement connecté sur la machine faisant office de Serveur Oracle. Il existe trois types de connexions grâce auxquelles un utilisateur peut accéder à un Serveur Oracle : Connexion locale : Selon cette méthode.Systèmes de Gestion des Bases de Données : ORACLE 1. Par exemple.2. 1.) sur un poste client sous Windows pour accéder à un Serveur Oracle résident sur une machine Windows NT Serveur. • Manager la structure physique de stockage. créer les bases de données. la machine de l'utilisateur se connecte à un Serveur applicatif (Par exemple un Serveur Web) qui Dr Mohamed Salah GOUIDER Page 6 29/06/2006 . • Créer la structure logique de stockage. • Créer un plan de sauvegarde et de récupération. comprenant les fichiers de données. • Maintenir. Composants de l architecture Oracle 1. Introduction au serveur Oracle Tâches de l administrateur de base de données L'administrateur de base de données (appelé DBA) est responsable du contrôle et de la configuration du système et des utilisateurs. Le process Serveur est créé sur le serveur Oracle. SQL*Plus. • Si l'utilisateur se connecte localement sur le serveur. le chemin de communication est établi via un mécanisme de communication inter process. La session démarre lorsque la connexion de l'utilisateur est validée par le serveur Oracle et se termine lorsqu'il se déconnecte ou lorsqu'une fin de connexion prématurée se produit.Systèmes de Gestion des Bases de Données : ORACLE lui même va se connecter au serveur Oracle pour récupérer les données issues de la base de données. Un process serveur est créé lorsque un utilisateur va se loguer sur le serveur en spécifiant un nom d'utilisateur. Un process utilisateur est créé lorsque tout outil client allant communiquer avec le serveur Oracle est lancé (Un outil d'administration. Le lien entre le process utilisateur et le process serveur est appelé une connexion. Le process serveur va permettre l'interaction entre le process utilisateur et le serveur Oracle en récupérant les requêtes et en les exécutant sur les serveurs Oracle. une application Oracle Forms). • Si l'utilisateur se connecte via une machine cliente. deux process sont invoqués : Le process utilisateur et le process serveur. Lorsque qu'un utilisateur est connecté à une machine sur laquelle réside un Serveur Oracle. un mot de passe et un nom de base de données. un logiciel réseau est utilisé. une application. De nombreuses sessions concurrentes d'un même utilisateur ou de plusieurs peuvent s'exécuter sur le serveur Oracle. Dr Mohamed Salah GOUIDER Page 7 29/06/2006 . Une connexion spécifique entre un utilisateur et un serveur Oracle est appelé une Session. Un process utilisateur est un mécanisme qui va exécuter le code d'une application ou d'un outil Oracle. Processus utilisateur Pour faire fonctionner un outil application tel que SQL*Plus ou des applicatifs Oracle Forms. 1. L'instance Oracle comprend une région de la mémoire appelée La SGA (System Global Area). Cette zone est créée au démarrage du process serveur. Le process serveur inclus l'OPI (Oracle Program Interface) qui est utilisé pour communiquer avec la base de données Oracle.3. Le DBA à la responsabilité de l'administration de ces process serveurs.2. Instance Oracle et Base de données 1. System Global Area (SGA) Un serveur Oracle est constitué d'une instance Oracle et d'une base de données Oracle. Oracle a besoin d’allouer de l’espace supplémentaire dans les shared pool pour stocker les informations de connexions entre les différents process. On trouve aussi dans la SGA : Le pool large (Large Pool) : Le large pool est une zone mémoire optionnel de la SGA configurée uniquement dans un environnement serveur partagé.Systèmes de Gestion des Bases de Données : ORACLE 1. Le pool large permet donc d’alléger certaines zones Dr Mohamed Salah GOUIDER Page 8 29/06/2006 . Quand un utilisateur se connecte à un serveur partagé. Processus serveur Le process serveur a les caractéristiques suivantes : Il traite les requêtes du process utilisateur et retourne le statut et le résultat de cette requête.3. L'UPI (User Program Interface) est un mécanisme standardisé utilisé par un process utilisateur pour communiquer avec un process serveur. La mémoire est allouée à la SGA lors du démarrage d'une instance et dés allouée lors de son arrêt. C'est l'UPI qui génère l'appel au serveur Oracle. Chaque process serveur utilise une zone de mémoire appelée la PGA (Program Global Area). Le buffer de cache de la base de données (Database Buffer Cache) : Cette structure stocke les données utilisatrices les plus récentes tirées des tables.2. La SGA contient des données et des informations de contrôle sur le serveur Oracle. Cette zone mémoire est partagée et réside dans la mémoire vive qui n'est pas swappée ni paginée pour des raisons de performances. Le buffer de redo Log (Redo Log Buffer) : Ce buffer est utilisé pour enregistrer les modifications effectuées sur la base de données. La SGA se compose de plusieurs structures de groupe de mémoire.1. Oracle crée un process utilisateur (Client). 1.1.2. ainsi que les processus d’arrière plan utilisé pour gérer la base de données. les trois principales étant : Le pool partagé (Shared Pool) : Contient les requêtes SQL le plus récemment exécuté et l'information du dictionnaire de données la plus récemment utilisée. 1. utilise le large pool pour restaurer les données en cas de défaillance. Recover Manager (RMAN). LARGE_POOL_SIZE : La taille du large pool.3. par défaut 0. du shared pool. d’entrées/sortie. Dr Mohamed Salah GOUIDER Page 9 29/06/2006 .Systèmes de Gestion des Bases de Données : ORACLE mémoires de la SGA. Le gain de performance vient de la réduction de la charge occasionnée par l'augmentation ou la réduction de la mémoire cache partagée. de sauvegarde et des processus de récupérations. La taille de la SGA va augmentée par l’intermédiaire du data buffer cache.2. Les Paramètres qui affectent la taille de la SGA sont : DB_CACHE_SIZE : La taille de cache des blocs standard. SHARED_POOL_SIZE : La taille en bit du shared pool. SGA dynamique Une SGA dynamique implémente une infrastructure qui permet de modifier la taille dynamiquement de la SGA sans éteindre l’instance. il n’a pas besoin de diminuer la mémoire allouée aux arbres de parcours au profit des informations de sessions. LOG_BUFFER : Le nombre de bit pour le redo log buffer cache. Le pool Java (Java Pool) : Sa taille par défaut est de 24Mo et doit être utilisé en cas d’utilisation du langage Java. En effet. et du pool large sans jamais dépasser le SGA_MAX_SIZE. Process Monitor (PMON) : Il récupère les process lorsque qu'un process utilisateur échoue. Les changements dans le buffer de cache de la base de données sont alors écrits de manière permanente dans les fichiers de données.3. en plus de la SGA. Processus d'arrière plan Une instance Oracle comprend.Systèmes de Gestion des Bases de Données : ORACLE 1. Ceci est fait lors d'un événement de check point tel qu'une rotation des logs. il nettoie les segments temporaires qui ne sont plus utilisés et annule les transaction qui n'avaient pas été validées lors d'un plantage du système. En plus de ces process obligatoires. Il est responsable du nettoyage du cache et de déverrouiller les ressources système bloquées par un process utilisateur. Check point (CKPT) : il met à jour les statuts d'information sur la base de données tels que les entêtes des fichiers de base de données. Il défragmente l'espace disponible dans les fichiers de données. (Ces changements sont référencés comme les données du redo log) System Monitor (SMON) : Il exécute une récupération de l'instance lors de son démarrage. Oracle 9i comprend cinq process d'arrière plan obligatoire pour une instance : Database Writer (DBWn) : Il écrit les données changées du buffer de cache de base de données vers les fichiers de données.3. un ensemble de process d'arrière plan qui sont au niveau du système d'exploitation. Log Writer (LGWR) : Il enregistre les changements qui sont instanciés dans le buffer de redo log vers les fichiers de redo log. on trouve un ensemble de process optionnels : Recoverer (RECO) Archiver (ARCn) Lock (LCKn) Dispatcher (Dnnn) Shared Server (Snnn) Parallel Query Slaves (Pnnn) Dr Mohamed Salah GOUIDER Page 10 29/06/2006 . les objets utilisateurs. la taille de la mémoire à allouer. 1. cette fonctionnalité n'est utilisée que lorsque la base de données est en mode "ARCHIVELOG". le serveur Oracle va lire les paramètres d'initialisation du fichier de paramètres. • Les fichiers de redo log contenant un enregistrement des changements qui ont été fait sur la base de données. Fichiers de la base de données Une base de données Oracle a une structure logique et physique. • Les fichiers de redo log archivés (Archived Redo Log Files) : Ils contiennent des copies off line des fichiers de redo log. pour avoir la possibilité de revenir en arrière en cas de dysfonctionnement.4. Une base Oracle contient au moins deux groupes de redo log chacun contenant au moins un fichier de redo log. il est toutefois possible de les mirrorer sur plusieurs disques dur. Il existe trois types de fichiers : • Les fichiers de paramètre (Parameter File) : Il va définir les caractéristiques de l'instance. Lors du démarrage d'une instance. Oracle supporte les fichiers de redo log multiplexés. le nom des fichiers de contrôle ainsi que les autres paramètres système. Pour renforcer leur tolérance à une panne de disque dur.5. On retrouve des informations telles que le nom de la base de données. Les fichiers de redo log sont sauvés lorsqu'ils sont pleins.3. Entendons par structure physique que les fichiers contenu dans la base de données ont une réelle existence (ex : fichiers de données). la base de données Oracle est constituée de trois types de fichiers : • Les fichiers de données contenant les données des blocs de données qui sont modifiées par les transactions courantes. Fichiers relatant à la Base de données Ce sont les fichiers qui ne font pas partie de la base de données mais qui sont utilisés par le serveur Oracle pour des opérations telles que le démarrage d'une instance ou l'authentification des utilisateurs. le dictionnaire de données. On peut ainsi maintenir une ou plusieurs copies de fichiers de redo log sur différents disques (On parle de fichiers mirrorés). Une base de données Oracle nécessite au moins un fichier de contrôle. Pour sa part. • Les fichiers de contrôles contenant les informations nécessaires pour maintenir et vérifier l’intégrité des données de la base. • Le fichier de mots de passe (Password File) : Il est utilisé pour authentifier les utilisateurs privilégiés.Systèmes de Gestion des Bases de Données : ORACLE 1. Dr Mohamed Salah GOUIDER Page 11 29/06/2006 . Ils sont utilisés lors d'une récupération suite à une défaillance d'un média.3. 4. La section de mémoire du pool partagé de la SGA est utilisée pour compiler la requête et créer un arbre de parcours.1. Le statut de réussite ou non de l'analyse est renvoyé au process utilisateur.2.Systèmes de Gestion des Bases de Données : ORACLE 1. un ou plusieurs fetch peuvent être nécessaires. Exécution (Exécution) : Préparation de la récupération des données. Etapes lors du traitement d'une requête Lorsqu'un utilisateur lance une déclaration ou une requête SQL. Ce traitement est découpé en trois étapes : Parcours (Parse) : Le process serveur reçoit la requête. Nous allons ici voir les différentes composantes de cette zone utilisée par le process serveur pour traiter les requêtes. Selon la quantité de mémoire disponible. Le Shared Pool peut être retaillée dynamiquement avec la commande : ALTER SYSTEM SET SHARED_POOL_SIZE = 128M. les lignes affectées sont verrouillées par le process serveur pour être rendues non accessibles aux autres utilisateurs. le process utilisateur l'envoie au process serveur qui la traite. Les verrous et les handles sur le cache de librairie sont également consignés.4. Pool partagé (Shared Pool) Le pool partagé est une zone mémoire faisant parti de la SGA et dont la taille doit être définie par le DBA. 1.4. Si l'ordre SQL est un UPDATE ou un DELETE. Le cache de librairie est composé de deux structures : la zone partagée SQL et la zone partagée PL/SQL Le cache du dictionnaire de données (Data Dictionary Cache) : Dr Mohamed Salah GOUIDER Page 12 29/06/2006 . On trouve dans le pool partagé : Le cache de librairie (Library Cache) : Contient les informations sur les requêtes SQL et/ou PL/SQL récemment utilisées. analyse la syntaxe et vérifie les privilèges de l'utilisateur pour les objets référencés à accéder. Récupération des données (Fetch) : Les données sont récupérées et envoyées au process utilisateur. Le plan d’exécution de ces requêtes est également stocké ainsi que l’arbre de parcours et le texte des requêtes. Traitement de requêtes 1. Buffer de Cache de la base de données (Database Buffer Cache) Lorsqu’une requête est exécutée. 1. La taille de chaque buffer du buffer cache est égale à la taille d’un bloc Oracle et spécifié par le paramètre DB_BLOCK_SIZE.3. les objets de la base de données.4. Le buffer de cache est composé de trois caches indépendants : • DB_CACHE_SIZE : Ne peut être mis à 0. On trouve également les utilisateurs valides. Les résultats sont consultables à l’aide de la vue V$DB_CACHE_ADVISE. employé pour supprimer les blocs de mémoire réutilisé qui ont subit peu de changement. Il contient des blocs de données modifiées et non modifiées datés selon un algorithme Oracle (LRU) pour mettre à jour le buffer. Ceci permet d’augmenter la rapidité d’accès aux données. Gère la taille du buffer par défaut • DB_KEEP_CACHE_SIZE : Gère la taille du keep buffer cache. cette zone comporte les caractéristiques suivantes : Le database buffer cache contient les données les plus récemment et fréquemment utilisées. 1. Le database buffer cache contient des blocs de données lus dans les fichiers de données. Le DBA doit configurer la taille de cette zone mémoire. Buffer de Redo Log Le buffer de redo log enregistre les changements faits lors d’une requête DML. • Sa taille est définie par le paramètre LOG_BUFFER et doit être définie par le DBA.4. OFF.4. Cela permet au process serveur d’accéder plus rapidement aux données. utilisé pour stocker les blocs dans la mémoire susceptible d’être réutilisés. READY) : Permet d’activer les statistiques qui prédisent le comportement de la base lorsqu’on modifie la taille du cache. leur mot de passe et leurs privilèges. sa structure et la définition des colonnes. • DB_CACHE_ADVICE (ON. Dr Mohamed Salah GOUIDER Page 13 29/06/2006 . le process serveur consulte le database buffer cache (Compris dans la SGA) pour les blocs de données requis par la requête.Systèmes de Gestion des Bases de Données : ORACLE Contient des informations les plus récemment utilisées sur le dictionnaire de données. Les informations du dictionnaire de données sont mises en cache lorsque elles sont demandées par la base de données. • DB_RECYCLE_CACHE_SIZE : Gère le taille du recycle buffer cache. Ces caractéristiques sont les suivantes : • Il fait parti de la SGA. Des informations de session : Contient les privilèges utilisateurs pour la session en cours.5. la base de données Oracle alloue une zone globale de programme (PGA Program Global Area ou bien Process Global Area) dans la mémoire. Program Global Area (PGA) Lorsque qu’un process serveur est créé. 1. Il est renouvelé lorsqu’il est plein et que les entrées ont été enregistrées dans les fichiers de redo log online. La taille total de la PGA est inférieur au PGA_AGGREGATE_TARGET en mode auto de WORKAREA_SIZE_POLICY.4. de nouveaux paramètres dynamiques de gestion de la PGA sont apparus. • Son utilisation est séquentielle et circulaire. ou un process d’arrière plan. tel que les UPDATE. Le traitement d’une requête DML se compose de deux phases : Parcours (Parse) : Contrôle des erreurs et placement dans une mémoire partagée SQL. la position du changement et la nouvelle valeur. Dr Mohamed Salah GOUIDER Page 14 29/06/2006 .5. Un état de curseur (Cursor State) : Etat de l’étape dans l’exécution des éventuels curseurs de la session. si nécessaire. 1. Comprendre leur exécution permet de créer le data buffer cache et les segments de ROLLBACK appropriés.Systèmes de Gestion des Bases de Données : ORACLE • Il se compose d’entrées qui contiennent les blocs changés. Dans la version 9i. Phases d'exécution d'un requête DML Les requêtes de manipulations de données (DML). Par exemple. • Il n’identifie pas le bloc où les changements sont faits. Un espace de pile (Stack Space) : Contient les variables de session et les arrays.1. Traitement de requêtes DML 1. d’index ou de segments de ROLLBACK. les résultats intermédiaires lors du tri. c'est-à-dire qu’il traite de manière similaire les blocs de données. DELETE ou INSERT.5. sont utilisées pour manipuler les données. C’est une zone de travail utilisé pour stocker le résultat de la requête. Un curseur est un pointeur sur la mémoire associé à une requête SQL donnée. Elle contient pour un serveur dédié : Une zone de tri (Sort area) : Utilisé pour stocker. C’est un buffer mémoire qui contient les données et les informations de contrôle pour ce process serveur. PGA_AGGREGATE_TARGET définit la taille maximale que peut atteindre la PGA totale allouée à toute une instance. Ces segments ne sont pas visibles par un utilisateur. c'est-à-dire qu’ils ne correspondent plus aux blocs dans les fichiers de données. • Finalement. • Lecture des blocs de données et de ROLLBACK dans le database buffer cache. Le serveur Oracle assigne un segment de Rollback à chaque transaction. • Mise en place de verrous sur les données qui vont être changées. • Ecriture de l’image avant dans les segments de roll back et enregistrement des changements du buffer cache dans le redo log buffer pour protéger l’image avant en cas de défaillance. 1.2. Les blocs de données altérées dans le buffer cache sont marqués comme "sales (Dirty)".5.Systèmes de Gestion des Bases de Données : ORACLE Exécution : Si la phase de parcours s’est effectuée avec succès. Segments de Rollback Les segments de Rollback sont utilisés pour sauver les données lors d’une requête DML afin de les restaurer en cas d'annulation de la transaction ainsi que pour empêcher à d’autres transactions de voir les données en cours de modification. Une base de données contient un ou plusieurs segments de Rollback. les données sont enregistrées dans le buffer cache et les changements sont également enregistrés dans le redo log buffer protégeant ainsi l’image après. Les segments de Rollback peuvent permettre de récupérer des données non commitées (validées) Dr Mohamed Salah GOUIDER Page 15 29/06/2006 . l’exécution se fait en plusieurs étapes. Ces blocs de données sont écrits lorsque certains évènements se produisent tel que: • L’écriture a lieu lorsque le nombre de buffers « sales » atteint un seuil.3. 1. • L’écriture s’effectue lors d’un timeout. • Lorsqu’un tablespace temporaire ou normal est mis offline. • Lorsqu’un tablespace est mis en lecture seule.5. • Lorsqu’une table est tronquée ou supprimée. cela se produit par exemple lors de l’arrêt de la base de données. Le DBWn recherche alors des buffers «sales» selon l’algorithme LRU ou bien écrit la totalité si la base de données est inactive.Systèmes de Gestion des Bases de Données : ORACLE lors d’une transaction. • L’écriture se produit lorsque qu’un process serveur ne trouve plus de buffer libre après avoir recherché un certain nombre de buffers. Database Writer (DBWn) Ce process d’arrière plan écrit les données du database buffer cache vers les fichiers de données sur le disque. par exemple lorsque le DBWn reste inactif plus de trois secondes. • Lors d’un timeout. Dr Mohamed Salah GOUIDER Page 16 29/06/2006 . cela permet de libérer des buffers dans le database buffer cache. Ils permettent également de récupérer un état consistant de la base de données en cas de défaillance système. • Le DBWn se déclenche lorsqu’un check point est atteint. Les segments de Rollback sont contenus dans les fichiers de données et sont lus dans le database buffer cache si nécessaire. Ce numéro unique est enregistré dans les segments de Rollback ainsi que dans les fichiers de redo log. Log Writer (LGWR) Le Log Writer écrit séquentiellement des entrées du redo log buffer vers les fichiers de redo log.4. • Avant que le process DBWn écrive les données du database buffer cache vers les fichiers de données. 1. • Toutes les 3secondes. Le process LGWR écrit lorsque l’un des quatre événements suivants se produit : • Lorsque le buffer de redo log est plein à un tiers de sa capacité. Numéro de changement du système (SCN) La base de données Oracle assigne un SCN (System Change Number) à chaque transaction qui est commitée dans le but de l’identifier de manière unique. • Lorsqu’une transaction utilisateur est commitée. Dr Mohamed Salah GOUIDER Page 17 29/06/2006 . LGWR peut demander à DBWn d’écrire dans les fichiers de données.6.6. Les événements sont organisés dans un ordre temporel au sein d’une instance et entre instances.1. Il est également utilisé comme une marque temporelle (Timestamp) pour permettre à la base de données de synchroniser les données. Traitement d un commit 1. • Lorsqu’un timeout se produit. par exemple lors d’une inactivité de plus de trois secondes.5.Systèmes de Gestion des Bases de Données : ORACLE 1. on remarquera que seul le buffer de redo log est écrit sur le disque. • Le process serveur informe le process utilisateur de la fin du COMMIT. Si plusieurs process utilisateurs réalisent un commit simultanément. • Le process serveur enregistre les informations indiquant que la transaction est terminée. 1. Un commit réalisant ces étapes est appelé un commit rapide (Fast Commit).Systèmes de Gestion des Bases de Données : ORACLE Il permet au serveur Oracle de lire les données de manière consistante en faisant abstraction de la date système du système d’exploitation lors de la restauration de la base de données. Pour cela un COMMIT est réalisé. Nous allons voir les étapes qui constitue cette action de commit : • Un process serveur enregistre une ligne COMMIT accompagnée de son SCN dans le buffer de redo log.6. Les ressources verrouillées dans les tables et les enregistrements sont alors libérées. • Le process LGWR écrit les entrées du buffer de redo log dans les fichiers de redo log en commençant par la ligne de COMMIT (LGWR confirme la réussite du commit seulement après que les buffer de redo log soit écrit sur le disque.2. Une seule écriture sur le disque est donc nécessaire pour réaliser un COMMIT. Les buffers sales sont écrits dans le fichier de données de manière indépendante par le process DBWn.). Traitement d'un COMMIT : Etapes Une transaction doit être écrite de manière permanente après le traitement de celleci. Dr Mohamed Salah GOUIDER Page 18 29/06/2006 . le serveur Oracle rassemble les commits et n’écrit qu’une seule fois. Une liste des produits installés est maintenue en cas de désinstallation de l’un d’entre eux. La syntaxe de lancement de la commande varie en fonction du système d’exploitation. Outils d'administration 2. Il détecte le langage courant du système d’exploitation ou bien utilise le langage par défaut. Un fichier de log est créé lors de l’installation et contient l’ensemble des étapes et les résultats.1. Il est possible de spécifier différents répertoires principaux (Le ORACLE_HOME) pour permettre d’installer plusieurs versions d’un même produit. Il peut installer des logiciels à partir d’un CDROM ou d’Internet. dans ce cas. Outils pour la création des fichiers de mots de passe : La commande orapwd permet de créer un fichier de mot de passe.Systèmes de Gestion des Bases de Données : ORACLE 2. Dr Mohamed Salah GOUIDER Page 19 29/06/2006 . un fichier de réponse est utilisé pour remplacer les réponses aux différentes questions lors de l’installation. les outils Oracle et les utilitaires. Les outils de post-installation sont également lancés si besoin est. configurer les options de la base de données. Il est également possible de le lancer en mode silencieux.1. Utilitaires d'administration de base de données Oracle Universal Installer : L’installateur Universel est un installateur Java utilisé pour installer Oracle9i. L’installation peut être guidé par des assistants ou permet d’utiliser des packages standard nécessitant un minimum de réponses.1. gérer les templates. détecter les dépendances entre les différents composants. Utilitaires administratifs 2. l’assistant de configuration de base de données est lancé. Le mode silencieux est utilisé lorsqu’il n’y a pas de terminal graphique ou lorsque l’on veut que l’utilisateur n’a rien à faire pour l’installation. après l’installation d’OEM (Oracle Enterprise Manager). Oracle Database Configuration Assistant : Cet assistant permet de créer une base de données. supprimer une base de données. Par exemple. d’administrer.Systèmes de Gestion des Bases de Données : ORACLE Ensuite.2. de logs et administratifs peuvent être séparés sur des disques différents. où n’importe quel fichier de base de données peut être enregistré sur n’importe quel espace disque.1. Une présentation plus complète de SQL* Plus est disponible dans le module SQLP. via une interface graphique. L’administration en sera simplifié et les performances grandement améliorées. Puis. • Augmenter les performances de la base de données en séparant les composants de la base de données sur des disques différents. il suffit de mettre REMOTE_LOGIN_PASSWORDFILE à EXLUSIVE dans le fichier de paramètre. ajouter les utilisateurs au fichier de mot de passe et de leur attribuer des privilèges. L’arborescence ci-dessus montre une structure de stockage selon le modèle OFA. Oracle Enterprise Manager : C’est un outil important permettant. 2. de contrôler et de tuner une ou plusieurs bases de données localisées sur un ou plusieurs serveurs. • Séparer les objets avec un comportement différent sur différents tablespaces. Optimal Flexible Architecture (OFA) OFA est l’architecture standard qu’il est recommandé d’utiliser dans une base de données Oracle. SQL* Plus : SQL* Plus est un outils Oracle qui permet de manipuler et interagir avec la base de données. de contrôles. Dr Mohamed Salah GOUIDER Page 20 29/06/2006 . Les fichiers binaires. Les trois règles importantes pour respecter cette architecture sont : • Etablir une structure de répertoires. OFA organise donc la base de données en fonction des types de fichiers et de leurs utilisations. elle comprend : • La console est un outil graphique. de plus. Un repository OEM distinct peut être associé à chaque utilisateur OMS peut donc effectuer toutes les taches administratives.1. • Les composants OMS forment le second tiers. Architecture d'OEM : Vue d'ensemble Oracle Entreprise Manager fournit un outil graphique de configuration système pour administrer une ou plusieurs bases de données. les données applicatives et l’état des n uds administrés sur l’environnement Oracle. Elle permet d’accéder à un ensemble d’outils tel que la planification de taches.Systèmes de Gestion des Bases de Données : ORACLE 2. ce qui augmente la tolérance de panne Dr Mohamed Salah GOUIDER Page 21 29/06/2006 . plusieurs OMS peuvent être mis en place et agir en load balancing. utilisés par les DBA pour administrer une ou plusieurs bases de données à partir d’une même console. et ce de manière distribuée.2. Un repository est associé à des utilisateurs et non à une machine. Le repository OEM est un jeu de tables dans la base de données contenant les données système.2. il devient indépendant de sa localité et peut être accédé de partout. les données de ces composants sont en effet stockées dans le repository OEM. la recherche de services sur le réseau et la sécurité. la gestion des évènements. Oracle Entreprise Manager (OEM) 2. des barres d’outils et elle peut intégrer des outils provenant d’autres fabricants. OEM se présente sous la forme d’une architecture trois tiers. La base de données stockant le repository OEM doit être accessible à la console OEM. La console OEM comporte des menus. ainsi. Elle contient un ensemble d’icônes présentant sous forme de palettes les différents outils. Services communs d'OEM OEM comporte un ensemble de services permettant au DBA d’administrer les serveurs Oracle et leurs bases de données. Les principaux services fournis par les OMS sont les suivants : Le service de taches panifiées (Job Service) : Il gère les jobs programmés et permet donc d’automatiser des taches répétitives. il permet de contrôler des limites applicatives et Dr Mohamed Salah GOUIDER Page 22 29/06/2006 . elle permet de visualiser l’ensemble des services Oracle à travers le réseau ainsi que les objets qu’ils contiennent. Un « intelligent agent » est un process qui s’exécute sur le noeud distant du réseau et qui permet de l’administrer à distance. Une fenêtre de navigation apporte une vue hiérarchique des différents noeuds du réseau. les bases de données ou bien les hôtes. 2. et donnant un accès similaire aux éléments des menus de manière plus rapide. Le service de gestion des évènements (Event Service) : Il permet de contrôler les évènements systèmes survenant sur l’ensemble des serveurs Oracle du réseau.2.2. Le DBA peut alors être contacté par email ou autres. des outils d’accès et de services et l’accès à l’ensemble des fonctionnalités de la console OEM. Ces noeuds sont contrôlés par les « intelligent agents ». elle contient un ensemble de composants qui permettent à un ensemble de DBA d’administrer une ou plusieurs base de données dans un environnement Oracle. Composants de la console OEM La console OEM est l’interface graphique utilisateur de l’application OEM.Systèmes de Gestion des Bases de Données : ORACLE • Les Noeuds constituent la troisième couche de l’architecture qu’un utilisateur va chercher à administrer.3. Un historique et un suivi de l’état des jobs sont également disponibles. Les objets réseaux sont également représentés sur une carte graphique qui permet de les situer géographiquement. Elle se compose de menus permettant de lancer des applications d’administrations. La console OEM comprend également la gestion des taches planifiées (Job) qui permettent de lancer à distance des taches concernant les « listeners ». Certains évènements peuvent faire l’objet de jobs correctifs qui seront lancés au déclanchement de celui-ci. 2. On peut également consulter les évènements systèmes sur les différents noeuds et selon les critères que l’on souhaite.2. 2. la charge CPU ou bien des pertes de disponibilité d’un service.Systèmes de Gestion des Bases de Données : ORACLE systèmes tel que l’espace occupé par les fichiers de données. Lancement du service OMS : La seconde étape consiste à lancer le service OMS. Il peut. Les authentifications sont encodées dans le repository OEM et les utilisateurs doivent spécifier leur identité pour accéder à chaque ressource à travers la console OEM. Package d'administration Dr Mohamed Salah GOUIDER Page 23 29/06/2006 . Les étapes se découpent comme suit : Création du repository OEM : L’assistant de configuration demande l’hôte. les « parallel Servers » et les serveurs de vidéo. les machines. Configurer OEM Cette section présente la configuration d’OEM. et le SID du lieu ou va être installé le repository. Travail sur une base de données : La dernière étape consiste à choisir une base de données via l’explorateur et s’authentifier pour pouvoir l’administrer. Configuration de la sécurité : La sécurité appropriée doit être mise en place pour contrôler l’accès aux différents noeuds et services du réseau. installateur universel lance l’assistant de configuration d’OEM. 2. Il est alors possible de se connecter au repository OEM et de découvrir automatiquement (Ceux ou l’intelligent agent est lancé) ou manuellement les différents noeuds et services présents sur le réseau. 2. Un super administrateur peut également gérer les différents administrateurs et leurs privilèges. lors de son installation. Le service de découverte (Discovery Service) : C’est un assistant permettant de découvrir sur le réseau les différents services tel que les bases de données. mais il est également possible de le lancer à nouveau lors de la création d’un repository supplémentaire. il démarre automatiquement au démarrage de Windows ou bien il peut être démarré manuellement. lors d’un événement donné. les serveurs Web. déclencher des jobs de récupération ou autres. le port. L’authentification pour un utilisateur doit être configurée pour chaque objet à accéder.4. Le service de sécurité (Security Service) : Il permet de contrôler l’accès aux services Oracle ainsi qu’aux noeuds du réseau. les listeners.3. Lancement de la console OEM : La console OEM peut être lancé via le menu « Démarrer ». 3. Un super administrateur peut également gérer les différents administrateurs et leurs privilèges.2. restaurer ou bien recouvrer une base de données. Les outils et assistants de gestion des données : Ils aident au chargement et l’organisation des données dans les bases de données. du code PL/SQL ou encore des commandes SQL*Plus. • Schema Manager : Il permet de créer et maintenir des objets comme les tables. fichiers de données. Le Gestionnaire de Performances Oracle permet de réaliser cela en temps réel et fournit des vues graphiques sur la performance de la base de données et du système. il devient possible de collecter et d’inspecter des performances spécifiques selon des statistiques aidant au paramétrage fin d’une base de données. 2. Dr Mohamed Salah GOUIDER Page 24 29/06/2006 . Pack de management DBA Le pack de management DBA est un ensemble d’outils utilisés pour l’administration des bases de données.1. On peut également gérer les fichiers de redo log grâce à ces outils. Oracle TopSessions permet de lister l’ensemble des sessions connectées au serveur Oracle. indexes et vues. Packs de management supplémentaires OEM peut intégrer dans sa console trois outils administratifs supplémentaires : Le Pack de Diagnostic : Il fournit des utilitaires d’audit et de monitoring des bases de données.Systèmes de Gestion des Bases de Données : ORACLE 2. • Storage Manager : Permet de surveiller les tablespaces. On peut également voir les détails d’une session et y mettre fin. On lance ces outils à partir de la console ou du Gestionnaire de Stockage. fermer et surveiller une base de donnée • Security Manager : Il permet de contrôler l’accès aux services Oracle ainsi qu’aux noeuds du réseau. Il se compose de cinq applications et de deux jeux d’utilitaires et d’assistants : • Instance Manager : Cet outil permet de monter. Ils permettent également le transfert des données à partir et vers une base de données Oracle. Les outils et les assistants de sauvegarde Oracle : Ils permettent de sauvegarder. On lance ces outils à partir de la console ou du Gestionnaire de Schéma.3. • SQL* Plus Worksheet : C’est une application en ligne de commandes permettant de lancer des requêtes SQL. segments de rollback. Il fournit un ensemble d’informations sur les tablespaces et leurs segments. L’analyseur SQL permet d’analyser et d’éditer des requêtes SQL pour augmenter leurs performances. L’application de Capture permet de capturer l’image d’un objet à un instant donné. Dr Mohamed Salah GOUIDER Page 25 29/06/2006 . Le Pack de Tuning : Il se compose d’un ensemble d’outils visant à améliorer les performances d’une base de données. Le Gestionnaire de Tablespace permet de monitorer et contrôler l’espace de stockage. Oracle Expert permet de tuner et d’optimiser le système de manière très fine.Systèmes de Gestion des Bases de Données : ORACLE Le planificateur de capacité permet de collecter des données et de stocker un historique des informations sur la base de données pour parer à l’augmentation de la capacité requise. Le Visualisateur de données de trace Oracle permet de suivre et de programmer les informations de traçages de la base de données et de Net8. Le Pack de Gestion du Changement : Il se compose d’utilitaires utilisés pour contrôler le changement de la définition des objets de la base de données. L’application de Gestion des Plans permet de centraliser l’accès à tous ces outils. Les Objet de Changement rapide et de modification permettent de propager des changements aux objets d’une ou plusieurs bases de données. On peut défragmenter l’espace occupé et réorganiser les données. L’application de Différentiel permet de comparer les différences entre la définition d’objet pour deux base de données ou selon un modèle. 2. à changer après l’installation.2. Mot de passe par défaut : change_on_install. Gérer une Instance Oracle 3.ora où SID est le nom de l’instance. Paramètres présents dans le fichier de paramètre Une base de données Oracle devient accessible aux utilisateurs lorsque le DBA démarre l’instance et ouvre la base de données. Fichiers de paramètres 3. Des privilèges particuliers sont requis pour permettre de faire ces taches.ora et le SPFILE (fichier binaire) fait référence au fichier spfile<SID>. 3.1. Sous UNIX. Le PFILE fait communément référence au fichier init<SID>. 3.Systèmes de Gestion des Bases de Données : ORACLE 3. Deux comptes utilisateur DBA son créés automatiquement et ont le rôle DBA : Le compte SYS : Créé lors de l’installation d’Oracle avec tous les privilèges systèmes. Mot de passe par défaut : manager à changer après l’installation. Le schéma de SYS stocke toutes les tables et les vues du dictionnaire de base de données.1. Authentification et privilèges Les utilisateurs administrateurs de la base de données sont responsables de la gestion et de l’administration du serveur Oracle. Le fichier de paramètre est un fichier texte contenant la liste des paramètres de démarrage de l’instance. Le PFILE (initSID.2. ce fichier se trouve par défaut dans le répertoire %ORACLE_HOME%\database et contient un paramètre IFILE qui fait référence à un fichier plus complexe situé dans le répertoire %ORACLE_HOME%\admin\<SID>\pfile.2. on peut le trouver dans le répertoire $ORACLE_HOME/dbs.ora) Sous Windows NT. Ces fichiers sont au nombre de deux (le dernier est une nouveauté de la 9i) : le PFILE et le SPFILE. Oracle lit le fichier d’initialisation. Pour démarrer une instance. Le schéma de SYSTEM stocke les tables et les vues administratives ainsi que des informations administratives propres à certains produits Oracle supplémentaires. Aucun utilisateur ne peut modifier ou créer de table dans ce schéma. Dr Mohamed Salah GOUIDER Page 26 29/06/2006 . Le compte SYSTEM : Créé lors de l’installation d’Oracle avec tous les privilèges systèmes. ora) Le spfile est un fichier binaire de paramètres dynamiques qui est géré par le serveur Oracle. il est prioritaire par rapport au PFile. on peut l’éditer avec n’importe quel éditeur de texte et le redémarrage de l’instance est nécessaire pour que les changements prennent effet.Systèmes de Gestion des Bases de Données : ORACLE Ce fichier est lu lors du démarrage de l’instance. En effet. Les paramètres contrôlent les performances de la base de données ainsi que la quantité de mémoire utilisée par les différentes composantes de la SGA. On trouve également dans ce fichier le nom et le chemin des fichiers de contrôle. des fichiers de log archivés et des fichiers de trace de la base de données. au démarrage de l’instance le serveur essayera de lire le spfile plutôt que le pfile. Si le fichier spfileSID. Il se situe dans le même répertoire que le initSID. Le SPFILE (spfileSID. Parmi les paramètres du fichier de paramètre. On peut également définir certains attributs physiques de la base de données au moment de sa création telle que la taille des blocs de données. le pfile sera lu seulement en cas d’échec de la lecture du spfile.3. on trouve le nom de la base de données pour laquelle l’instance est démarrée.ora existe. 3.2. Il est préférable de faire une copie de ce fichier sur l’ordinateur où se trouve OEM s’il en existe un. Dr Mohamed Salah GOUIDER Page 27 29/06/2006 .ora et contient aussi les mêmes données. • Certain paramètres tel que CONTROL_FILE peuvent prendre plusieurs valeurs. 3. • Le format pour définir un paramètre est de la forme nom_de_paramètre = valeur et s’écrit sur une ligne. • Si un paramètre comprend des espaces ou des tabulations. • La plupart des paramètres ont une valeur par défaut. le fichier de paramètre le devient également. DB_CACHE_SIZE : Ne peut être mis à 0. DB_RECYCLE_CACHE_SIZE : Gère le taille du recycle buffer cache.2. employé pour supprimer les blocs de mémoire réutilisé qui ont subit peu de changement. DB_KEEP_CACHE_SIZE : Gère la taille du keep buffer cache. • Le mot clé IFILE est utilisé pour inclure d’autres fichiers à un fichier de paramètre. Dr Mohamed Salah GOUIDER Page 28 29/06/2006 . CONTROL_FILES : Spécifie le nom des fichiers de contrôle de la base de données. cependant certains paramètres sont au contraire essentiels pour l’instance Oracle. Règles pour les valeurs de paramètre Un ensemble de règles régissent les paramètres compris dans le fichier de paramètre : • La plupart des paramètres sont optionnels.5.Systèmes de Gestion des Bases de Données : ORACLE Remarque : Le contenu du spfile est visible dans la vu dynamique V$SPPARAMETER et non pas V$PARAMETER qui est utilisé par le pfile. il doit être mis entre doubles quotes. utilisé pour stocker les blocks dans la mémoire susceptible d’être réutilisés. • Des lignes de commentaires peuvent être incluses dans le fichier et doivent commencer par le symbole #. 3. DB_BLOCK_SIZE : Taille d’un bloc de données spécifié lors de la création de la base de données. La liste suivante les présente : DB_NAME : Identifiant de la base de données. Paramètres essentiels La plupart des paramètres sont optionnels.2. Ne peut être changé après la création. COMPATIBLE : Version du serveur avec laquelle l’instance pourra être compatible. • Si le système d’exploitation est sensible à la casse. • Leur ordre n’est pas important.4. Gère la taille du buffer par défaut. elles doivent être mises entre parenthèses et séparées par des virgules. SHARED_POOL_SIZE : Spécifie la taille du pool partagé en bytes. Elles sont au nombre de trois et se présentent tel que suit : • Le démarrage de l’instance. Sinon. • le spfile. • le initSID. On démarre ce mode lors de la création de la base de données ou la régénération des fichiers de contrôle.1. Le démarrage de l’instance est la première étape. LOG_BUFFER : Spécifie le nombre de bytes qui sont alloués pour le buffer de redo log dans la SGA.6. Démarrage et arrêt d'une instance 3. C’est à ce moment que le serveur va essayer de lire les fichiers de paramètres dans l’ordre suivant : • le spfileSID. Paramètres communément modifiés Les paramètres le plus souvent modifiés par le DBA pour une instance donnée sont les suivants : IFILE : Permet d’inclure un autre fichier de paramètres dans le fichier courant.Systèmes de Gestion des Bases de Données : ORACLE BACKGROUND_DUMP_DEST : Spécifie le répertoire ou le process de fond de taches écrit les fichiers de trace et les fichiers de log d’alertes.ora.ora (fichier de paramètres crée automatiquement avec une base de données). Peut être utilisé jusqu’à trois niveaux. TIMED_STATISTICS : Permet d’activer ou non la datation des événements dans les fichiers de trace et les écrans de monitoring. 3. Si il n’est pas trouvé alors.ora Dr Mohamed Salah GOUIDER Page 29 29/06/2006 . Etapes de démarrage d une instance Le démarrage d’une instance se fait en plusieurs étapes.3. SQL_TRACE : Permet d’activer ou non l’utilitaire de trace SQL pour toutes les sessions utilisateurs. MAX_DUMP_FILE_SIZE : Spécifie la taille maximale en bloc des fichiers de trace.2.3. 3. on parle de mode NOMOUNT. USER_DUMP_DEST : Spécifie le lieu où les fichiers de trace utilisateurs sont crées. PROCESSES : Définit le nombre maximum de process du système d’exploitation pouvant être simultanément connecté à l’instance. • Le montage de la base de données • Et l’ouverture de la base de données. une erreur est renvoyée et la base de données n’est pas ouverte. La consistance de la base de données est également vérifiée pour s’assurer que les fichiers de données soient bien synchronisés. les fichiers de Rollback et les données utilisateurs sont mises à jour. la base de données est associée à une instance démarrée. Ce mode peut être changé de l’un à l’autre lorsque l’instance à été lancée (de NOMOUT vers MOUNT puis VERS OPEN).2. Ce mode est utilisé pour certaines taches de maintenance de la base de données. On l’appelle également le mode OPEN ou mode normal de la base de données. le serveur Oracle vérifie que les fichiers de données et de redo log puissent être ouverts. Il est possible de le changer soit grâce à la commande ALTER DATABASE ou grâce au Manager d’Instance Oracle. Ces fichiers sont alors lus pour obtenir le nom et le statut des fichiers de données et de redo log. un utilisateur valide de la base de données peut se connecter et accéder aux données. le serveur Oracle localise les fichiers de contrôle et les ouvre. Changer la disponibilité de la Base de données Un DBA peut démarrer une instance Oracle dans l’un des trois modes NOMOUNT.3. C’est le mode MOUNT. Lors de cette étape finale. Cela se fait à l’aide du menu Base de données. Si nécessaire. Les fichiers de trace et d’alertes sont également ouverts.. il est possible de taper ceci : ALTER DATABASE [MOUNT| OPEN] Il est possible d’agir sur le mode de la base de données à l’aide du Manager d’Instance Oracle. A ce moment. le process d’arrière plan SMON lance la restauration d’instance. La troisième étape de démarrage est l’ouverture de la base de données. On peut par exemple changer l’état de la base de données de NOMOUNT à MOUNT. MOUNT et OPEN. Les derniers checkpoints sont identifiés. Si l’ouverture de l’un d’entre eux échoue. A ce moment. les transactions non commitées font l’objet d’un rollback 3. En ligne de commande et en mode NOMOUT. La base de données n’est pas encore ouverte et donc non accessible.Systèmes de Gestion des Bases de Données : ORACLE La SGA est allouée et les process démarrés. Dr Mohamed Salah GOUIDER Page 30 29/06/2006 . La seconde étape consiste à monter la base de données. Systèmes de Gestion des Bases de Données : ORACLE 3. Dans le mode transactionnel. Elle est ensuite démontée : La base de données est ensuite démontée de son instance. les fichiers ne sont pas fermés. Dans ce mode de fermeture. une restauration de l’instance ne sera pas nécessaire au redémarrage. La restauration d’instance ne sera pas nécessaire dans ce mode également.3. La base de données est ensuite immédiatement fermée. (Ce mode est exécuté lorsque la commande STARTUP FORCE est utilisée). aucun utilisateur ne peut lancer une nouvelle transaction. Lors de l’utilisation de ce mode. Etapes d'arrêt d'une instance Il y a trois étapes dans le process d’arrêt d’une instance et de la base de données : La base de données est d abord fermée : Lors de cette étape. le serveur Oracle démonte et ferme la base de données puis l’instance. Le mode d arrêt immédiat entraîne l’arrêt immédiat des requêtes SQL en cours. Les fichiers de contrôle sont fermés à leur tour. le serveur Oracle écrit tous les changements des buffers caches dans les fichiers de données. SHUTDOWN [NORMAL| TRANSACTIONAL | IMMEDIATE | ABORT] Dr Mohamed Salah GOUIDER Page 31 29/06/2006 . les connexions à la base de données deviennent impossibles. Tous les buffers de redo log sont écrits dans les fichiers de redo log en ligne. immédiat et abandon. Une fois tous les utilisateurs déconnectés.3. Le mode normal est le mode par défaut.4. instance est finalement arrêtée : Les fichiers de traçage et d’alerte sont fermés. La SGA est désallouée de la mémoire et les process de tâche de fond sont terminés. Le serveur Oracle rollback annule les transactions actives. Modes d'arrêts Un DBA peut fermer une base de données dans l’un des quatre différents mode disponibles. le serveur Oracle attend que les utilisateurs connectés se déconnectent de la base de données. Une restauration de l’instance ne sera pas nécessaire. Les requêtes SQL sont terminées et les utilisateurs déconnectés. toutefois. Ces mêmes fichiers sont ensuite fermés. les clients ne peuvent perdre leur travail. les transactions non commitées ne font pas l’objet d’un rollback. 3. Le prochain démarrage de l’instance nécessitera une restauration de l’instance par SMON. La base de données devient indisponible aux utilisateurs mais les fichiers de contrôle restent ouverts.3. transactionnel. Le mode abandon (ABORT) est utilisé seulement lorsque les autres modes ne peuvent fonctionner. Ces modes sont : normal. En mode abandon. les utilisateurs sont déconnectés sans attente. Les clients sont déconnectés lorsque leurs transactions en cours se terminent. leur valeur et leur type. Caractéristiques des vues dynamiques de performance Le serveur Oracle maintient un jeu de tables virtuelles qui enregistre l’activité courante de la base de données. seul les vues lisant des données de la mémoire sont accessibles. Lorsque la base de données est en mode MOUNT.4. V$SPPARAMETER : Liste les informations sur les paramètres d’initialisation du serveur avec leur nom. Ces vues sont utilisées pour fournir des données relatives aux performances telles que des informations sur les fichiers de données et les structures de la mémoire.Systèmes de Gestion des Bases de Données : ORACLE 3. V$INSTANCE : Donne l’état de l’instance courante. V$VERSION : Liste le numéro de version et les composants du serveur Oracle. Descriptions des vues dynamiques de performance Les principales vues accessibles en mode NOMOUNT lisent des données de la mémoire et sont les suivantes : V$PARAMETER: Liste les informations sur les paramètres d’initialisation avec leur nom. V$PROCESS : Contient des informations sur les process actifs. Elles sont visibles pour les utilisateurs via les vues dynamiques de performances. V$SESSION : Donne les informations sur la session courante. Ces vues sont identifiées avec le préfixe V_$ mais le serveur Oracle créé un synonyme public avec le préfixe V$. V$OPTION : Liste les options installées avec le serveur Oracle. Dr Mohamed Salah GOUIDER Page 32 29/06/2006 . Ces tables sont appelées les tables de performances dynamiques. les vues lisant les données des fichiers de contrôle sont alors accessibles. leur valeur et leur type. Vue dynamique des performances 3.2.1. Les vues lisant les données des fichiers de contrôle sont accessibles seulement lorsque la base de données est montée. Les informations les plus à jours deviennent alors disponibles à travers ces vues. Les principales vues sont les suivantes : V$THREAD : Présente les informations sur les threads des fichiers de contrôle tel que les informations sur les groupes de redo log. leur nombre. La vue V$FIXED_TABLE montre les vues dynamiques de performance. Ces tables appartiennent au DBA et ne sont pas accessibles à la plupart des utilisateurs. Les vues sont également accessibles au DBA qui peut donner le droit d’accès à d’autres utilisateurs.4. Lorsqu’une instance est démarrée en mode NOMOUNT. leur nombre.4. Les tables sous-jacentes à ces vues sont constamment mises à jour lorsque la base de données est en cours d’utilisation. V$SGA : Donne des informations récapitulatives sur la SGA. 3. Systèmes de Gestion des Bases de Données : ORACLE V$CONTROLFILE : Fournit les noms des fichiers de contrôle. leur statut et d’autres détails. V$DATAFILE_HEADER : Donne des informations sur les en-têtes des fichiers de contrôle. V$DATABASE : Contient des informations sur la base de données tel que le nom ou la date de création. V$LOGFILE : Contient des informations sur les fichiers de redo log en ligne Dr Mohamed Salah GOUIDER Page 33 29/06/2006 . V$DATAFILE : Donne les informations sur les fichiers de données tel que leur nom. Pré requis nécessaires à la création Une base de données est créée et gérée par un DBA (Database Administrator). Une fois la base de données créée. L’emplacement des fichiers de contrôle doit être aussi planifié. le jeu de caractères spécifié ne peut plus être changé. il faut tenir compte de la taille des fichiers de données. Un compte privilégié d’un utilisateur défini les actions que cet utilisateur peut effectuer sur la base de données ou les objets de la base de données. Si le DBA connaît les conditions préalables à la création d'une base de données. des tables et des index. • Il doit y avoir suffisamment de mémoire pour démarrer une instance. 4. il faut également tenir compte du jeu de caractères que la base de données utilisera.5 MB. Une base de données initiale peut être créée lors de l’installation d’Oracle. Indépendamment du nombre de fichiers de données et du nombre d'instances qui accèdent à la base de données. une base de données ne peut être créée qu'une seule fois. Dr Mohamed Salah GOUIDER Page 34 29/06/2006 . des blocs.1. La création d’une base de données permet à un ensemble de fichiers du système d'exploitation de fonctionner en tant que base de base de données Oracle. Procédure de création d une base de Données La création de la base de données est la première étape dans l’organisation et la gestion d’un système de base de données. La taille minimale de la SGA des petites bases de données est de 6. Lors de la création d'une nouvelle base de données. les fichiers exécutables et les autres processus en arrière plan s'exécutent normalement. Le disque doit comporter suffisamment d'espace de stockage pour stocker les fichiers de contrôle. ou une nouvelle base de données peut être créée. les fichiers de données et les fichiers redo log online de la base de données.Systèmes de Gestion des Bases de Données : ORACLE 4. il pourra créer efficacement une base de données. Ce qui signifie qu’il doit y avoir suffisamment de mémoire pour que la zone mémoire global du système (System Global Area SGA). Pour créer une nouvelle base de données. • L’espace disque disponible sur la machine doit être suffisant pour recevoir la base de données planifiée. sauf si la base de données est recréée. • Pour créer une base de données. un DBA doit posséder un compte privilégié authentifié par le système d'exploitation ou par un fichier de mots de passe. Cette base de données peut être utilisée comme base de données initiale. 1. Un groupe de fichier redo log est constitué des copies identiques des fichiers redo log. le DBCA (interface graphique utilisateur qui interagit avec Oracle Universal Installer) est lancé par OUI (Oracle Dr Mohamed Salah GOUIDER Page 35 29/06/2006 . Si un fichier de contrôle ou un disque sur lequel est stocké un fichier de contrôle est corrompu. • Créer au moins deux fichiers de contrôle et les stocker sur des disques différents. Le processus LOGWR est un processus d’arrière plan qui écrit les entrées du cache redo log (redo log buffer) sur le disque. Ainsi si un disque est corrompu. le LGWR et l’instance de la base de données n’échoueront pas. tels que les tables et les index. • Les fichiers redo log online doivent être organisés en groupes multiplexés. Le multiplexage des groupes de fichiers redo log online permet au processus Log Writer (LGWR) de continuer d’écrire des entrées log des membres disponibles dans un groupe si un membre de ce groupe est indisponible ou corrompu.1. Gérer et sauvegarder les fichiers d une base de données Une base de données peut présenter une taille relativement importante et comporter un grand nombre d'utilisateurs. la base de données pourra toujours accéder à l’autre fichier de contrôle. • Les membres d’un groupe de redo log doivent également être stockés sur des disques différents.Systèmes de Gestion des Bases de Données : ORACLE 4. différentes doivent être séparés.1. un DBA doit planifier correctement la structure physique d'une base de données de telle façon que l’échec d’un disque ne provoque pas l’arrêt de l’instance de la base de données. Créer une base de données Il est possible de créer une base de données à la main avec un script SQL qui utilise la commande CREATE DATABASE ou tout simplement avec Oracle Database Configuration Assistant. 4.2. Attention : Pendant l’installation d’Oracle Server. telles que les données d’une application et les données temporaires. Aussi. • Les fichiers de données dont les données participent à la contention sur le disque doivent être séparé sur différents disques. • Les fichiers de données qui contiennent des données avec des caractéristiques d'administration. Cette séparation garantit au DBA un bon équilibrage des charges d’entrée/sortie. • Les fichiers de données contenant des objets de la base de données avec des durées de vie différentes. doivent être séparés. les objets avec des besoins d’entrées/sorties concurrents. Par exemple. doivent être séparés afin de minimiser la fragmentation. Systèmes de Gestion des Bases de Données : ORACLE Universal Installer) et permet de réer une base de données par défaut. les fichiers de contrôle de la base de données et la taille des blocs de données de la base de données. Le fichier de mots de passe contient les mots de passe pour authentifier des utilisateurs privilégiés autorisés à effectuer des opérations telles que le démarrage et l’arrêt de la base de données. sont également créés. il faut spécifier la taille des composants de la zone mémoire globale du système (SGA). tel que le service OraHomeTNSListener81 en environnement Windows NT. le jeu de caractères de la base de données et les autres paramètres nécessaires au bon fonctionnement de la base de données. leurs tailles et le mode de fonctionnement de ces fichiers. Le nom de l’instance sert à identifier les instances associées à la base de données. Si la structure de la base de données initiale ne remplie pas les besoins. Lorsqu'une instance est démarrée. Ce choix est très important car une fois configuré. le jeu de caractères ne peut être changé pour cette base de données. Ces paramètres servent à spécifier le nombre maximal de fichier. les services d’Oracle. Leur définition détermine l’instance par défaut. • Définir les variables du système d'exploitation. Il est possible pour l’utilisateur de ne pas lancer cette option. Le service OraHomeTNSListener81 identifie et accepte les demandes de connexion provenant des applications cliente. • Créer un fichier de mots de passe. Les variables du système d'exploitation sont définies dans la base de registre. • Démarrer une instance sans monter la base de données. Dr Mohamed Salah GOUIDER Page 36 29/06/2006 . Les services d’Oracle préparent une base de données en vue de son utilisation. Quand une base de données est créée. Ce fichier est nécessaire pour créer et démarrer une instance. la SGA est allouée à l’instance indiquée et les processus d’arrière plan sont démarrés en vue de la création de la base de données. Pour créer un fichier de paramètres. le nom de la base de données. • Créer les services Oracle. • Indiquer le jeu de caractères que la base de données doit utiliser. • Créer un fichier de paramètres. une nouvelle base de données peut être créée. Voici les étapes dans la création manuelle d'une base de données : • Décider d’un nom unique pour l’instance et pour la base de données. La création d’une base de données implique la création d’un fichier de mots de passe. • Créer la base de données à l’aide de la commande SQL CREATE DATABASE et en définissant les paramètres facultatifs de la commande. et le nom de la base de données sert à identifier une base de données spécifique. • La dernière variable est LD_LIBRARY_PATH.2.Systèmes de Gestion des Bases de Données : ORACLE • Exécuter les scripts qui génèrent les vues du dictionnaire de données. • Si un jeu de caractères. Les paramètres de la plupart des produits Oracle sont stockés dans la sous-clé HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE de la base de registre Windows NT. à laquelle un utilisateur se connecte si la chaîne de connexion n’est pas spécifiée. Environnement du système d exploitation Oracle utilise des paramètres de configuration pour localiser des fichiers et spécifier les informations d’exécution de tous les produits Oracle. • Le SID (identificateur du système Oracle) de l’instance. Par exemple. elle contient les chemins pour les dossiers du système d’exploitation et des fichiers de la librairie Oracle. si le nom par défaut de l’instance est ORCL. Dr Mohamed Salah GOUIDER Page 37 29/06/2006 . La valeur de la variable ORACLE_SID doit comporter un maximum de quatre caractères sous Windows NT et huit caractères sous UNIX. la variable PATH doit stocker le chemin d'un fichier spécifique. le jeu ne sera pas reconnu par la base de données. La base de registre Windows NT est une base de données hiérarchique et centralisée qui stocke les informations de configuration du matérielle et logicielle d'une machine locale. Ce chemin est indiqué dans la variable ORACLE_HOME. 4. il faut préciser dans la base de registres le chemin d'accès du répertoire racine où Oracle a été installé. • Pour qu’une instance d’Oracle fonctionne proprement. Les cinq variables de la base de registre sont : • Pour qu’une instance Oracle fonctionne proprement. le nom d’un répertoire contenant les informations de conversion pour le jeu de caractère choisi est stocké dans la variable ORA_NLS33. Par exemple : ORACLE_HOME/lib. il est essentiel de stocker les informations de configuration adéquates dans la base de registre. Ces informations de configuration sont stockées dans la base de registre du système d'exploitation. Pour qu’une instance Oracle fonctionne proprement dans un environnement Windows NT. autre que le jeu de caractères par défaut US7ASCII. est utilisé pour la création d'une base de données. Le nom de l'instance doit être unique pour chaque instance qui s'exécute sur une même machine. est stocké dans la variable de la base de registre ORACLE_SID. Un dictionnaire de données est un ensemble de tables qui fournissent des informations sur la base de données à laquelle elles sont associées. Si la variable ORA_NLS33 n’est pas définie et qu’une base de données est démarrée avec un jeu de caractères autres que celui par défaut. la variable ORACLE_SID prendra la valeur ORCL. 3. L’assistant de configuration de base de données est un utilitaire qui se lance sous linux avec la commande dbca et qui permet : • Créer une base de données : Option qui permet de créer une nouvelle base de données ou un template. les données non validées risquent d'être perdues.2. Il existe deux types de templates de base de données. Soit en utilisant l’assistant de configuration de base de données. soit à partir d’un template prédéfini. Ceux qui contiennent seulement la structure physique de la base de données (options. 4. L'exécution de telles opérations par des utilisateurs de base de données non autorisés peut entraîner la perte de données. datafiles…). Oracle OLAP Services… • Supprimer une base de données : Option qui permet de supprimer une base de données.1. • Configurer les options de base de données : Cette option permet d’ajouter des options à la base de données qui n’ont pas été configurées initialement. interMedia. Soit à partir d’un template déjà existant. Création de fichiers de mots de passe Les opérations telles que l’arrêt et le démarrage de la base de données doivent être effectuées par des utilisateurs autorisés à administrer une base de données. si un utilisateur arrête une base de données en mode Abort.1. Dr Mohamed Salah GOUIDER Page 38 29/06/2006 . Par exemple. Le problème des utilisateurs non autorisés à effectuer des opérations critiques spécifiques peut se résoudre en utilisant un fichier de mots de passe permettant d'authentifier les utilisateurs qui administrent la base de données.exe permet d'exécuter l’utilitaire ORAPWD. ou les templates contenant la structure ainsi que les données contenues dans la base. Créer une base de données 4.Systèmes de Gestion des Bases de Données : ORACLE 4.3. Par exemple : JVM. soit en utilisant le commande CREATE DATABASE. soit à partir d’une base de données. Assistant de configuration de base de données Il existe deux méthodes pour créer une base de données. • Gérer les templates : Il existe trois moyens de créer un template. L'exécutable ORAPWD. qui permet de choisir avec fichiers de données ou sans fichiers de données. tablespaces. [MAXDATAFILES integer] Spécifie le nombre maximum de fichiers de données qui peuvent être créés pour la base de données. Les performances de ce type d’environnement sont définit en terme de temps de réponse. • Data Warehousing : Cet environnement est utilisé avec des base de données qui sont souvent interrogées mais peut modifiées. 4. Les options de la commande CREATE DATABASE Le DBA peut créer une base de données en utilisant la commande CREATE DATABASE.Systèmes de Gestion des Bases de Données : ORACLE Lors de la création d’une base de données avec l’assistant de configuration. CREATE DATABASE <database> [MAXLOGFILES integer] Spécifie le nombre maximum de groupes de fichier log qui peuvent être créé pour la base de données.3. écriture. [MAXINSTANCES integer] Dr Mohamed Salah GOUIDER Page 39 29/06/2006 . Les performances pour ce type d’environnement sont définit en terme de disponibilité des données. • Mixed : Environnement supportant à la fois OLTP et Data Warehousing. La connaissance des fonctions des options de la commande CREATE DATABASE permettra au DBA d'identifier celles qu'il doit spécifier pour créer une base de données adaptée. suppression) par jour.2. La valeur de cette option affecte la taille du fichier de contrôle. La valeur de cette option affecte la taille du fichier de contrôle. il vous sera demandé de choisir parmi l’un des quatre types de base de données suivant : • Installation typique ou personnalisée : L’installation typique est pour une base de données avec un faible trafic. La valeur de cette option affecte la taille du fichier de contrôle. La valeur de cette option affecte la taille du fichier de contrôle. Mode par défaut pour l’installation d’une base de données. [MAXLOGMEMBERS integer] Spécifie le nombre maximum de fichiers redo log membres d’un groupe de fichiers redo log. [MAXLOGHISTORY integer] Spécifie le nombre maximum de redo log archivés qui peuvent être utilisés pour la récupération automatique physique du serveur Oracle Parallel. Le mode personnalisé permet de choisir parmi l’un des environnements suivant : • OLTP (OnLine Transaction Processing) : Cet environnement est utilisé pour les grandes bases de données devant gérer des milliers de transactions (lecture. La valeur de cette option affecte la taille du fichier de contrôle. Si cette option n’est pas précisée. Dans ces bases de données peut être stocké un très grand nombre de données qui peuvent être récupérées et analysées. L’option NOARCHIVELOG spécifie que les fichiers redo log peuvent être réutilisés sans archiver leur contenu.3. [NATIONAL CHARACTER SET charset] Spécifie le jeu de caractères national utilise pour stocker les données dans des colonnes de type NCHAR. [LOGFILE [GROUP integer] filespec [. Le script utilisé pour créer une base de Dr Mohamed Salah GOUIDER Page 40 29/06/2006 . [CHARACTER SET charset] Spécifie le jeu de caractères utilisé par la base de données pour stocker les données. filespec]…] Spécifie le fichier de données à créer pour le tablespace SYSTEM. [GROUP integer] filespec] ] Spécifie les fichiers log utilises pour la base de données et les groupes auxquels ces fichiers appartiennent.Systèmes de Gestion des Bases de Données : ORACLE Spécifie le nombre maximum d’instances pouvant monter et ouvrir la base de données simultanément. [SET TIME_ZONE] Fuseau horaire à utiliser pour la base de données. [DATAFILE filespec [. [Defaut Temporary Tablespace] Création d’un tablespace par défaut. [CONTROLFILE REUSE] Spécifie que les fichiers de contrôle identifiés dans le fichier de paramètre peuvent être écrasés si ils existent déjà. Créer une base de données en mode commande La principale responsabilité d'un DBA est de créer et de gérer une ou plusieurs bases de données. NCLOB ou NVARCHAR2. 4. Cette option est reliée à la clause autoextend_clause par la relation : filespec :== ‘filename [SIZE n [K|M] ] [REUSE] [autoextend_clause] autoextend_clause :== AUTOEXTEND {OFF|ON [NEXT integer [K|M] ] [MAXSIZE integer [K|M] } active ou désactive l’extension automatique d’un fichier de données. [ARCHIVELOG | NOARCHIVELOG] Spécifie que les redo log doivent être archivés avant d’être réutilisés.3. le jeu de caractère par défaut US7ASCII sera utilisé. La valeur de cette option affecte la taille du fichier de contrôle. chaque utilisateur ne spécifiant pas un tablespace par défaut sera automatiquement assigné au tablespace par défaut. • Il n’y a pas assez d’espace disque pour créer les fichiers spécifiés dans la commande CREATE DATABASE. Dans tous les cas d’échec. Les conditions d'erreur lors de la création d'une base de données Il existe plusieurs situations lors de la création d’une base de données avec la commande CREATE DATABASE qui peuvent provoquer un échec. La connaissance de ces situations permet au DBA d'identifier les erreurs faites lors de la création d'une base de données. il faut arrêter l’instance. • Des erreurs de syntaxe dans le script SQL • Les fichiers que la commande CREATE DATABASE doit créer existent déjà.3. redémarrer l’instance en mode NOMOUNT et créer à nouveau la base de données. telles que des permissions de fichier et de répertoire non valides. Le script est ensuite exécuté en utilisant SQL*Plus (par exemple).4. Cette erreur apparaît lorsque l’option REUSE n’a pas été spécifiée ou lorsque la taille des fichiers ne correspond pas. • Une erreur se produit au niveau du système.Systèmes de Gestion des Bases de Données : ORACLE données doit être écrit dans un fichier texte. Il faut ensuite modifier la commande. Dr Mohamed Salah GOUIDER Page 41 29/06/2006 . Exemple de script permettant de créer une base de données : 4. Il contient le dictionnaire de données. Les tables du dictionnaire de données sont créées durant la création de la base de données. Enfin. SYS et SYSTEM ont respectivement les mots de passe par défaut « change_on_install » et « manager ». Les deux utilisateurs par défaut SYS et SYSTEM sont créés à la création de la base de données. Les fichiers de contrôle contiennent le nom de la base de données et le chemin d'accès de tous les fichiers de données et fichiers redo log. les fichiers redo log sont vides . ils enregistrent ensuite tous les modifications apportées aux données de la base de données.3. Les vues du dictionnaire de données sont des vues sur les tables du dictionnaire de données. Dr Mohamed Salah GOUIDER Page 42 29/06/2006 . Lors de la création de la base de données.Systèmes de Gestion des Bases de Données : ORACLE 4. sur les utilisateurs de la base de données et sur l’allocation de l'espace. La connaissance des éléments qui constituent une base de données permet au DBA d'identifier et de gérer les objets des bases de données. lorsque la base de données est créée. le tablespace SYSTEM est créé.5. Les fichiers de contrôle et les fichiers redo log sont créés à la création de la base de données. Les vues du dictionnaire de données ne sont pas créées automatiquement lors de la création de la base de données. le segment de rollback SYSTEM est créé dans le tablespace SYSTEM. segments et tables dans une base de données. Lors de la création de la base de données. Les tables du dictionnaire de données contiennent les informations sur la structure de la base de données. Le tablespace SYSTEM est un ensemble de fichiers de données spécifiés dans la commande CREATE DATABASE. Les utilisateurs SYS et SYSTEM possèdent tous les privilèges système sur la base de données. Le contenu d'une base de données après sa création Oracle crée automatiquement plusieurs fichiers. Le segment de rollback SYSTEM est utilisé pour enregistrer les modifications apportées dans le tablespace SYSTEM. Structure du dictionnaire de données 5. Un rôle est constitué d’un ensemble de privilèges. • Les noms et les définitions des objets Tels que les tables. les procédures et les packages mais aussi les informations sur les espaces alloués et l’espace actuellement utilisé par les objets. les informations sur les tablespaces. Le dictionnaire de données est automatiquement mis à jour par Oracle lorsque des commandes de langage de définition des données ou des commandes de manipulation des données. • Les privilèges définissent les opérations qu’un utilisateur peut effectuer dans la base de données. • Les noms des utilisateurs valides de la base de données et les privilèges et les rôles attribués à chaque utilisateur de la base de données. les séquences. les administrateurs de bases de données et le serveur Oracle utilisent le dictionnaire de données comme une source centrale d’information associée à une base de données. Utilisation et contenu du dictionnaire de données 5. • L'audit sur une base de données. d'un objet ou d'un privilège. débouchant sur l'extension d'une table. sont exécutées. • Les contraintes d’intégrité définies pour les tables d'une base de données. L’audit correspond à l’enregistrement d’opérations spécifiques en fonction d'un utilisateur.1. les développeurs d'applications. • La structure physique de la base de données Notamment les informations sur les fichiers de contrôle. les clusters.1. les triggers (ou déclencheurs). les extents et les segments d'une base de données. les fonctions.1. Le dictionnaire de données stocke les informations sur : • La structure logique de la base de données Par exemple. les vues. Dr Mohamed Salah GOUIDER Page 43 29/06/2006 . les blocs de données. les fichiers redo log et les fichiers de données. Par exemple. Le dictionnaire de données est un ensemble de tables et de vues qui est utilisé comme une référence fournissant de l’information à jour concernant la base de données. les index. le dictionnaire de données fournit les informations sur les utilisateurs qui ont accédé à des objets ou les ont mis à jour.Systèmes de Gestion des Bases de Données : ORACLE 5. Présentation du dictionnaire de données Les utilisateurs des bases de données. USER_<vues> affiche les informations sur les objets appartenant à un utilisateur spécifique. stocké dans ORACLE_HOME\rdbms\admin. Un schéma est un domaine logique appartenant à un utilisateur où les objets créés par cet utilisateur peuvent être stockés. Elles sont crées par le script catalog. Il faut tenir compte que l’exécution de ce script est relativement longue. Les vues du dictionnaire de données sont des vues sur les tables de base. Ces informations sont rarement accédées directement par les utilisateurs car ces informations sont normalisées et stockées sous une forme encodée. Les vues du dictionnaire de données simplifient et résument les informations contenues dans les tables de base. USER_<vues>se réfère au schéma d’un utilisateur de la base de données.2. la vue USER_TABLES contient les informations sur les tables appartenant à un utilisateur. pour mettre à jour les tables de base directement. Ces tables sont créées avec le script sql. Une fois la base de donnée ouverte il suffit seulement d’exécuter ce script. Ces vues permettent au DBA de gérer et tuner la base de données.sql. Les informations stockées dans les tables de base sont lues et écrites par le serveur Oracle. Dr Mohamed Salah GOUIDER Page 44 29/06/2006 . Par exemple. à l'exception de la table de trace d'audit lorsque la fonctionnalité d'audit est utilisée.1. Création et catégories des vues du dictionnaire de données La création des vues du dictionnaire de données se fait à partir du script catalog.sql.bsq. telles que INSERT. USER_<vues> affiche les informations sur les privilèges et les rôles attribués par un utilisateur sur des objets créés par cet utilisateur. UPDATE et DELETE. 5. Ce script est stocké dans le répertoire orant\rdbms\admin. Les utilisateurs ou administrateurs de bases de données ne doivent pas utiliser de commandes DML.Systèmes de Gestion des Bases de Données : ORACLE Le dictionnaire de données possède deux composants : • les tables de base • les vues du dictionnaire de données Les tables de base sont les tables réelles d'Oracle qui stockent les informations sur une base de données. Il existe trois principales catégories du dictionnaire de données : • USER_<vues> : Vues pouvant être accédées par les utilisateurs de la base de données. Les informations fournies par USER_<vues> font partie d'un sous-ensemble des informations fournies par ALL_<vues>. Les vues du dictionnaire stockent également ces informations sous une forme que les utilisateurs de la base de données peuvent lire facilement. • DBA_<vues>: Vues fournissant des informations sur tous les objets de la base de données.Systèmes de Gestion des Bases de Données : ORACLE • ALL_<vues>: Vues affichant les informations sur des objets auxquels l’utilisateur peut accéder à travers l’obtention publique ou explicite de rôles et de privilèges. 5. Vues dictionary dict_columns dba_tables dba_objects dba_lobs dba_tab_columns dba_constraints Description Vues générales Informations sur les objets. Ce privilège permet aux utilisateurs d’interroger toutes les tables de la base de données. les contraintes.1. Le contenu de ALL_<vues> est un sous-ensemble de DBA_<vues>. les gros objets et les colonnes Informations sur les privilèges et les rôles des utilisateurs dba_users dba_sys_privs dba_roles Dr Mohamed Salah GOUIDER Page 45 29/06/2006 . Ces vues sont généralement interrogées par les DBA ou les utilisateurs qui possèdent le privilège système SELECT ANY TABLE. Informations contenues dans le dictionnaire de données Le dictionnaire de données possède des vues variées qui fournissent différents types d’informations. tels que les tables.3. Pour afficher les noms des segments de rollback : SELECT segment_name FROM dba_rollback_segs. SEGMENT_NAME ------------------------------ Dr Mohamed Salah GOUIDER Page 46 29/06/2006 . SELECT * FROM dictionary WHERE table_name LIKE UPPER( %ROLLBACK% ). La vue DICTIONARY possède deux colonnes : TABLE_NAME et COMMENT. il faut interroger la vue ALL_CATALOG. Exemple : L’objectif est de récupérer les noms des segments de rollback de la base de données en interrogeant la vue DICTIONARY. TABLE_NAME -----------------------------DBA_ROLLBACK_SEGS 1 row selected. pour récupérer les informations concernant les tables accessibles à un utilisateur. Ces colonnes indiquent la vue qui devra ensuite être interrogée pour extraire des informations. COMMENTS ------------------------------------Description of rollback segments Cette requête affiche le nom des vues qui contiennent des informations sur les segments de rollback. Par exemple.Systèmes de Gestion des Bases de Données : ORACLE dba_extents dba_free_space dba_segments dba_rollback_segs dba_data_files dba_tablespaces dba_audit_trail dba_audit_objects dba_audit_obj_opts Allocation d’espace pour les objets de la base de données Structures générales de la base de données Informations d’audit La vue DICTIONARY du dictionnaire de données fournit une vue d’ensemble de toutes les données du dictionnaire de données. L’interrogation de la vue DICTIONARY évite d'avoir à se souvenir de toutes les vues et des informations fournis par chacune de ces vues. Systèmes de Gestion des Bases de Données : ORACLE SYSTEM RB_TEMP RB1 RB2 RB3 ... Pour afficher la liste des colonnes d’une vue, il faut utiliser le mot clé : DESCRIBE V$INSTANCE 5.2. Scripts du dictionnaire de données 5.2.1. Création de fonctions PL/SQL Pour qu’un serveur Oracle fonctionne efficacement et de façon optimale, la base de données doit supporter les fonctionnalités PL/SQL. Le script catproc.sql est utilisé pour ajouter des fonctionnalités PL/SQL à une base de données. Ce script lance tous les scripts utilisés ou nécessaires avec PL/SQL. Il créé également des packages PL/SQL qui étendent les fonctionnalités du SGBDR et des vues supplémentaires de gestion des files d'attente de messages et de restauration des tablespaces. Catproc.sql est stocké sous le répertoire ora92\rdbms\admin. Pour l’exécuter, il suffit d’ouvrir une session SQL*Plus et de lancer l’exécution du script avec la commande : @<chemin complet du script>. 5.2.2. Scripts administratifs Pour gérer une base, il peut être nécessaire au DBA de créer des structures supplémentaires, telles que des tables, des vues et des packages. Les scripts administratifs sont séparés en quatre catégories de fichiers se trouvant dans le répertoire : • Les scripts utl*.sql : Ils créent des vues et des tables additionnelles pour les utilitaires de la base de données. Par exemple, le script utlsampl.sql crée et remplit les tables d’exemple EMP, DEPT, SALGRADE et BONUS de l’utilisateur SCOTT. • Les scripts cat*.sql : Ils créent des vues du dictionnaire de données et des tables de base du dictionnaire de données. Par exemple, catalog.sql crée des vues du dictionnaire pour une base de données, catman.sql crée des tables de base pour la récupération et des vues pour l’utilitaire Recovery Manager. • Les scripts dbms*.sql : Dr Mohamed Salah GOUIDER Page 47 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE Ils créent des spécifications de package de base de données. Par exemple, le script dbmspool.sql crée la spécification d’un package qui permet d’afficher la taille des objets présent dans la shared pool. • Les scripts prvt*.plb : Ils créent le corps de package. Dr Mohamed Salah GOUIDER Page 48 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE 6. Gestion des fichiers de contrôle et de redo log 6.1. Fichier de contrôle Le fichier de contrôle file est un petit fichier binaire, nécessaire pour démarrer et maintenir une base de données. Le fichier de contrôle doit être disponible chaque fois que la base de données est montée ou ouverte. Lorsqu'une instance monte la base de données, elle lit le fichier de contrôle pour localiser les fichiers de données et les fichiers redo log online. Une des fonctions du fichier de contrôle est de fournir les informations les plus récentes sur la base de données à l’instance Oracle mise à jour en permanence pendant l'utilisation de la base de données. Le fichier de contrôle fournit également des informations sur la cohérence de la base de données. Ces informations sont utilisées lors de la restauration de la base de données. Si le fichier de contrôle utilisé par la base de données devient indisponible, la base de données ne peut pas fonctionner proprement. Le fichier de contrôle peut devenir indisponible pour un grand nombre de raisons telles que la défaillance du disque ou la corruption du fichier. Certains mots-clés utilisés pendant la création d’une base de données, affectent la taille du fichier de contrôle. Ceci est surtout visible quand les paramètres ont de très grandes valeurs. Les paramètres suivants affectent la taille du fichier de contrôle : • • • • • MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES 6.1.1. Contenu des fichiers de contrôle Le fichier de contrôle stocke des informations permettant à la base de données de fonctionner correctement. Le fichier de contrôle stocke : • Le nom et l’identifiant de la base de données • Les noms et les emplacements des fichiers de données et des fichiers redo log en ligne. Ces informations permettent au serveur Oracle de localiser les fichiers de la base de données sur le disque. • Le nom des tablespaces Dr Mohamed Salah GOUIDER Page 49 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE • La date et l'heure de création de la base de données. • Le numéro de séquence de log actuel. Cette information permet de synchroniser tous les fichiers appartenant à la base de données. • Les informations sur les points de synchronisation. Cette information est utilisée par le serveur Oracle lors de la restauration de l’instance. • L’historique des fichiers log • Les informations de sauvegarde de l’utilitaire Recovery Manager. • Le début et à la fin des segments de undo. Le fichier de contrôle se divise en deux parties : • Réutilisable, qui stocke les informations du Recovery Manager, comme les fichiers de sauvegarde de redo log et les fichiers de sauvegarde de données. Ces fichiers ne sont réutilisables que par le Recovery Manager. • Non réutilisable. 6.1.2. Multiplexage des fichiers de contrôle Dans le but de prévenir une erreur dans un fichier de contrôle, il est fortement recommandé de multiplexer les fichiers de contrôles et de les stocker séparément sur des disques différents. Si un fichier de contrôle est perdu, une copie du fichier de contrôle peut être utilisé pour redémarrer l’instance. On peut multiplexer jusqu’à 8 fichiers de contrôles. 6.1.3. Récupérer les informations des fichiers de contrôle Pour récupérer l’emplacement et les noms des fichiers de contrôles, il est nécessaire d’interroger la vue dynamique V$CONTROFILE. SELECT name FROM V$CONTROLFILE ; NAME ------------------------------D:\ORACLE\ORADATA\IASDB\CONTROL01.CTL D:\ORACLE\ORADATA\IASDB\CONTROL02.CTL D:\ORACLE\ORADATA\IASDB\CONTROL03.CTL 3 rows selected. D’autres vues peuvent être utilisées comme V$PARAMETER qui contient toutes les informations sur tous les paramètres, V$CONTROLFILE_RECORD_SECTION qui contient les informations sur les Dr Mohamed Salah GOUIDER Page 50 29/06/2006 Systèmes de Gestion des Bases de Données : ORACLE sections d’enregistrement des fichiers de contrôles. Les fichiers de redo log 6. 6. Ce travail est effectué pas le processus d'arrière plan LGWR. Le numéro de séquence log est affecté chaque fois que le serveur Oracle commence à écrire dans un groupe de fichiers redo log online. Dr Mohamed Salah GOUIDER Page 51 29/06/2006 . Une telle situation peut se produire après l'échec d'une instance. L’organisation des fichiers de redo log s’effectue en groupe (au minimum 2) contenant un ou plusieurs fichiers de redo log.2. Ce numéro est utilisé lors de la récupération de la base de données. Ces numéros sont utilisés pour identifier de façon unique chaque membre redo log online. Le numéro de séquence log courant est stocké dans le fichier de contrôle ainsi que dans l'entête de tous les fichiers de données. Structure des fichiers de redo log La charge de maintenir et gérer plusieurs fichiers de redo log appartient au DBA. Les mêmes informations sur les modifications apportées aux données sont enregistrées dans tous fichiers redo log online d'un groupe de redo log online.2. Utiliser les fichiers de redo log Les fichiers de redo log permettent d’enregistrer tous les changements effectués par des transactions sur les données et fournissent un mécanisme de récupération des données en cas de dysfonctionnement du système ou d’un disque.2. pour éviter qu’un seul dysfonctionnement d’un fichier fasse perdre des informations à la base de données.1.2. l’état et l’emplacement des fichiers de contrôles. Donc tous les fichiers redo log d'un groupe redo log en ligne possèdent exactement les mêmes informations. Les membres redo log online ont tous la même taille. Chaque fichier de redo log appartenant à un groupe est appelé un membre. Tous les membres redo log online présentent tous des numéros de séquence log identiques. Les fichiers redo log stockent toutes les modifications apportées aux données du buffer cache. et la commande SHOW PARAMETERS CONTROL_FILES qui liste le nom. Un groupe de redo log en ligne sert également à restaurer des données validées qui n'ont pas été écrites dans les fichiers de données. 6. Les fichiers redo log en ligne sont créés durant la création de la base de données. 6.3.2. • LOG_FILES spécifie le nombre maximal actuel de groupes de fichiers redo log online pour la durée de vie de l'instance courante. Le numéro initial et la taille des fichiers redo log en ligne et des groupes sont déterminés pas des paramètres d'initialisation : • MAXLOGFILES spécifie le nombre maximal de groupes de fichiers redo log online. les données contenues dans le redo buffer sont écrites grâce au process LGWR dans le fichier de redo log online.3. Paramètres des fichiers de redo log Les performances d'une base de données sont affectées par le nombre et la taille des fichiers et des groupes redo log online. LGWR déclenche le processus d’écriture lors d’un des évènements suivants : • Une transaction est comité. les entrées du redo log buffer sont écrites dans un des groupes de redo log online par le processus d'arrière plan LGWR. Dans certains cas. la valeur de LOG_FILES est plus petite ou égale au nombre total de membres redo log en ligne (MAXLOGMEMBERS * MAXLOGFILES). Gérer les groupes de redo 6. • Quand le buffer de redo log est plein au tiers. Fonctionnement des fichiers de redo log Basculement de fichiers log (Log Switches) : Toutes les modifications apportées à la base de données sont stockées séquentiellement dans le buffer redo log avant le remplissage des groupes de fichiers redo log online. Ce groupe est appelé le groupe courant de redo log online.1. Le serveur Oracle enregistre séquentiellement tous les changements fait sur la base de données dans le buffer de redo log. Par défaut. Le serveur Oracle écrit ensuite le contenu du redo log buffer dans les groupes de redo log online. Le redo log buffer est utilisé de façon circulaire.3. La limite de MAXLOGFILES est de 255. Ensuite. Dr Mohamed Salah GOUIDER Page 52 29/06/2006 . • Quand le buffer de redo log contient plus de 1Mo d’enregistrements changés. • MAXLOGMEMBERS détermine le nombre maximal de membres redo log online pour chaque groupe de redo log online. Le nombre total de membres redo log online est un multiple du nombre de fichiers redo log.Systèmes de Gestion des Bases de Données : ORACLE 6. • Avant que le process DBWn écrivent les blocs modifiés du database buffer cache dans les fichiers de données. Systèmes de Gestion des Bases de Données : ORACLE Le LGWR écrit séquentiellement dans les fichiers redo log online. L'événement basculement de fichier log amorce un événement point de Dr Mohamed Salah GOUIDER Page 53 29/06/2006 . L'événement durant lequel LGWR arrête d'écrire dans un groupe et commence à écrire dans un autre. est appelé basculement de fichier log ("log switch"). Il commence à écrire dans le groupe suivant une fois que le groupe courant est plein. Lorsque le dernier fichier redo log online disponible est plein. le LGWR revient au premier groupe et écrase son contenu avec les nouvelles entrées. Les points de synchronisation peuvent concerner tous les fichiers de données de la base de données ou seulement certains fichiers de données spécifiques. Le nombre de buffers qui sont écrit par le process DBWn est déterminé par le paramètre FAST_START_MTTR_TARGET. le processus d'arrièreplan CKPT met à jour les entêtes de tous les fichiers de données et fichiers de contrôle. Ces situations provoquent les événements qui permettent au serveur Oracle de conserver les données les plus récentes dans les fichiers de données. qui entraîne l'écriture des buffers modifiés ("dirty blocks") du buffer cache dans les fichiers de données. Ce numéro identifie l'ensemble des entrées redo log. Un point de synchronisation se produit dans plusieurs situations : • durant un basculement de fichier log. Points de synchronisation (Checkpoints) : L'événement d’arrière plan du serveur Oracle qui met à jour les fichiers de données est le point de synchronisation. le serveur Oracle assigne un numéro appelé le numéro de séquence log. tous les buffers modifiés ("dirty blocks") sont écrits dans les fichiers de données par le processus DBWR. Lors d'un point de synchronisation. transactional ou immediate Dr Mohamed Salah GOUIDER Page 54 29/06/2006 . Un basculement de fichier log apparaît lorsque : • le groupe courant de fichiers redo log online est plein • l'administrateur force le basculement de fichier log.Systèmes de Gestion des Bases de Données : ORACLE synchronisation ("checkpoint"). Si le point de synchronisation s'est achevé correctement. Chaque fois qu'un basculement de fichier log se produit et que le LGWR commence l'écriture dans un nouveau groupe de fichiers redo log online. • Lorsqu'une instance s'arrête en mode normal. Oracle offre une interface graphique. Forcer le basculement de fichiers log et un point de synchronisation Log switch : Comme vu dans le point précédent. et la base de données doit ajuster les autres paramètres pour arriver à ce résultat. Pourtant en cas de nécessité le DBA peut décider de forcer l’exécution d’un log switch ou d’un checkpoint.Systèmes de Gestion des Bases de Données : ORACLE • Selon la configuration des paramètres d'initialisation LOG_CHECKPOINT_INTERVAL et LOG_CHECKPOINT_TIMEOUT • lorsqu'il est imposé par l'administrateur • lorsqu'un tablespace devient offline ou en lecture seule Ces situations entraînent l'événement checkpoint. Il est possible de forcer un checkpoint en utilisant le paramètre FAST_START_MTTR_TARGET.3. La syntaxe suivante permet de forcer un point de synchronisation: ALTER SYSTEM CHECKPOINT.log si le paramètre LOG_CHECKPOINTS_TO_ALERT est initialisé à TRUE. Sa valeur par défaut est à FALSE. Par exemple FAST_START_MTTR_TARGET = 600 signifie que la restauration d’une instance après un crash ne doit pas prendre plus de 600 secondes. Un log switch peut être forcé avec la commande SQL suivante : ALTER SYSTEM SWITCH LOGFILE . 6. Les informations à propos de chaque checkpoint sont enregistrées dans le fichier alert<SID>. Outre la commande SQL. Un basculement de fichier log peut être forcé même si aucune sauvegarde n'est prévue dans l'immédiat. Oracle Backup Manager qui permet de forcer un point de synchronisation. Outre la commande SQL.2. l'administrateur doit forcer un point de synchronisation avant de procéder à une sauvegarde. Point de synchronisation : L'administrateur procède souvent à des sauvegardes permanentes (dite "à chaud") de tablespaces. Pour s'assurer que les fichiers de données contiennent les données les plus récentes. Dr Mohamed Salah GOUIDER Page 55 29/06/2006 . Oracle offre une interface graphique appelée Oracle Backup Manager permettant d'imposer un basculement de fichier log. Ainsi les fichiers de données dans la base de données sont mis à jour à intervalles réguliers. le basculement de fichiers log et les checkpoints sont fait automatiquement. En effet. Il existe deux méthodes pour ajouter un groupe redo log en ligne : avec une commande SQL ou avec l'outil Oracle Storage Manager. Ajout des membres redo log online Des membres redo log en ligne peuvent être ajoutés à un groupe afin d'éviter des défaillances isolées.ora') SIZE 1000K. Donc. Dans ce cas.[GROUP integer] 'filename ' [SIZE n[K|M]] [REUSE] ]..Systèmes de Gestion des Bases de Données : ORACLE 6.3. Database altered. Cette commande crée un nouveau groupe de fichiers redo log portant le numéro 3. 6.. Oracle lui génère automatiquement une valeur.. Ce groupe est constitué d'un membre redo log nommé logorcl3.3. le DBWR attend et le système ralentit. l'archivage peut prendre beaucoup de temps. Pour éviter les attentes et les ralentissements. Exemple : ALTER DATABASE ADD LOGFILE GROUP 3 ('c:\orant\database\logorcl3. Si le processus LGWR doit attendre.3. Des groupes de fichiers redo log en ligne peuvent être créés à l'aide de la commande ALTER DATABASE : ALTER DATABASE [database] ADD LOGFILE [GROUP integer] 'filename' [SIZE n[K|M]] [REUSE] [. un fichier redo log online peut ne pas être disponible pour les écritures effectuées par le buffer redo log.4. le processus LGWR est contraint d'attendre. l'ajout de membres redo log permet de placer les Dr Mohamed Salah GOUIDER Page 56 29/06/2006 .ora d'une taille de 1000 Ko. Si ce paramètre est omis. La valeur du paramètre GROUP peut être choisie pour chaque groupe de fichier redo log. l'addition de groupes redo log en ligne peut être nécessaire. Ajout de groupe de fichiers redo log online Si la base de données est en mode ARCHIVELOG et que le fichier redo log online est gros. il faut s'assurer que le nouveau fichier existe bien à l'emplacement prévu. Le chemin complet des membres doit être spécifié. 6. Si le fichier existe déjà.3. les fichiers seront créés dans le répertoire par défaut du serveur de base de données. les fichiers redo log online peuvent avoir besoin d'être relocalisés.Systèmes de Gestion des Bases de Données : ORACLE fichiers redo log en miroir. Si le chemin complet n'est pas spécifié.ora' TO GROUP 7.5. • Copier le fichier redo log online vers la nouvelle destination. il doit avoir la même taille que le nouveau fichier redo log online et l'option de la commande REUSE doit être utilisé. • Changer le nom du fichier redo log online à l'aide d'une commande SQL : ALTER DATABASE [database] RENAME FILE 'old filename' TO 'new filename'. telles que l'insuffisance d'espace disque. Ce nouveau membre sera stocké dans le répertoire e:\orant\database. Le serveur Oracle change seulement le Dr Mohamed Salah GOUIDER Page 57 29/06/2006 . Database altered. Exemple : ALTER DATABASE ADD LOGFILE MEMBER 'e:\orant\database\log7borcl. Avant de changer le nom du fichier. Relocalisation des fichiers redo log online En raison de contraintes système. • Monter la base de données.ora au groupe redo log 7. Cette commande ajoute un nouveau membre redo log nommé log7borcl. Des membres redo log peuvent être ajoutés grâce à la commande SQL suivante : ALTER DATABASE [database] ADD LOGFILE MEMBER 'filename' [REUSE] TO GROUP n. Etapes à suivre pour relocaliser un fichier redo log online : • Arrêter la base de données. Le groupe cible peut être identifier en spécifiant le numéro du groupe soit un ou plusieurs membres du groupe. Il est donc nécessaire de supprimer manuellement les fichiers redo log online afin de garder un espace disque propre. il faut supprimer ces fichiers redo log online. Parfois. il peut s'avérer nécessaire d'augmenter ou de diminuer la taille des groupes de fichiers redo log online. un fichier redo log online peut devenir invalide à cause d'événements tels qu'une défaillance du support. Pour supprimer un groupe de fichiers redo log online. 6. Pour changer la taille d'un groupe de fichiers redo log online.3. il est nécessaire de vérifier régulièrement le statut des fichiers redo log online. • Si la base de données tourne en mode ARHIVELOG. Ce qui rend les fichiers inaccessibles. il doit en rester au moins trois.7. Dans ce cas. Cependant un certain nombre de restrictions sont à prendre en compte lors de la suppression de groupes redo log online : • L'instance doit avoir au moins deux groupes de fichiers redo log online. 6.Systèmes de Gestion des Bases de Données : ORACLE pointeur dans le fichier de contrôle. mais il ne renomme pas physiquement ni ne crée de fichier.6. Pour supprimer un groupe. • Un groupe redo log online actif ne peut pas être supprimé. il faut créer un nouveau groupe de fichiers redo log online et ensuite supprimer le vieux groupe de fichiers redo log online. Suppression de groupes de fichiers redo log online Pour améliorer les performances de la base de données. un groupe de fichiers redo log online non archivé ne peut pas être supprimé. Quand un groupe redo log est supprimé. il faut utiliser la commande SQL suivante : ALTER DATABASE [database] DROP LOGFILE GROUP n.3. Suppression des membres redo log online Pour obtenir les meilleures performances d'une base de données Oracle. La commande SQL qui permet de supprimer un membre redo log en ligne est la suivante : Dr Mohamed Salah GOUIDER Page 58 29/06/2006 . les fichiers du système d'exploitation ne sont pas supprimés automatiquement. Un groupe de fichiers redo log online ne pourra pas être supprimé si il n'existe que deux groupes. • Ouvrir la base de données. alors un membre redo log online appartenant à un groupe non archivé ne peut pas être supprimé 6. Database altered. il est possible que tous les membres d'un groupe de fichiers redo log online soient corrompus.Systèmes de Gestion des Bases de Données : ORACLE ALTER DATABASE [database] DROP LOGFILE MEMBER 'filename'. Exemple : Le fichier redo log online nommé log5borcl. Cependant un certain nombre de restrictions sont à prendre en compte lors de la suppression de membres redo log en ligne : • Le dernier membre redo log online valide d'un groupe ne peut pas être supprimé. Les commandes SQL pour réinitialiser les fichiers redo log en ligne sont les suivantes : ALTER DATABASE [database] CLEAR [UNARCHIVED] LOGFILE GROUP n. Pour faire face à ce problème. Cependant ces commandes peuvent être effectuées même si il y seulement Dr Mohamed Salah GOUIDER Page 59 29/06/2006 . Ce fichier est stocké dans le répertoire e:\orant\oradata\orcl. • Un basculement de fichier log doit être effectué avant de supprimer un membre redo log online actif. • Si la base de données tourne en mode ARCHIVELOG.3.ora'. L'utilisation de ces commandes revient à ajouter et supprimer un fichier redo log online. ALTER DATABASE DROP LOGFILE MEMBER 'e:\orant\oradata\orcl\log5borcl. il faut réinitialiser les fichiers redo log online.8.ora.ora dans le groupe 5 est devenu invalide. Réinitialisation des fichiers redo log online Lors de l'utilisation de la base de données. Ou ALTER DATABASE [database] CLEAR [UNARCHIVED] LOGFILE 'filename'. Cette commande supprime le fichier redo log online invalide log5borcl. Exemple : Le fichier redo log online redo04.log dans le groupe 1 est corrompu.Systèmes de Gestion des Bases de Données : ORACLE deux groupes de fichiers redo log online avec un membre chacun. Le fichier redo log online redo04. Nombre de fichiers redo log online Pour minimiser la perte de données causée par une défaillance. Si des messages dans le fichier trace LGWR ou dans le fichier ALERT indiquent que le processus LGWR attend fréquemment pour écrire dans un groupe de fichiers redo log online. Ce fichier est désormais prêt et disponible pour utilisation. Planification des fichiers redo log online 6. ALTER DATABASE CLEAR LOGFILE 'e:\orant\oradata\orcl\redo04. une instance de base de données peut avoir besoin de groupes additionnels pour garantir la disponibilité des groupes de fichiers redo log online au processus LGWR. Ces commandes peuvent également être effectuées même si un groupe de fichiers redo log online réinitialisé est disponible mais pas archivé.log'. Un fichier redo log online peut être réinitialisé qu'il ait été archivé ou non. une instance de base de données ne peut avoir besoin que de deux groupes. Cependant le nombre et la taille des groupes de fichiers redo log online qui peuvent être créés dépendent d'un certain nombre de facteurs : • le nombre de transactions effectuées sur la base de données.1. le serveur Oracle fournit des groupes de fichiers redo log online. l'utilisation du mot clé UNARCHIVED aboutit à des sauvegardes inutilisables si le fichier redo log en ligne est nécessaire pour la récupération. Database altered. il faut ajouter des groupes de fichiers redo log online.4. • La taille du buffer redo log. 6.log a été réinitialisé.4. Si le fichier à réinitialiser n'a pas été archivé. Le processus LGWR peut attendre à cause d'un point de Dr Mohamed Salah GOUIDER Page 60 29/06/2006 . Quand le nombre de transaction est limité. Quand le nombre de transactions est très grand. Cependant. il faut inclure le mot clé UNARCHIVED dans la commande SQL. Donc. Un autre avantage de stocker les fichiers redo log online et les fichiers log archivés sur des disques différents est que la contention entre les processus ARCH et LGWR est réduite. 6.4. il est donc préférable de maintenir des fichiers de petite taille. et la taille maximale est spécifique au système d'exploitation. les fichiers log archivés et les fichiers de données doivent être stockés sur des disques séparés. L'avantage de stocker les fichiers redo log online sur des disques séparés est que l'instance ne s'arrêtera pas même si un des membres n'est pas disponible.Systèmes de Gestion des Bases de Données : ORACLE synchronisation pas terminé ou d'un groupe de fichiers redo log online pas encore archivé. Le système d'exploitation peut devenir instable en traitant de gros fichiers. Bien que le nombre de membres dans des groupes multiplexés puisse être différent. il existe des situations qui influencent la taille des fichiers redo log online : Dr Mohamed Salah GOUIDER Page 61 29/06/2006 . • La stabilité des gros fichiers du système d'exploitation. il est très conseillé de mettre en place une configuration symétrique.2. 6.4.3. Pour améliorer la performance de la base de données. les membres des groupes de fichiers redo log online. la taille des fichiers redo log online est une décision importante. Le stockage des fichiers redo log et des fichiers de données sur différents disques permet de réduire de façon substantielle le risque de perdre à la fois les fichiers de données et les fichiers redo log online lors d'une défaillance du support. donc d'augmenter le nombre de fichiers redo log online. Emplacement des fichiers redo log online La disponibilité des fichiers redo log online détermine la performance d'une base de données Oracle. Cependant. Une configuration asymétrique peut être utilisée seulement temporairement dans une situation inutilisable telle qu'une défaillance du support. De plus. La taille minimale d'un fichier redo log en ligne est de 50 Ko. Dimensionnement des fichiers redo log online Les performances d'une base de données Oracle dépendent de la disponibilité des fichiers redo log online. les fichiers de données placés sur différents disques permettent également de réduire la contention entre les processus LGWR et DBWR. il n'est pas souhaitable d'avoir des groupes de tailles différentes. Dans l’exemple précédent.5. Un emplacement système pour les fichiers de log archivés peut être spécifié avec le paramètre d’initialisation LOG_ARCHIVE_DEST_n 6. Ces fichiers sont stockés sur plusieurs disques. Si les fichiers redo log online sont de petite taille.4. 6. • Le nombre et la quantité d'entrées redo. Les noms des fichiers uniques des fichiers de redo log sont générés automatiquement. le fichier du système d’exploitation associé à chaque fichier de log membre OMF est automatiquement supprimé. Les membres des groupes différents peuvent présenter des tailles différentes.Systèmes de Gestion des Bases de Données : ORACLE • Le nombre de basculements de fichiers log et de points de synchronisation. Si le support de stockage ne présente pas la capacité suffisante pour stocker le fichier redo log online en une seule entité. Si le nombre d'entrées redo est élevé. l'administrateur de la base de données est contraint d'utiliser un fichier redo log online plus petit ou plusieurs fichiers. Cependant. Les groupes de tailles différentes ne sont nécessaires que provisoirement lors de la modification de la taille des membres des groupes de fichiers redo log online. le DBA utilise la commande : ALTER DATABASE ADD LOGFILE . Il est bien évidemment possible d’utiliser la clause GROUP pour supprimer un fichier de log. Obtenir des informations sur les groupes Dr Mohamed Salah GOUIDER Page 62 29/06/2006 . les fichiers redo log online seront remplis rapidement ce qui débouche sur la génération d'un grand nombre de basculement de fichiers log. un grand nombre de basculements de fichiers log aura lieu ce qui réduit l'efficacité de la base de données. Cette commande ajoute un fichier de log avec un membre dans DB_CREATE_ONLINE_LOG_DEST_1 et un membre dans DB_CREATE_ONLINE_LOG_DEST_2. Les fichiers archivés de redo log ne peuvent être des fichiers OMF. • L'espace disponible sur le support de stockage.4.4. Gérer les redo log online with OMF Pour créer un nouveau groupe de fichiers de redo log sans spécifications. CURRENT. NOARCHIVELOG : Dr Mohamed Salah GOUIDER Page 63 29/06/2006 .4. sequence#. MEMBER -------------------------------D:\ORACLE\ORADATA\IASDB\REDO03. UNUSED. signifie que le groupe de redo vient juste d’être ajouté et qu’il n’a jamais été écrit. C’est ce groupe là qui est actif.LOG D:\ORACLE\ORADATA\IASDB\REDO01. DELETED (le fichier n’est plus utilisé). STALE (le contenu du fichier est incomplet). il faut interroger la vue V$LOGFILE. status FROM V$LOG . members.Systèmes de Gestion des Bases de Données : ORACLE Il est possible d’obtenir des informations sur les groupes et les membres en interrogeant le dictionnaire de données. SELECT member FROM V$LOGFILE . Archivage de fichiers de redo log Une des décisions importantes qu’un DBA doit prendre est configurer la base de données dans le mode ARCHIVELOG ou NOARCHIVELOG. La requête suivante retourne des informations sur le fichier de redo log online du fichier de contrôle.6. bytes. indique le groupe courrant de redo log. Pour connaître tous les noms des membres d’un groupe. 6.LOG D:\ORACLE\ORADATA\IASDB\REDO02.LOG La valeur du statut de la colonne peut être INVALID (fichier inaccessible). SELECT group#. GROUP# -----1 2 3 SEQUENCE# --------1985 1986 1984 BYTES ----1048576 1048576 1048576 MEMBERS ------1 1 1 STATUS -----INACTIVE CURRENT INACTIVE INACTIVE signifie que le groupe de fichier de redo n’est plus nécessaire pour la restauration d’instance. ARCHIVELOG : Si la base de données est configurée dans le mode ARCHIVELOG. On peut archiver les fichiers de redo log : • Manuellement. Le paramètre d’initialisation LOG_ARCHIVE_START. lorsqu’il est à TRUE indique que l’archivage se fait automatiquement. le DBA peut utiliser la sauvegarde présente sur le disque dur et les fichiers de redo log archivés pour restaurer la base de données sans perdre aucune donnée comité. En mode automatique. LGWR ne réécrit pas sur un groupe de fichier de redo log tant que le checkpoint pour ce groupe n’est pas terminé. les fichiers de redo log online sont réécrits à chaque fois qu’un fichier de redo log online est rempli et qu’un log switch est lancé. indique que le DBA le fait manuellement. Comme toutes les modifications faites sur la base de données sont enregistrées dans les fichiers de redo log online. A FALSE. alors les groupes de redo remplis doivent être archivé. • Automatiquement : Méthode recommandée. et manuellement avec des requêtes SQL. l’archivage se fait grâce au process ARCn.Systèmes de Gestion des Bases de Données : ORACLE En mode. NOARCHIVELOG. Dr Mohamed Salah GOUIDER Page 64 29/06/2006 . Il s'agit de structures physiques conformes au système d'exploitation sur lequel le serveur Oracle fonctionne. Dr Mohamed Salah GOUIDER Page 65 29/06/2006 .1.1.2. La structure physique est constituée de fichiers de contrôle. L'administrateur peut configurer les paramètres d'allocation d'espace aux composants physiques et logiques de la base de données. les extents et les blocs de données. Les composants de la structure logique d'une base de données sont les tablespaces. Elle est divisée en structures logique et physique. Oracle facilite un contrôle poussé de la gestion de l'espace disque en divisant la base de données en structures logiques et physiques. les segments. Architecture d'une base de données 7. appelées tablespaces. de fichiers redo log online et de fichiers de données. Chaque tablespace d'une base de données Oracle est constitué d'un ou plusieurs fichiers appelés fichiers de données. Gérer les Tablespaces et les fichiers de données 7. l'espace est alloué dans la base de données en fonction de paramètres prédéfinis. La première entité est la base de données Oracle. Afin d'obtenir les performances optimales pour la base de données. Vue d'ensemble de la structure d'une base de données Les performances d'une base de données dépendent en grande partie de la gestion efficace des ressources du système. Les structures logiques et physiques qui constituent la base de données Oracle sont elles-mêmes constituées d'autres composants. Relations La séparation des structures logique et physique d'une base de données Oracle facilite le contrôle poussé de la gestion de l'espace disque. 7. telles que l'espace du disque dur. Lorsque les composants de la structure logique sont créés par Oracle. Pour utiliser efficacement l'espace du disque dur.Systèmes de Gestion des Bases de Données : ORACLE 7. L'administrateur de la base de données peut remplacer ou configurer ces paramètres afin d'optimiser l'utilisation de l'espace. Il est important également de savoir comment l'espace est alloué dans la base de données. La base de données est divisée en zones d'espace logiques plus petites.1. il est important de connaître les relations entre les composants physiques et logiques de la base de données.1. Le DBA peut ajouter des extents à un segment manuellement. Caractéristiques d'un tablespace La structure de stockage logique la plus importante d'une base de données est le tablespace. Le niveau suivant de la structure logique d'une base de données est l'extent. rollback segments et segments de données représentent quelques exemples de segments.3. Dr Mohamed Salah GOUIDER Page 66 29/06/2006 . Un bloc de données correspond à un ou plusieurs blocs de fichiers physiques alloués à partir de fichier de données existant. Les segments d'index. Les blocs de données constituent le dernier niveau de granularité. 7. Un segment est l'espace alloué pour un type spécifique de structure de stockage logique dans un tablespace. Un extent est un ensemble de blocs contigus. segments temporaires.Systèmes de Gestion des Bases de Données : ORACLE Un tablespace est constitué de segments. Un extent ne peut pas être réparti sur plusieurs fichiers de données.1. Caractéristiques d'un tablespace : • Un tablespace ne peut appartenir qu'à une seule base de données • Un tablespace est constitué d'un ou plusieurs fichiers du système d'exploitation. tel qu'un segment de données. peut être réparti sur plusieurs fichiers appartenant au même tablespace. Chaque segment est constitué d'un ou plusieurs extents. Les données d'une base de données Oracle sont stockées dans les blocs de données. Un segment. Cette fonctionnalité permet d'empêcher les utilisateurs de modifier des données stockées et inversement. peuvent être mis offline. • Utiliser lors des opérations de sauvegardes et de restaurations partielles. • Tous les tablespaces. • L'état d'un tablespace peut être basculé entre lecture écriture et lecture seule. 7. Les données du tablespace sont stockées dans les structures de stockage physiques appelées fichiers de données. Caractéristiques d'un fichier de données : • Un fichier de données ne peut appartenir qu'à un seul tablespace. Caractéristiques d'un fichier de données Un tablespace est la structure de stockage logique la plus importante d'une base de données. 7. Dans ce cas.1. à l'exception du tablespace SYSTEM ou d'un tablespace avec un undo segment actif.1. Chaque tablespace d'une base de données Oracle est constitué d'un ou plusieurs fichiers de données. • Utiliser pour stocker de grandes quantités de données statiques sur des périphériques en lecture seule. Les fichiers de données sont les structures physiques conformes au système d'exploitation sur lequel le serveur Oracle est installé. L'administrateur peut ainsi assurer la gestion des données sans que la base de données ne soit indisponible. Utilisations d'un tablespace Le tablespace présente plusieurs utilisations possibles permettant la gestion efficace de l'espace disque. • Améliorer les performances E/S et réduire les contentions E/S grâce à la répartition du stockage des données sur plusieurs périphériques. Ceci permet à un administrateur de base de données de procéder à une Dr Mohamed Salah GOUIDER Page 67 29/06/2006 . • Contrôler la disponibilité des données.Systèmes de Gestion des Bases de Données : ORACLE • Les tablespace peuvent être mis offline lorsque la base de données fonctionne. Ce contrôle est effectué par la mise online ou offline des tablespaces individuels. Cette fonctionnalité permet à l'administrateur de contrôler les données sans arrêter la base de données. la base de données continue de fonctionner.5. Utilisations d'un tablespace : • Aider les serveurs Oracle pour le contrôle de l'allocation de l'espace et l'attribution de quotas d'espace aux utilisateurs.4. D'autre part.2. un tablespace appelé SYSTEM est créé par défaut.1. L'administrateur créé un tablespace non-SYSTEM pour gérer facilement la base de données et permettre aux utilisateurs de l'utiliser de façon efficace. Le tablespace non-SYSTEM n'est pas obligatoire. Ils séparent aussi les données dynamiques et statiques Le tablespace SYSTEM contient le rollback segment SYSTEM. les définitions des procédures stockées. la quantité disque à occuper par le fichier de données est spécifiée par l'administrateur de la base de données. Le tablespace SYSTEM contient les informations du dictionnaire de données. Cette caractéristique permet à l'administrateur de la base de données de contourner la limitation du paramètre MAXDATAFILES et permet à la base de données d'être constituée de moins de fichiers de données pour chaque tablespace. Le tablespace SYSTEM est indispensable pour le bon fonctionnement de toute base de données. les segments d'index. des packages et des triggers base de données. les tablespaces non-SYSTEM peuvent contenir les segments de données. Elle évite également que les utilisateurs et les applications ne subissent des erreurs dues au manque d'espace libre dans un tablespace. Tous les autres tablespaces. tout comme le nombre d'objets du tablespace. Cependant. sont créés par l'administrateur de la base de données. Dr Mohamed Salah GOUIDER Page 68 29/06/2006 . L'administrateur peut également spécifier que la taille d'un fichier de données doit augmenter de façon dynamique. tandis qu'un tablespace non-SYSTEM peut contenir tout autre rollback segment. Le serveur Oracle crée le fichier de données avec la quantité spécifiée d'espace disque plus un léger dépassement. • Un fichier de données est créé par le serveur Oracle. Créer des Tablespaces 7.2. appelés tablespaces non-SYSTEM. • Un fichier de données peut être modifié par l'administrateur de la base de données après sa création. les undo segments SYSTEM. les segments temporaires et les undo segments. Types de tablespaces Lorsque l'administrateur crée une base de données. 7.Systèmes de Gestion des Bases de Données : ORACLE sauvegarde du fichier de données sans affecter la disponibilité de tout autre tablespace. 2. • TEMPORARY cette clause est utilisée pour les objets temporaires. Syntaxe de création d'un tablespace : CREATE TABLESPACE tablespace [DATAFILE clause] [MINIMUM EXTENT integer[K|M]] [BLOCKSIZE integer [K]] [LOGGING|NOLOGGING] [DEFAULT storage_clause ] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY] • DATAFILE spécifie le ou les fichiers de données liés au tablespace. • PERMANENT spécifie que le tablespace peut être utilisé pour contenir des objets permanents. storage_clause := ( [INITIAL integer [K|M]] [NEXT integer [K|M]] [MINEXTENTS integer ] [MAXENTENTS {integer | UNLIMITED}] [PCTINCREASE integer ]) Dr Mohamed Salah GOUIDER Page 69 29/06/2006 . par exemple. 7. Un moyen efficace de gestion des données consiste à créer des tablespaces pour différents groupes d'utilisateurs. M spécifie la taille en Mo ou Kbits. • OFFLINE rend le tablespace indisponible immédiatement après la création. indexes et partitions dans le tablespace génèrent des infos de redo log. vous ne pouvez pas procéder à des sauvegardes offline des données sans arrêter la base de données. • LOGGING option par défaut qui spécifie que toutes les tables.Systèmes de Gestion des Bases de Données : ORACLE Il n'est pas souhaitable de stocker les données utilisateur dans le tablespace SYSTEM. un tablespace marketing pour le personnel du service marketing. Création d un tablespace L'administrateur est responsable de la gestion des données des bases de données. Si le tablespace SYSTEM contient des données utilisateur.2. • DEFAULT définit les paramètres de stockage par défaut pour tous les objets créés dans le tablespace. en créant. 2.2. Locally Managed tablespaces L’option LOCAL de la clause EXTENT MANAGEMENT spécifie qu’un tablespace est géré localement. Nom du tablespace : ACCOUNTS Nom du fichier de données : accts01. 7. Dictionary-Managed Tablespaces Pour un tablespace qui utilise le dictionnaire de données pour gérer les extents.4.dbf' SIZE 10M.dbf et sa taille est de 10 Mo. pour créer un tablespace. Le nom du fichier de données est accts01.dbf Taille du fichier de données : 10 Mo Emplacement : c:\oracle\oradata\database Se connecter à la base de données avec les privilèges adéquates : CREATE TABLESPACE accounts DATAFILE 'c:\oracle\oradata\database\accts01. Cette commande est relativement complexe.3. le serveur Oracle met à jour les tables appropriées dans le dictionnaire de données dès qu’un extent est alloué ou désalloué. Dr Mohamed Salah GOUIDER Page 70 29/06/2006 . 7.Systèmes de Gestion des Bases de Données : ORACLE Exemple : Créez un tablespace nommé ACCOUNTS. Cette option est par défaut. Tablespace created. Chaque bitmap correspond à un bloc ou un groupe de blocs. appelée Oracle Storage Manager. L’une de ces méthodes doit être choisie lorsque l’on crée un tablespace et ne pourra être changée par la suite. le serveur Oracle change la valeur du bitmap pour mettre à jour le nouveau statut des blocs. le nombre maximal de tablespaces pouvant être affectés à chaque base de données est de 64 000 et le nombre maximal de fichiers de données pouvant être affectés à chaque tablespace est de 1 023. Lors de la création de tablespaces. Locally Managed Tablespaces Un tablespace qui gère ses propres extents garde un bitmap dans chaque fichier de données pour garder une trace des blocs libres ou utilisés dans ces fichiers de données. Lorsqu’un extent est alloué ou prêt à être réutilisé. Gestion de l espace dans les tablespaces Les tablespaces peuvent être gérés avec les tables du dictionnaire de données ou des tables binaires d’allocations (bitmaps). Oracle offre une interface graphique. MINIMUM EXTENT. Si c’est clause est utilisé.6. • AUTOALLOCATE est l’option par défaut.dbf’ SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256k. • LOCAL signifie que le tablespace est géré localement avec un bitmap. • Pas de soucis de gestion de l'espace (calcul d'un espace de stockage adéquat). Les utilisateurs ne peuvent spécifier une taille d’extent. • UNIFORM signifie que le tablespace est géré avec des extents de tailles uniformes de SIZE bytes. Paramètres de stockage Dr Mohamed Salah GOUIDER Page 71 29/06/2006 . Dictionary Managed Tablespaces Ce genre de tablespace a une gestion du stockage customisé. • "coalesce" automatique (fusion des espaces libres contigus pour optimiser l'espace libre). 7.Systèmes de Gestion des Bases de Données : ORACLE extent_management_clause :== [ EXTENT MANAGEMENT [ DICTIONARY | LOCAL [ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] ] ] ] • DICTIONARY signifie que le tablespace est géré grâce aux tables du dictionnaire.2.2. Les avantages des tablespaces gérés localement sont les suivants : • Pas de contention en mise a jour au niveau du dictionnaire. on ne peut utiliser DEFAULT storage_clause. 7. CREATE TABLESPACE userdata DATAFILE ‘u01/oradate/userdata01.dbf’ SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (initial 1M NEXT 1M) .5. CREATE TABLESPACE userdata DATAFILE ‘/u01/oradate/userdata01. ceci est beaucoup plus flexible que les tablespaces gérés localement mais bien moins efficace. ou TEMPORARY. • Par conséquence pas d'utilisation de Rollback segment pour ces transactions. Systèmes de Gestion des Bases de Données : ORACLE L'efficacité d'un tablespace dépend de la quantité d'espace utilisée par un segment. Par défaut. le troisième extent une taille de 300 Ko et le quatrième extent une taille de 450 Ko. La taille minimale de l'extent suivant est d'un bloc et la taille par défaut est de cinq blocs ou de 5*DB_BLOCK_SIZE. La taille minimale du premier extent est de deux blocs ou de 2*DB_BLOCK_SIZE. il est important de connaître les paramètres qui influent sur la quantité d'espace utilisée par un segment. NEXT est défini sur 200 Ko et PCTINCREASE est défini sur 50%. Le paramètre NEXT fait référence à la taille du deuxième extent. Dans une telle situation. La valeur minimale du paramètre PCTINCREASE est de zéro et sa valeur par défaut est de 50. le deuxième extent présente une taille de 200 Ko. Dr Mohamed Salah GOUIDER Page 72 29/06/2006 . Par exemple. la valeur minimale est de un. Il s'agit des paramètres INITIAL. MINEXTENTS et PCTINCREASE. Le PCTINCREASE est le pourcentage d'augmentation de la taille de NEXT. La taille du premier extent de tout segment est définie par le paramètre INITIAL. La valeur calculée est arrondie à la valeur immédiatement supérieure de 5*DB_BLOCK_SIZE. Ainsi. La valeur du paramètre MINEXTENTS détermine le nombre d'extent alloués lors de la création du segment. NEXT. Cinq paramètres déterminent et contrôlent la quantité d'espace utilisée par un segment. La taille par défaut est de cinq blocs ou de 5*DB_BLOCK_SIZE. MAXEXTENTS. Il est important de garder à l'esprit que les valeurs de ces paramètres doivent représenter un objet typique qui sera créé dans le tablespace. ces paramètres de stockage peuvent être rejetés de la création de segments individuels. Il est possible d’utiliser la commande ALTER TABLESPACE pour modifier les paramètres par défaut. La taille maximale peut également être spécifiée par le mot clé UNLIMITED. Pour créer un tablespace de undo : Dr Mohamed Salah GOUIDER Page 73 29/06/2006 .2. La gestion des segments de undo se fait grâce aux paramètres du fichier d’initialisation : • UNDO_MANAGEMENT : MANUAL (rollback segments) ou AUTO (géré par l’instance donc undo tablespaces).Systèmes de Gestion des Bases de Données : ORACLE Le paramètre MAXEXTENTS détermine le nombre maximum d'extents qu'un segment peut contenir. Ils sont utilisés uniquement pour stocker les segments de undo. La valeur minimale est de un. La valeur maximale par défaut dépend de la taille des blocs de données. Ou : ALTER TABLESPACE userdata DEFAULT STORAGE ( INITIAL 2M NEXT 2M MAXEXTENTS 999). • UNDO_RETENTION : Durée pendant laquelle la donnée modifiée est gardée. équivalent à une valeur de 2 147 483 645. Les Undo Tablespaces Les tablespaces de undo sont une nouveauté de Oracle 9i. • UNDO_TABLESPACE : Nom du tablespace de undo. Par exemple : ALTER TABLESPACE userdata MINIMUM EXTENT 2M. Cependant. • UNDO_SUPRESS_ERRORS : Si positionné à TRUE. cela supprime les messages d’erreurs affichés. lorsqu’on est en mode AUTO et qu’une opération manuelle est exécutée (telle que ALTER ROLLBACK SEGMENT). 7.7. Ils peuvent remplacer les rollback segments qui doivent être gérés de manière manuelle et servent au stockage de segments d’images avant modification des données pour des annulations éventuelles. ).Systèmes de Gestion des Bases de Données : ORACLE CREATE UNDO TABLESPACE undo1 DATAFILE ‘u01/oradate/undo101. On ne peut créer de tempfile avec la commande ALTER DATABASE. par exemple. ils ne peuvent être en lecture seule ou renommés. il est nécessaire de créer un tablespace temporaire et de modifier la base de données avec la commande : ALTER DATABASE Dr Mohamed Salah GOUIDER Page 74 29/06/2006 . Tablespace temporaire par défaut Lorsque une base de données est crée sans tablespace temporaire par défaut. les tempfiles sont toujours en mode NOLOGGING. Mais certaines différences existent. Pour éviter que le tablespace système soit utilisé comme tablespace temporaire. Tablespace temporaire Ces tablespaces sont apparus avec la 9i et remplacent les segments temporaires qui étaient placés dans les tablespaces standard.. où seront stockées uniquement les données temporaires (création d’index. le tablespace qui est assigné aux utilisateurs créés sans la clause TEMPORARY TABLESPACE est le tablespace SYSTEM.3.1. tris. Les tablespaces temporaires gérés localement ont des fichiers de données temporaires (tempfiles) qui sont identiques aux fichiers de données ordinaires.2. Il est nécessaire de créer une tablespace temporaire par défaut autre que SYSTEM. Un segment temporaire permet d’avoir un gain de performance lorsque. La commande pour créer un tablespace temporaire est la suivante : CREATE TEMPORARY TABLESPACE temp TEMPFILE ‘u01/oradate/temp01. Ainsi la taille du segment de tris va augmenter en allouant des extents jusqu’à ce que la taille du segment soit suffisante pour stocker toutes les données que calculent les opérations de tris de l’instance.3. Tablespace temporaire 7. 7. Les informations d’utilisation des segments de UNDO sont stockées dans la vue V$UNDOSTAT. 7.3.dbf’ SIZE 500m EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M.. plusieurs tris occupent trop de place pour la mémoire et doivent être stockés sur le disque dur temporairement.dbf’ SIZE 40M. etc. Tout d’abord. jointures. l'administrateur peut être amené à rendre indisponible un tablespace tout en autorisant l'accès normal au reste de la base de données. il peut mettre offline des tablespaces individuels. Le tablespace SYSTEM. La commande SQL permettant de mettre offline un tablespace est la suivante : ALTER TABLESPACE tablespace { ONLINE | OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE ] } .4.3. et les tablespaces avec des segments de undo ou temporaires actifs ne peuvent être mis offline. D’autre part. 7. Tablespace altered Oracle offre également une interface graphique. Offline Status L'administrateur doit assurer la gestion de bases de données. appelée Oracle Storage Manager.Systèmes de Gestion des Bases de Données : ORACLE DEFAULT TEMPORARY TABLESPACE temp.3. Manipulation de Tablespace 7. Restrictions sur les Tablespace temporaire par défaut Les tablespaces temporaires ne peuvent être mis offline et ne peuvent être supprimés tant qu’un nouveau tablespace par défaut soit crée. il se peut que l'administrateur dispose de tablespaces destinés à contenir des données de nature Dr Mohamed Salah GOUIDER Page 75 29/06/2006 . telles que la relocalisation d'un fichier de données.1. 7. Tablespace en lecture seul Pour répondre aux exigences en matière d'organisation. Mettez le tablespace ACCOUNTS offline. un tablespace temporaire ne peut devenir un tablespace permanent.2. Après cela. tous les utilisateurs qui n’étaient pas assignés à un tablespace temporaire seront affectés directement à temp.4.4. Dans le cadre des tâches de maintenance. 7. Pour cela. ALTER TABLESPACE accounts OFFLINE NORMAL. pour mettre un tablespace offline. ALTER TABLESPACE accounts READ ONLY . Outre la commande SQL. tels que des CD-ROM ou des disques WORM. l'administrateur peut mettre ces tablespaces en lecture seule. Cependant. Oracle offre une interface graphique nommée Oracle Storage Manager permettant de mettre un tablespace en mode lecture seule. La commande SQL permettant de mettre un tablespace en mode lecture seule est la suivante : ALTER TABLESPACE tablespace READ { ONLY | WRITE } . Exemple : Mettez le tablespace ACCOUNTS en lecture seule. En effet. Les fichiers de données peuvent être stockés sur des supports en lecture seule. la mise en lecture seule des tablespaces provoque un point de synchronisation sur les fichiers de données. Ceci permet également de garantir qu'aucune opération d'écriture ne sera effectuée sur les données. car le serveur Oracle ne met jamais à jour les fichiers d'un tablespace en lecture seule. la commande DROP met à jour seulement le dictionnaire de données mais pas les fichiers physiques qui constituent le tablespace. Afin d'éviter d'avoir à procéder à des opérations de sauvegarde et de restauration de telles données statiques. plusieurs conditions doivent être remplies pour pouvoir mettre un tablespace en mode lecture seule : • le tablespace doit être online. En outre. Le moyen recommandé de se conformer à ces restrictions consiste à démarrer l'instance en mode restreint. Tablespace altered. Dr Mohamed Salah GOUIDER Page 76 29/06/2006 . Il est possible de supprimer des objets comme des index ou des tables dans un tablespace en lecture seul.Systèmes de Gestion des Bases de Données : ORACLE statique. • aucune transaction active ne doit être en cours d'exécution sur ce tablespace • le tablespace ne doit contenir aucun rollback segment actif et ne doit pas être actuellement impliqué dans une sauvegarde online. Un moyen de diminuer ce temps consiste à stocker les données statiques dans des tablespaces en lecture seule. puis à les stocker sur des supports en lecture seule.4.Systèmes de Gestion des Bases de Données : ORACLE 7. Il est important de suivre un certain nombre de règles lors de la suppression d'un tablespace. Tablespaces en lecture seul sur des supports en lecture seul L'administrateur de bases de données souhaite diminuer le temps passé sur les sauvegardes de données. permettant de supprimer un tablespace. Le stockage des données en lecture seule se déroule en trois étapes : • mettre le tablespace en lecture seule. Tablespace dropped. Il s'agit des contraintes qui font référence aux clés primaires et uniques des tables du tablespace supprimé. Oracle permet de supprimer de tels tablespaces. CASCADE CONSTRAINTS supprime les contraintes d'intégrité référentielle des tables se trouvant en dehors du tablespace. Oracle Storage Manager. Exemple : Supprimez le tablespace ACCOUNTS DROP TABLESPACE accounts INCLUDING CONTENTS CASCADE CONSTRAINTS . Oracle offre une interface graphique. La présence de ces tablespaces constitue un gaspillage d'espace disque. Dr Mohamed Salah GOUIDER Page 77 29/06/2006 . Pour résoudre ce problème.4. Outre la commande SQL.4. Supprimer un Tablespace En raison d'une modification des besoins des utilisateurs. • renommer les fichiers de données afin qu'ils pointent vers le nouvel emplacement. La commande SQL permettant de supprimer de tels tablespaces est la suivante : DROP TABLESPACE tablespace [INCLUDING CONTENTS [CASCADE CONSTRAINTS] ]. il se peut que certains tablespaces ne soient plus nécessaires. • copier tous les fichiers de données du tablespace sur des supports en lecture seule.3. 7. 4.1. 7. Lorsque le tablespace contient de nombreux objets. Dans ce cas.5. Fichiers de manipulation des données 7. seuls le dictionnaire de données et les fichiers de données doivent être mis à jour. Le meilleur moyen de garantir cela consiste à mettre d'abord le tablespace offline. • CREATE DATABASE • CREATE TABLESPACE … DATAFILE • ALTER TABLESPACE … ADD DATAFILE Dr Mohamed Salah GOUIDER Page 78 29/06/2006 .5. Pour récupérer l'espace disque utilisé par le tablespace. 7. il faut supprimer explicitement les fichiers de données au niveau du système d'exploitation. puis à supprimer le tablespace. Une alternative consiste à utiliser un script pour supprimer un par un les objets du tablespace. elles ne peuvent donc plus être interrogées. les segments qu'il contient sont également supprimés. l'utilisation de l'option INCLUDING CONTENTS peut générer un grand nombre de rollback. seuls les pointeurs de fichiers dans le fichier de contrôle de la base de données associée sont supprimés. il est important de se souvenir qu'un tablespace contenant encore des données ne peut pas être supprimé sans l'option INCLUDING CONTENTS. Les commandes suivantes peuvent être utilisées pour spécifier l’extension automatique. Mettre en place l extension automatique des fichiers de données La clause AUTOEXTEND permet d’autoriser ou non l’extension automatique des fichiers de données.5. • Lors de la suppression d'un tablespace. l'administrateur supprime les tablespaces qui ne sont plus nécessaires. • Si le tablespace est supprimé avec la commande SQL.Systèmes de Gestion des Bases de Données : ORACLE • Il faut s'assurer que les transactions n'accèdent à aucun des segments du tablespace. Conséquences de la suppression de tablespaces Pour économiser de l'espace disque. Voici les conséquences de la suppression d'un tablespace : • Les données du tablespace supprimé ne sont plus disponibles. • Si un tablespace en lecture seule est supprimé. 'filename'] RESIZE integer [ K | M ]. Pour faire face à cette situation. lorsque l'administrateur utilise réellement la base de données. il se peut qu'il se rende compte que son estimation des besoins d'espace est erronée. Oracle permet de redimensionner les fichiers de données. statement processed 4. Ajouter un fichier de données à un Tablespace Lorsque les tables sont remplies avec des objets pendant une période donnée.5.3.2. ALTER TABLESPACE tablespace ADD DATAFILE 'filespec' [auto_extend_clause].Systèmes de Gestion des Bases de Données : ORACLE Exemple : ALTER DATABASE DATAFILE ‘u01/oradata/userdata02. l'espace disponible dans les fichiers de données s'épuise.dbf' RESIZE 3M . La commande SQL permettant de redimensionner les fichiers de données d'un tablespace est la suivante : ALTER DATABASE [database] DATAFILE 'filename' [.dbf du répertoire c:\ora92\database la nouvelle taille de 3 Mo à l'aide SQL*Plus : ALTER DATABASE DATAFILE 'c:\ora92\database\accts01. Oracle vous permet d'ajouter des fichiers de données aux tablespaces.5. La commande SQL permettant d'ajouter un fichier de données à un tablespace est affichée à l'écran. Cependant. 7. Pour faire face à ce problème. Cette opération alloue davantage d'espace disque aux objets de la base de données. Changer la taille des fichiers de données manuellement L'administrateur doit estimer les besoins d'espace d'une base de données. Exemple : Affectez au fichier de données accts01. Dr Mohamed Salah GOUIDER Page 79 29/06/2006 .dbf’ SIZE 200m AUTOEXTEND ON NEXT 10M MAXSIZE 500M . Tablespace altered • Déplacez le fichier de données avec les commandes du système d'exploitation copy c:\ora92\database\accts01.dbf de 1 000 Ko situé dans le répertoire c:\ora92\database au tablespace ACCOUNTS.dbf du tablespace ACCOUNTS du répertoire c:\ora92\database..'filename']. ALTER TABLESPACE tablespace RENAME DATAFILE 'filename' [.. Pour faire face à ce problème.Systèmes de Gestion des Bases de Données : ORACLE Exemple : Ajoutez un fichier de données nommé accts02. Par conséquent. ALTER TABLESPACE accounts ADD DATAFILE 'c:\ora92\database\accts02. • Mettre offline le tablespace ACCOUNTS en mode normal ALTER TABLESPACE accounts OFFLINE NORMAL. Oracle offre une interface graphique appelée Oracle Storage Manager afin de permettre d'ajouter un fichier de données à un tablespace. Oracle permet de déplacer les fichiers de données vers un nouvel emplacement.'filename']. il peut arriver que le support de stockage du fichier de données ne dispose plus de suffisamment d'espace. TO 'filename' [. Déplacer un fichier de données : ALTER TABLESPACE Fichier de données non-SYSTEM : Avec l'augmentation du nombre d'enregistrements de la base de données.dbf' SIZE 1000K... . 4.4. Outre la commande SQL. la taille du fichier de données augmente également. Exemple : Déplacez le fichier de données accts01.5.dbf Dr Mohamed Salah GOUIDER Page 80 29/06/2006 . tablespace altered. • Mettez online le tablespace ACCOUNTS ALTER TABLESPACE accounts ONLINE . Fichier de données SYSTEM : Le tablespace SYSTEM est nécessaire pour que la base de données fonctionne correctement. Oracle Storage Manager peut déplacer les fichiers de données appartenant aux seuls tablespaces non-SYSTEM et ne contenant aucun rollback segment ou segment temporaire actif. Cependant. l'administrateur doit déplacer les fichiers de données du tablespace SYSTEM vers un nouvel emplacement. Oracle permet de déplacer un fichier de données du tablespace SYSTEM vers un nouvel emplacement. telles que le remplacement du disque dur sur lequel les fichiers de données du tablespace SYSTEM sont actuellement stockés.dbf 1 file(s) copied • Modifier le chemin d'accès du fichier de données ALTER TABLESPACE accounts RENAME DATAFILE 'c:\ora92\database\accts01. Tablespace altered • Supprimez le fichier d'origine dans le répertoire c:\ora92\database. dans certaines situations.Systèmes de Gestion des Bases de Données : ORACLE d:\ ora92\database\accts01.dbf' . • Monter la base de données • Déplacer le fichier de données du tablespace SYSTEM • Ouvrir la base de données Il faut toujours fournir les noms complets des fichiers accompagnés de leur chemin d'accès pour identifier les anciens et les nouveaux fichiers de données. Tablespace altered.dbf' TO 'd:\ ora92\database\accts01. Voici les étapes à suivre : • Arrêter la base de données • Utiliser une commande du système d'exploitation pour déplacer les fichiers de données vers le nouvel emplacement. Exemple : Dr Mohamed Salah GOUIDER Page 81 29/06/2006 . Ce paramètre stocke le chemin par défaut des fichiers de données. Par défaut les fichiers ont une taille de 100M. Autres options sur les Tablespaces 7. • Ouvrir la base de données 7. un paramètre d’initialisation est spécifié : DB_CREATE_FILE_DEST. CREATE TABLESPACE apps2_data DATAFILE SIZE 20M.6.2.ORA du répertoire c:\ora92\database appartenant au tablespace SYSTEM vers le répertoire d:\orclbackup.ora' TO 'd:\orclbackup\sys1orcl.6. Récupérer des informations sur les Tablespaces L'organisation des données dans le tablespaces présente plusieurs avantages.6. Il existe deux moyens de le configurer.ora'. Avantages liés à l'utilisation de plusieurs tablespaces : • L'utilisation de plusieurs tablespaces garantit que les données utilisateur et les données du dictionnaire de données peuvent être conservées Dr Mohamed Salah GOUIDER Page 82 29/06/2006 . Créer des Tablespaces avec OMF Lorsque l’on crée un tablespace avec OMF. paramétrés à autoextend et de taille maximale illimitée.Systèmes de Gestion des Bases de Données : ORACLE Déplacez le fichier de données SYS1ORCL.3.1. 7. 7. Configurer OMF pour la création de Tablespace Lorsque l’on configure OMF pour créer un tablespace. la clause DATAFILE n’est pas obligatoire.6. soit directement dans le fichier d’initialisation soit avec la commande suivante : ALTER SYSTEM SET db_create_file_dest = ‘u01/oradate/db01’. • Montez la base de données • Copiez le fichier dans le répertoire d:\orclbackup avec les commandes du système d'exploitation • Déplacer les fichiers de données dans la base de données : ALTER DATABASE RENAME FILE 'c:\ora92\database\sys1orcl. l'administrateur souhaite obtenir l'emplacement et les paramètres de stockage par défaut de tous les tablespaces. Cette protection est assurée par la séparation des rollback segments et des segments de données. L'utilisation de plusieurs tablespaces permet également la sauvegarde des tablespaces individuels. Les noms des vues dynamiques sur les performances et des vues du dictionnaire de données sont les suivantes : • DBA_TABLESPACES Cette vue contient des informations sur les noms. car les tablespaces individuels peuvent être mis offline. Oracle offre des vues du dictionnaire de données et des vues dynamiques sur les performances. Les contentions E/S sont réduites grâce au stockage des fichiers de données de différents tablespaces sur des disques durs distincts.Systèmes de Gestion des Bases de Données : ORACLE • • • • • • séparément. les paramètres de stockage par défaut. Ceci permet une souplesse des opérations sur la base de données. La réduction des contentions constitue un autre avantage de l'utilisation de plusieurs tablespaces. qui vous permettent de rassembler des informations sur les tablespaces. L'administrateur a besoin d'informations sur les tablespaces afin d'assurer une gestion efficace de la base de données. des opérations en lecture seule et le stockage temporaire de segments. L'utilisation de plusieurs tablespaces offre un degré élevé de flexibilité dans l'administration des données. tel que des activités de mise à jour. L'utilisation de plusieurs tablespaces permet de réserver des tablespaces pour un type particulier d'activité sur la base de données. les types et la disponibilité de tous les tablespaces. Ceci permet de garantir une bonne disponibilité des données. Dr Mohamed Salah GOUIDER Page 83 29/06/2006 . Les données des différentes applications peuvent être stockées dans des tablespaces distincts. Exemple : Pour assurer une gestion efficace de la base de données. L'utilisation de plusieurs tablespaces constitue une protection contre la perte définitive de données. Ceci permet également de garantir une bonne disponibilité des données. Ceci permet d'améliorer l'efficacité de la base de données. SELECT * FROM dba_data_files. la disponibilité et les noms des tablespaces auxquels les fichiers de données appartiennent. • DBA_DATA_FILES Cette vue contient des informations sur les fichiers de données appartenant à un tablespace spécifique ainsi que sur leurs paramètres AUTOEXTEND Exemple : L'administrateur souhaite afficher les tablespaces auxquels les fichiers de données appartiennent. Dr Mohamed Salah GOUIDER Page 84 29/06/2006 . ainsi que la valeur de l'option AUTOEXTEND. • V$DATAFILE Cette vue dynamique contient des informations sur le nom du fichier de données. • V$TEMPFILE Cette vue contient des informations sur les tablespaces temporaires. la taille.Systèmes de Gestion des Bases de Données : ORACLE SELECT * FROM dba_tablespaces .
Copyright © 2024 DOKUMEN.SITE Inc.