Université CAD de Dakar

Page

1

Département Maths-Informatique

Université Cheikh Anta Diop Faculté des Sciences et Techniques Département de Mathématiques-Informatique

COURS DE DBA ORACLE

DU Dr. MBAYE SENE Maîtrise Informatique 2006/2007

Cours DBA Oracle Maîtrise Informatique

Dr Mbaye SENE 2006/2007

Université CAD de Dakar

Page

2

Département Maths-Informatique

TABLE DES MATIERES

Première Partie : Généralités, architecture et Tuning
I Architecture du système Oracle (physique et logique) I.1 Les fichiers de la base I.1.1 Fichiers base I.1.2 Fichiers Redo log I.1.3 Fichiers de contrôle I.2 Mémoire centrale I.2.1 Zone des exécutables I.2.2 La SGA (System Global Area) I.2.3 PGA (Programm Global Area) I.2.4 Zones des ordres SQL I.3 Principaux process Oracle I.3.1 Le process DBWR I.3.2 Le process LGWR I.3.3 Le process SMON I.3.4 Le process PMON I.3.5 Le process ARCH I.3.6 Les autres processus I.4 Architecture OFA (Optimal Flexible Architecture) I.4.1 Définitions et objectifs I.4.2 Avantages et caractéristiquesd I.4.3 Configuration recommandée I.5 Nouveautés de la version 9i/10g par rapport à la 8i TP : Constituants de la base II Optimisation sous Oracle II.1 Optimisation au niveau conceptuel II.1.1 Indexation sous Oracle II.1.2 Choix des clusters II.1.3 Redondance calculée II.1.4 Partitionnement des tables II.1.5 Choix des paramètres de stockage TP : Indexation II.2 Optimisation des programmes d’application II.2.1 Règles de l’optimiseur II.2.2 Ordonnancement par restructurations algébriques II.3 Tuning d’une base de données (Voir partie administration)

Deuxième partie
I. Création/démarrage d’une base de donnée I.1 Préparation du fichier d’initialisation I.2 Création d’une base de données (mode graphique et/ou mode manuel) I.3. Démarrage/Arrêt d’une base Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007

Université CAD de Dakar I.4

Page

3

Département Maths-Informatique

Ajout, suppression ou modification des fichiers de la base

AtelierINIT II Gestion des utilisateurs II.1 Création II.2 Modification II.3 Suppression Atelier 1 III Contrôle des accès III.1 Gestion des privilèges systèmes III.2 Gestion des privilèges objets III.3 Audit de contrôle d’accès - Audit système - Audit des propriétaires d ‘objets Atelier 2 IV Administration réseau IV.1 Les fichiers de configurations IV.2 Configuration de SQL*NET IV.3 Accès à une base distante Atelier 3 V Tuning d’une base Oracle (Avancé) V.1 Les outils de mesures : les vues V.2 Tuning de la mémoire cache - Optimisation du dictionnaire cache - Optimisation des buffers de la SGA V3.3 Tuning des E/S disque VI Sauvegarde, restauration de la base (avancé) VI.1 Le mode archivage VI.2 Sauvegarde avec l’OS VI.3 Sauvegarde avec l’outil EXPORT VI.4 Restauration de la base - En mode archivelog - En mode noarchivelog VI.5 Réorganisation d’une base VII Gestion des objets dans une base répartie (avancé) VII.1 Concept de database link, accès à des objets distants VII.2 Quelques techniques de répartition - Méthodes des copies - Méthode des partionnements VII.3 Réplication par cliché VII.3 Réplication par trigger VIII Quelques outils d’Oracle (Avancé) IX.1 SQL*Loader IX.2 Oracle Network manager IX.3 Oracle Enterprise Manager

Cours DBA Oracle Maîtrise Informatique

Dr Mbaye SENE 2006/2007

Université CAD de Dakar

Page

4

Département Maths-Informatique

Introduction : Présentation du système Oracle
On distingue deux composantes dans un système d’information : les données et les traitements. Les données sont représentées par une base de données et les

traitements par un ensemble d’applications informatiques et par des procédures manuelles. Un système de gestion de base de données (SGBD) a pour vocation de donner la possibilité de créer une base de données et de l’entretenir d’une part, et de développer des applications pour l’exploiter d’autre part. C’est un outil permettant d’insérer, de modifier et de rechercher efficacement des données spécifiques dans une grande masse d’informations partagées par les usagers. Une base de données Oracle comprend deux types d’informations: le dictionnaire de données et les données. Le dictionnaire de données est un ensemble de tables qui décrivent la base ; les données sont de deux types : les données des utilisateurs (essentiellement les tables et les index) et les données nécessaires au fonctionnement d’Oracle (exemple les segments de rollback). Le noyau d’Oracle réalise les fonctionnalités requises chez un SGBD, permettant ainsi d’assurer le fonctionnement normal d’une base de données (stockage des données et gestion de l’espace disque, gestion du dictionnaire de données, recherche et modification des données, sécurité des données ainsi que leur intégrité et leur confidentialités et enfin gestion de la concurrence d’accès).

I Architecture d’Oracle
Une base de données Oracle est un ensemble de fichiers sur disque ayant chacun une structure et une vocation particulière. Sous le terme d’architecture, il faut distinguer deux parties : l’architecture physique : elle est constituée d’un ensemble de fichiers qui contiennent l’ensemble des données de la base : données de gestions de la base et données des utilisateurs. L’architecture physique d’une base Oracle comprend les fichiers de données, les fichiers de reprise et les fichiers de contrôle. L’architecture logique : elle comprend les tablespaces, les segments, les extensions, les blocs et les objets de schéma. Ces derniers comprennt les tables, les vues, les index, les procedures, les clusters, les fonctions, les triggers etc… Rappel : Bloc : c’est le niveau logique le plus bas, il est composé d’un certain nombre d’octets.
Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007

SGA: Partie de la mémoire centrale réservée à l'instance User1 Usern DBWR LGWR SMON PMON ARCH Premier fichier base Deuxième fichier base Premier fichier redo log Deuxième fichier redo log 1er fichier control 2ieme fichier control Fichier redo log archivés Fig1 : Architecture générale d’une instance Oracle I. La figure Fig1 illustre une architecture générale d’une instance. - Segment : c’est le niveau supérieur. Les premières constitent le cœur de la base de données et consistent en des tables et des index. Il ne faut pas confondre une base de données Oracle et une instance Oracle qui est un ensemble de 5 principaux process (dont un optionnel) et une zone de la mémoire centrale appelée SGA (voir plus loin). Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . les fichiers de journalisation (redo log files) et les fichiers de contrôle (control files) I. Une instance travaille sur une et une seule base de données. Les fichiers base sont regroupés en unités logiques appelées tablespace.1 Fichiers de la base Les fichiers de la base sont de trois types : les fichiers base (database files). il est constitué d’un ensemble d’extensions allouées au même objet schéma.Université CAD de Dakar Page 5 Département Maths-Informatique - Extension : c’est le niveau intermédiaire. il est constitué d’un certain nombre de blocs consécutifs alloués simultanément à un objet de schéma.1 Fichiers base Les fichiers base contiennent essentiellement deux types d’in formations : les données des utilisateurs et du dictionnaire de données (DD) et les données de travail. les dernières elles sont nécessaires pour qu’Oracle puisse fonctionner.1.

ces segments sont pris soit dans le tablespace système soit dans les tablespaces des utilisateurs. ils sont au moins au nombre de 2. Si la transaction de modification se termine normalement.Don. RS2 Index T1 sur Table T1 Table T3 Tablespace "SYSTEM" FigTS: Les tablesapces Tablespace TS1 Tablesapce TS2 Une table d’utilisateur ou du DD occupe un certain nombre de blocs oracle. I. Le segment de Bootstrap (cache segment) est un segment de moins de 50 blocs qui est créé par Oracle pour ses propres besoins. ces blocs seront utilisés pour restituer l’état de la base de données avant le début de la transaction. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . il y a 4 types de segments de travail : les rollback segments. et par la même occasion. Par contre si la transaction est annulée ou anormalement arrêtée. Rollback segment "SYSTEM" Seg. Ils contiennent tous les changements d’état de la base de données et sont utiles pour la restauration d’une base suite à un incident de l’instance ou du disque. un index occupe un segment d’index. RS1 Table T3 Table T4 Rollback seg. Cette restauration consiste en une ré-application du contenu des fichiers redo log sur la base. Les rollback segments sont utilés pour la réalisation du concept de transaction : les blocs de données ou d’index qui sont en cours de modification sont copiés avec leurs anciennes valeurs (l’image avant) dans un rollback segment. les segments temporaires. l’espace qu’ils occupaient est libéré. temporaire Rollback segment "RS" Table T1 Table T2 Rollback seg. Les rollbacks segments différés (Differed Rollback segments) sont utilisées par Oracle pour ranger des blocs « image avant » d’un tablespace lorsque celui-ci est mis hors service (Offline).1.2 Fichiers Redo log Ce sont des fichiers de journanlisation des modifications successives.Université CAD de Dakar Page 6 Département Maths-Informatique Dic. lors de la création de la base. les segments différés et les segments du démarrage. Les blocs pris par une table forment ce qu’on appelle un segment de données . Les segments de travail représentent une partie des blocs des fichiers base . ces blocs d’image avant ne sont pas utiles. Les segments temporaires (temporary segments) sont utilisés par Oracle pour les requêtes SQL qui ne peuvent pas être réalisées en mémoire .

et des applications des utilisateurs. il y a quatre types de zone mémoire utilisées : I.3 Fichiers de contrôle Ce sont de petits fichiers qui contiennent essentiellement : les noms des fichiers base et redo log. Ces exécutables peuvent être partagés par plusieurs instances à la fois sur une même machine.3 PGA (Programm Global Area) Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . elle est allouée au démarrage et contient les informations d’une et une seule instance Oracle.2 La SGA (System Global Area) C’est la zone mémoire réservée à l’instance. et dépend des valeurs de certains paramètres du fichier de démarrage INIT.2. elle est fonction du paramètre db_block_buffers. les autres ne sont qu’une copie conforme du premier et existent dans un but de sécurité. des enregistrements redo log etc. la date de création de la base et des informations sur l’état de cohérence de la base (les checkpoints). Variable size : elle correspond essentiellement au Dictionnaire de Données . il suffit de lancer la commande show sga sous le compte system ou la requête select * from v$sga. La taille de cette zone mémoire dépend du système d’exploitation et de la version d’Oracle.2.2. I. sa taille dépend des paramètres commençant par DC_. sa taille est pratiquement non paramétrable.Université CAD de Dakar Page 7 Département Maths-Informatique I. Plus la taille du SGA est grande. Database buffer : c’est la taille de la zone des buffers de données et de rollback.1 Zone des exécutables Cette zone mémoire contient l’exécutable du noyau et des outils Oracle en cours d’utilisation. Redo buffer : c’est la taille de la zone des enregsitrements redo log .1. Sa taille ne change pas durant l’exploitation. I. elle est fonction du paramètre log_buffer. Une base doit avoir au moins un fichier de contrôle .2 Mémoire centrale Lorsqu’une base de données Oracle est en activité.ORA. Cette zone est libérée à l’arrêt de l’instance. Pour ontenir ces composants. plus Oracle va travailler en mémoire et moins il va accéder au disque. le nom de la base. La SGA est constituée de quatre principales parties : • • • • Fixed size : c’est une petite zone réservée pour le système. des blocs du dictionnaire de données. Les types d’informations contenues dans la SGA sont: des blocs de données et d’index des utilisateurs. I.

3. Il écrit dans le fichier redo log pour tracer toute activité de mise à jour de la base de données. I. I. le rôle de SMON consiste à vérifier si l’instance s’était arrêtée normalement la dernière fois.4 Zones des ordres SQL Chaque ordre SQL est stocké sous une forme particulière dans une zone mémoire appelée curseur. auquel cas il n’a rien à faire. ce process est asynchrone dans la mesure où il n’écrit pas systématiquement dans la base suite à un ordre modifiant l’état de la base (exemple suite à un ordre SQL update): il retarde au plus l’écriture sur disque. Pour réduire au maximun les entrées/sorties disques. I. Sinon il restaure la base en récupérant dans le fichier redo log les modifications qui ont été terminées (par un Commit ou Rollback) et que Oracle n’avait pas encore écrites dans la base avant l’arrêt anormal. le process peut être un process Oracle ou utilisateur.2 Le process LGWR Il travaille conjointement avec le DBWR. Il faut noter que cette zone est en dehors de la PGA de l’utilisateur et de la SGA. I. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .2. ce paramètre détermine le nombre de blocs oracle qui doit être atteint pour écrire les enregistrements de la SGA vers les fichiers base.Université CAD de Dakar Page 8 Département Maths-Informatique Une zone est affectée à chaque process connecté à la base. elle contient essentiellement le texte de l’ordre et le schéma d’accès.3 Principaux processus Oracle Les lectures de la base vers la SGA sont assurées par les processus d’arrière plan ou utilisateurs.3 Le process SMON Il a pour tâche principale la restauration de la cohérence d’une base à son démarrage.3. I.1 Le process DBWR Il est responsable de l’écriture des blocs de la SGA vers la base. Ce process intervient également pour faire le ménage suite à la désactivation et à la réactivation d’une partie de la base de données (tablespace offline puis online). Cette zone dont la taille dépend du système d’exploitation contient des informations sur l’état du process et sur son activité.3. Au lancement de la base. et plus précisément vers les fichiers de la base. Cette écriture a lieu dans deux cas : a) quand la SGA est pleine b) quand on atteint un point de contrôle (checkpoint) : un checkpoint est est atteint quand le fichier redo log courant est plein ou quand la valeur du paramètre log_checkpoint_interval est atteint .

• Dnnn (the Dispatcher process) : Avec une configuration MTS. I. ils reçoivent les demandes de requêtes du LISTENER et les redirigent vers le processus server partagé le moins chargé.3. D002. D003 etc… sont créés . • Pnnn (the Parralel Query process): ils sont responsables de l’éxécution des requêtes SQL dans les cas suivants : requêtes parralèles. Cette intervention consiste à libérer les ressources occupées par le process utilisateur et à supprimer ce dernier de la liste des process utilisateurs de l’instance. ce qui permet de redure l’overload tout en augmentant le nombre d’utilisateurs supportés.3. un ou plusieurs processus servers sont créés avec les noms S001 .transactionnelle .3. il permet de recouvrir aux pannes rencontrées dans les transactions distribuées en se connectant sur les bass distantes impliquées dans la transaction distribuée et en en supprimant les lignes résultant d’une transaction « douteuses ».4 Le process PMON Il intervient lorsqu’un process utilisateur a un problème ou lorsqu’il est anormalement terminé. création parralèle Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . • RECO (the Recoverer process) : il est utilisé dans une architecture distribuée . S003 etc… Ces processus permettent à plusieurs processus utilisateurs de se connecter à l’instance.Université CAD de Dakar Page 9 Département Maths-Informatique I.6 D’autres processus d’arrière plan D’autres processus background pourraient être actifs dépendant des options d’installations prises : • • CKPT (the checkpoint process) : il est responsable de la MAJ des entêtes des fichiers base lors d’un checkpoint. Ces archives pourront être utilisées pour restaurer la base de données en cas de perte de fichiers base. Le nombre de processus dispatcher est donné par le paramètre MTS_MAX_DISPATCHERS.5 Le process ARCH Il est optionnel et a pour rôle d’archiver les versions successives des fichiers redo log. I. • LCKn (the Lock process) : Plusieurs processus de vérouillages (LCK0. LCK2…) sont utilisés avec l’option Parralel server pour offrir des possibilités de vérouillage inter-instance. S002.un ou plusieurs processus dispatcher D001 . Snnn (the Shared Server Process) : Avec une configuration MTS (Multi-Threaded Server).

4 Architecture OFA (Optimal Flexible Architecture) I.1 Définition et objectifs Oracle Optimal Flexible Architecture (meilleure architecture évolutive). C'est nettement plus simple lorsque les exécutables sont séparés de votre base. Cette opération prend tout son sens lorsque vous souhaitez mettre à jour votre version d'Oracle : vous voulez tout mettre à jour sans que votre base de données soit altérée. ou des bases de données à fort taux d'utilisation. OFA peut être défini comme un ensemble de bonnes habitudes à prendre pour la création d'une base. est un ensemble de convention de nommage et de répartition de fichiers sur les différents disques dur du serveur. La norme OFA a été réalisée afin d'offrir des avantages non négligeables.4. Il permet en outre d'ajouter simplement des fichiers de données au fur et à mesure que la base prend de l'ampleur Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . Son objectif est de prévenir tout un ensemble de problèmes qui pourraient survenir en cas d’utilisation de plusieurs versions d'Oracle. chargement parralèl de données etc…Leur nombre minimal est spécifié par le paramètre PARRALEL_MAX_SERVERS I. notamment dans les cas suivants : • Facilité de maintenance des bases de données à travers une organisation de fichiers standardisée • • Fiabilité grâce à des données réparties sur plusieurs disques Performance accrue par des réductions de conflits d'entrée/sortie sur les disques Oracle Universal Installer sépare les fichiers exécutables des fichiers de base de données. plusieurs bases de données.4.Université CAD de Dakar Page 10 Département Maths-Informatique d’index.2 Avantages et caractéristiques d'une base compatible OFA Une base OFA apporte plusieurs avantages : • Facilité d'administration de la base de données et meilleure gestion de l'évolutivité : le système de fichier est organisé de manière à simplifier la recherche de fichiers de données spécifiques. I. Il n’est pas pas indispensable à la création d'une base mais Oracle recommande son utilisation si vous prévoyez une augmentation du nombre d'utilisateurs ou encore si vous souhaitez mettre en place d'autres bases de données dans votre environnement.

des fichiers temporaires (fichiers utilisés pour les opérations de tri) • Davantage de garanties face aux problèmes de disques : en répartissant les fichiers sur plusieurs disques. Les fichiers présentant Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . des fichiers de données.4.5 Configuration recommandée (exemple sous LINUX) Afin de satisfaire les objectifs. mais aussi réduire la fragmentation I. on minimise autant que possible la perte de données en cas de problèmes • Plusieurs version d'Oracle peuvent s'exécuter en même temps : cela peut par exemple permettre au DBA de tester les fonctionnalités d'une nouvelle version avant de l'appliquer aux bases de données Quelques avantages de OFA sont : • Indépendance des sous-répertoires :les opérations sur un fichier d'une certaine catégorie ne sont pas répercutées sur un fichier d'une autre catégorie • Convention de nommage pour les fichiers de données : on peut ainsi identifier les fichiers plus facilement • Séparation des différents types de tablespace pour obtenir les avantages d'I/O. Oracle recommande une architecture en 4 disques Les fichiers de contrôle doivent être copiés sur au moins deux disques afin que la base puisse quand même démarrer si un des disques est corrompu.Université CAD de Dakar • Page 11 Département Maths-Informatique Moins de "bouchons" aux entrées/sorties du disque grâce à la séparation des fichiers binaires.

le DBA se repérera plus facilement au sein des nombreux fichiers possibles en adoptant la convention de nommage OFA.ctl .DBF REDO01. Parmi ces nouveautés nous pouvons citer : Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .DBF USERS01. Au cas où vous ne disposeriez que de trois disques.DBF fichier de données du tablespace Oracle Enterprise Manager REPository SYSTEM01.DBF tablespace système RBS01. Oracle recommande la configuration suivante : HD1 Système d'exploitation + Répertoire Racine HD2 Code de l'application + copie des fichiers de contrôle + copie des fichiers redo + copie des fichiers de données HD3 Copie du fichier de contrôle + fichiers redo + fichiers de données Enfin.LOG tablespace du RollBack Segment fichier de données du tablespace d'index fichier de données d'un tablespace temporaire fichier de données d'un tablespace utilisateur fichier redo du groupe 1.Université CAD de Dakar Page 12 Département Maths-Informatique des caractéristiques d'utilisation différentes doivent être placés dans des tablespaces différents.DBF TEMP01.. C’est presque l’intégrité de la gestion interne d’oracle qui a été améliorée avec cette nouvelle version. d’où l’apparition d’une nouvelle version d’Oracle : Oracle9i.CTL fichier de contrôle OEMREP01. membre 1 I.. Par exemple les fichiers de contrôle s'appelleront control01.ctl. control02. Fichier Nommage CONTROL01.5 Les nouveautés des nouvelles versions par rapport à Oracle8i Par souci de compatibilité avec les versions précédentes.DBF INDX01. peu de caractéristiques techniques disparaissent : seuls des ajouts sont effectués . Comme plusieurs fichiers peuvent exister. un numéro est rajouté avant l'extension.

Il est aussi possible d’interroger les données de la base de données telles qu’elles étaient plusieurs heures auparavant. I.4 Les tablespaces UNDO ou d’annulation Un tablespace de type Undo est un nouveau tablespace hébergeant les segments d’annulation.3 Les tablespaces temporaires Oracle effectue de nombreux tris.1 Nouveau mode de gestion des tablespaces Pour simplifier et améliorer les performances d’accès aux tablespaces. I.2 Allocation automatique des segments de stockage Le mode LOCAL apporte de nombreuses options d’allocations des espaces disque.Université CAD de Dakar Page 13 Département Maths-Informatique I. C’est dans cet espace qu’Oracle gère les données en attente de validation ou d’annulation. Pour cela on indique au tablespace UNDO une durée de rétention des informations.5. Le nouveau mode LOCAL stocke tous les aspects d’allocation de segment à l’intérieur de chaque tablespaces et les informations sont codées au format bipmat dans chaque en-tête de tablespaces. Les fastidieuses clauses STORAGE disparaissent au profit d’options comme AUTOALLOCATE I. Ils sont principalement effectués dans une zone de tri en mémoire.5. Si cette zone s’avère trop petite. à la demande des utilisateurs ou pour son fonctionnement interne. un espace disque est réservé à cet effet : c’est le tablespace temporaire ou TEMPORARY TABLESPACE. L’utilisation d’un tablespace UNDO est beaucoup plus simple que celle de rollbacks segments. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .5.5. deux modes de gestion existent : le mode LOCAL et le mode DICTIONNARY.5 La période de rétention d’un tablespace UNDO Le flashback Query permet d’interroger les données dans l’état où elles étaient plusieurs heures auparavant. L’ancien mode DICTIONNARY centralise l’allocation d’espace dans le dictionnaire de données de chaque base. I.5. destiné à remplacer les rollbacks segments.

etc. index et tablespaces augmente ainsi la disponibilité des bases.11 La gestion automatique des fichiers par Oracle La gestion des fichiers proposée par Oracle offre de multiples options pour en faciliter l’administration : accroissement automatique de leur taille. I. Oracle accepte maintenant des tablespaces possédant une valeur différente de celle définie pour son tablespace SYSTEM.5. tout est analysé a posteriori. l’un des problèmes les plus difficiles à résoudre pour les administrateurs. Oracle était la gestion de la taille des tablespace.5. qu’il soit en mode gestion local ou dictionnaire. Comme les tablespaces transportables peuvent parvenir de bases configurées avec des DB_BLOCK_SIZE différents.7 Extension automatique d’un fichier de données Auparavant.5.9 Une base peut comporter plusieurs DB_BLOCK_SIZE Une base de données est toujours créée avec un DB_BLOCK_SIZE unique pour le tablespace SYSTEM.8 Les tablespaces transportables Cette caractéristique permet de transférer un tablespace d’une base de données Oracle9i vers une autre base de données9i.10 L’exportation des fichiers redo-logs :le Log Miner Oracle propose un outil d’analyse du contenu des fichiers redo-logs d’une base : le Log Miner. Cet utilitaire utilise de manière séquentielle l’ensemble des opérations réalisées sur une base. Des assistants permettent d’automatiser ces actions. base ouverte. Oracle permet l’augmentation automatique de la taille des fichiers pour tous les types de tablespaces.5. I.6 Réorganisation des objets base ouverte De nombreux objets peuvent être cependant réorganisés. utilisateur connecté. L’avantage de Log Miner est que rien ne doit être prévu a priori.5. créer rapidement un environnement de test identique à celui de production. La réorganisation en ligne des tables. I. I. transférer les tablespaces d’une base de production vers une base infocentre1.Université CAD de Dakar Page 14 Département Maths-Informatique I. I. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .5. gestion interne. L’utilisation des tablespaces transportables est limitée entre bases Oracle9i. Les utilisateurs sont multiples : déplacer l’ensemble des données d’une application d’une base à une autre.

Elle s’effectue à partir de SQL*Plus qui devient l’interface privilégiée de la création d’une base.15 Contrôle dynamique de la mémoire SGA Les paramètres d’initialisation qui dimensionnent l’allocation mémoire d’une instance sont dynamiques. ces valeurs peuvent maintenant être gérées automatiquement dans un fichier binaire persistant.16 Nouvelle syntaxe pour démarrer une instance Une nouvelle syntaxe est utilisée pour créer. toutes les versions d’Oracle ont utilisé un simple fichier texte pour y conserver les paramètres d’initialisation. I.5.5. Les paramètres d’initialisation DB_CREATE_FILE_DEST et DB_CREATE_ONLINE_LOG_DEST_n gèrent la création : des fichiers liés aux tablespaces des fichiers redo-logs des fichiers de contrôle.5. I.Université CAD de Dakar Page 15 Département Maths-Informatique Oracle9i permet aussi la gestion de l’ensemble des fichiers composant la base.13 Gestion des fichiers d’initialisation Historiquement.ora Dr Mbaye SENE 2006/2007 Cours DBA Oracle Maîtrise Informatique . y compris leurs création. • • • sqlplus /nolog connect system/manager as sysdba startup pfile=c:\repertoire\init. ce qui signifie que leur modification est immédiatement prise en compte. nom. I.5. Le paramètre dynamique DB_CACHE_SIZE remplace l’ancien DB_BLOCK_BUFFER qui était statique. sans nécessiter l’arrêt puis le démarrage de la base.14 Valeurs dynamiques du fichier d’initialisation De plus en plus de paramètres d’initialisation sont modifiables dynamiquement.5. I. Avec Oracle9i. suppression. démarrer et arrêter une instance. I.12 La suppression automatique des fichiers L’ordre DROP TABLESPACE possède maintenant une option permettant de supprimer les fichiers liés au tablespace en même temps que l’ordre ALTER DATABASE TEMPFILE effectue la même opération pour les fichiers liés aux tablespaces de tri. etc.

ora I.5.5.5.5. I.22 Créer une base Oracle9i Le logiciel DBCA (Oracle Database Configuration Assistant) offre une interface graphique conviviale pour guider.17 Disparition du CONNECT INSTERNAL Il n’est plus possible d’utiliser un CONNECT INTERNAL pour une base. L’assistant NETCA (Oracle Net Configuration Assistant) permet de créer rapdiment une configuration client-serveur Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .23 Paramétrer Oracle Net : Oracle Net correspond à l’ancien SQL*Net ou Net8. de nombreux assistants sont apparus. Oracle recommande l’utilisation d’un fichier mot de passe. Ils facilitent les actions de configuration et d’administration.19 Modification du moteur Java et XML d’oracle Le moteur Jserveur à la base Oracle a été revu et de très nombreuses possibilités concernant Java et Xml sont apparues. I.Université CAD de Dakar Page 16 Département Maths-Informatique I. I. Il s’avère très bien conçu et sa dernière version prend en compte toutes les nouveautés apportées par Oracle9i. Il autorise les utilisateurs possédant les privilèges SYSOPER et SYSDBA à administrer une base à distance. Les privilèges SYSOPER et SYSDBA qui existent de puis plusieurs versions le remplacent • • • sqlplus / nolog connect system/manager as SYSDBA startup pfile =/u01/app/oracle/admin/test/scripts /init. I.5.18 Utilisation d’un fichier mot de passe Pour démarrer une base de données en mode client serveur ou à partir d’oracle Entreprise Manager. Il apporte de nombreuses possibilités supplémentaires. Cet utilitaire réclamé par tous les administrateurs Oracle depuis des années est disponible depuis Oracle8.5.5.21 Les outils et assistants Pour exploiter les nouvelles possibilités d’Oracle.20 Nouvelle version D’oracle9i Portal Oracle Portal est le successeur d’Oracle WebDB. I.

II Tuning d’une base de données NB : Les parties A et B doivent être traitées dans le cours de BD A. afin d’optimiser au mieux les performances en terme de temps de réponse.24 Administrer votre environnement Oracle Oracle Entreprise Manager.Université CAD de Dakar Page 17 Département Maths-Informatique opérationnelle. de sorte qu’un concurrent ne puisse venir occuper cette place.5 Choix des paramètres de stockage TP : Indexation B. L’assistant NETMGR (Oracle Net Manager) accède à toutes les possibilités de paramétrage d’Oracle Net. Le tuning intervient dans deux phases du cycle de vie d’un Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .1 Indexation sous Oracle A. ce qui permet de convertir simplement la licence de prêt en licence achetée.1 Règles de l’optimiseur B.4 Partitionnement des tables A. Elle possède de nombreuses possibilités nouvelles que je vous conseille d’exploiter.3 Redondance calculée A. I.2 Choix des clusters A. Cette tendance. avec ses produits Oracle9i Server et avec Personal Oracle9i sur les postes personnels. Des versions d’évaluation des produits regroupant l’ensemble des fonctionnalités sont diffusées gratuitement par l’éditeur sur CD-ROM ou téléchargeables sur le Web. Oracle a effectué depuis quelques années une percée remarquée dans le domaine du groupe de travail. Ces logiciels ne contiennent pas de clé de cryptage ni de « bombe à retardement » permettant de les verrouiller à l’issue de la période légale d’essai.5. Il faut occuper le terrain par l’installation d’une version de prêt. Optimisation au niveau conceptuel A. Optimisation des programmes d’application B. loin d’être une action commerciale ponctuelle. est d’évidence l’orientation future de la diffusion de masse des logiciels.2 Ordonnancement par restructurations algébriques La notion de tuning couvre les techniques permettant de mettre au point les interactions entre la machine et la base de données. la console d’administration graphique d’Oracle a considérablement évolué.

régler la base en exploitant au maximum les ressources matérielles à disposition : mémoire cache et disque. leur fréquence de connexion .1 Les outils de mesures : les vues L’idéal serait que toutes les requêtes puissent s’exécuter en mémoire sans accès au disque. elles sont alimentées par le noyau d’Oracle et commencent par X$. leur type d’activité. analyser la nature des applications : le type de transaction (en interrogation et/ou mise à jour…). Or la taille de la mémoire est limitée.Université CAD de Dakar Page 18 Département Maths-Informatique système d’information : dans la phase de réalisation et de test et dans la phase de production sous forme de maintenance. le tuning consiste à : analyser l’environnement des utilisateurs : nombre maximum et moyen d’utilisateurs connectés simultanément. Dans les deux phases. réaliser des observations et des statistiques sur l’activité de la base . Les statistiques sur l’activité de la base sont stockées dans des tables d’information virtuelles. II. Si un accès disque est nécessaire. . v$rollstat : statistiques sur l’activité des rollback segments. les verrous posées. On peut accéder à des vues contenant les mêmes informations que ces tables . Le tuning de la mémoire consiste donc à réduire au mieux les accès disques. ces vues sont décomposées en deux groupes : les vues contenant des informations en temps réel sur les utilisateurs connectés. etc… : v$process : process connectés v$rollname : nom des rollback segments en utilisation v$session : les sessions d’utilisateurs v$lock : les verrous posés Et les vues contenant des statistiques cumulées depuis le début du démarrage de l’instance : v$rowcache : statistiques sur le dictionnaire de données cache. et les accès disque sont nécessaires. v$filestat : statistiques sur E/S des fichiers base v$waitstat : statistiques sur la contention mémoire (les attentes) v$sysstat : statistiques cumulées pour toutes les sessions v$sesstat : statistiques sur chaque session utilisateur Dr Mbaye SENE 2006/2007 Cours DBA Oracle Maîtrise Informatique . les volumes de données manipulés . il doit se faire au moindre coût : pas d’attente et pas de « navigation » sur le disque .

usage from v$rowcache . Oracle génère des ordres SQL qui vont chercher la définition manquante dans la base de données (recursives calls). Select parameter. La SGA contient deux types de buffers : les buffers de données et de rollback. plus petite est la probabilité d’accéder au disque suite à un ordre SQL. count. • Optimisation de la mémoire pour les opérations de tri Oracle trie les données pour réaliser les ordres SQL qui utilisent : les clauses ORDER BY.2. gets. getmisses. Pour diminuer les contentions sur cette zone. et les opérateurs UNION. et les buffers de redo log. II. • Buffers de Redo log La zone de ces buffers est une zone tampon qui contient des enregistrements qui seront écrits dans le fichier redo log courant.ORA. auquel cas Oracle utilise le segment temporaire sur disque pour stocker les résultats intermédiaires de tri. cette zone peut s ‘avérer trop petite.2. GROUP BY la clause DISTINCT. Avec un grand volume de données.ORA commençant par DC_ Lors d’un ordre SQL.1 Optimisation du dictionnaire cache Le dictionnaire cache est une partie du dictionnaire de données qui est en mémoire et dont la taille est déterminée par les paramètres de INIT.2 Tuning de la mémoire cache II. Pour examiner la valeur cumulée des recursive calls. Plus cette zone est grande. • Buffers de données et de Rollback Le paramètre DB_BLOCK_BUFFERS détermine la taille de la zone de ces buffers. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . la jointure la création d’index (sauf lorsque la colonne indexée est déjà triée et qu’on utilise NOSORT). on peut augmenter cette zone en augmentant le paramètre LOG_BUFFER de INIT.Université CAD de Dakar Page 19 Département Maths-Informatique II. ce qui génère un surplus d’E/S. INTERSECT et MINUS.2 Optimisation des buffers de la SGA On rappelle que la SGA est une zone en mémoire qui est allouée à une instance Oracle à son démarrage. Oracle réalise l’opération de tri dans une zone mémoire allouée au process qui a demandé le tri lorsque le volume de données à trier est faible. si une définition n’est pas en mémoire (cache miss). visualisez v$rowcache.

Assurez vous que l’extension initiale peut contenir tout l’objet pour éviter sa fragmentation sur plusieurs extensions.Université CAD de Dakar Page 20 Département Maths-Informatique Pour augmenter la taille de cette zone en mémoire. Ce paramètre n’est pris en compte que lorsque PCTINCREASE est égal à zéro. Compacter les blocs de données et d’index en réduisant les blocs chaînés : choisir pour cela les valeurs adaptées pour les paramètres PCTFREE et PCTUSED lors de la création d’objets de la base . Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .3 Tuning des E/S disque Les actions de tuning des E/S comprennent : répartir au maximum les données et les index sur tous les disques disponibles . l’administrateur peut modifier le paramètre SORT_AREA_SIZE. Compacter l’étendue des objets en réduisant leur fragmentation sur plusieurs extensions : choisir pour cela les valeurs adaptées pour les paramètres INITIAL. (Valeur par défaut = 1) MAXEXTENTS : spécifie le nombre maximal d’extensions qui seront allouées à un objet à sa création (y compris l’extension initiale). on est certain qu’il y a un surplus d’E/S (on peut le vérifier avec la vue v$sysstat) on est certain que la zone agrandie tienne en mémoire. (Valeur par défaut = 255) PCTINCREASE : est un pourcentage (P) qui permet de calculer la taille (TN) en octets d’une nouvelle extension par rapport à la taille de la dernière extension créée (TD). Il ne peut pas être modifié pour un objet déjà créé. Cette modification peut être envisagée lorsque : on utilise fréquemment le tri dans les applications . II. MINEXTENTS : spécifie le nombre minimal d’extensions qui sont allouées à l’objet à sa création (y compris l’extension initiale). cette extension sera réservée automatiquement pour l’objet à sa création. Séparer les données d’une table de ses index au niveau des disques : ceci réduit aussi la contention et « parallélise » les accès disque pour une requête accédant aux tables et aux index . NEXT et PCTINCREASE Annexe1 Paramètres de stockage INITIAL : spécifie la taille en octets de la première extension de l’objet. NEXT : spécifie la taille en octets de la deuxième extension d’un objet (en dehors de la première). l’idéal serait que chaque tablespace soit sur un disque à part afin d’éviter la contention disque.

MAXTRANS : nombre minimum et maximum de transactions en concurrence sur l’objet.Université CAD de Dakar Page 21 Département Maths-Informatique Formule de calcul : TN=TD + TP x TD (Valeur par défaut = 50%) PCTFREE : spécifie le pourcentage à réserver en tant que zone de débordement dans l’espace utile du bloc. (Valeur par défaut = 40%) . Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . (Valeur par défaut 10%) PCTUSED : spécifie le pourcentage de la place utilisée par les lignes du bloc au dessous duquel un bloc peut de nouveau être utilisé pour insérer de nouvelles lignes. INITRANS.

Lister les rollback segments et leur statut et stocker le résultat dans un fichier rollback. Ecrire une requête SQL générant ce script (le script s’appellera drobtab. ou à partir de show.txt B. Afficher les valeurs des paramètres de la SGA A partir de la vue v$sga. On veut nettoyer une base en détruisant toutes les tables exceptées celles appartenant à SYS et à SYSTEM. les fichiers redo log (v$logfile) et les fichiers de contrôle (v$controlfile) afficher les noms des rollback segment et leur statut (dba_rollback_segs) afficher la liste des tablespaces et des fichiers associés (dba_data_files. II Redirection des résultats dans des fichiers A. Rq : Décrire les tables concernées pour choisir les colonnes à afficher B.ORA Les paramètres d’initialisation sont spécifiés dans un fichier (INIT. Plan d’exécution des requêtes SQL a) Créer une table audit_sql permettant d’enregistrer les plans d’exécution fournis par EXPLAIN PLAN b) Créer une requête permettant d’exploiter le contenu de la table audit_sql c) Utiliser EXPLAIN PLAN pour obtenir le plan d’exécution de la requête donnée en b) IV Example d’un fichier INIT. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . III. Fichiers de la base/rollback segment Afficher les fichiers base (v$datafile).txt.ORA généralement) . Afficher toutes les variables d’environnement. le résultat est stocké dans le fichier var.Université CAD de Dakar Page 22 Département Maths-Informatique TP1 sous Oracle I Constituants de la base et paramètres de la SGA A. dba_tablespaces) I. visualiser les paramètres de la SGA.sql) C.

Système d’exploitation Unix Windows NT Windows 95/98 (Personal Oracle) Localisation $ORACLE_HOME/dbs \orant\dbs \orawin95\dbs # # # Block # Size # -------Installation/Database Size-----SMALL 2K 4K 4500K 5500K MEDIUM 6800K 8800K LARGE 17000K 21000K # replace DEFAULT with your database name db_name=FSTM db_files = 80 # db_files = 400 # db_files = 1000 db_file_multiblock_read_count = 8 # db_file_multiblock_read_count = 16 # db_file_multiblock_read_count = 32 db_block_buffers = 100 # db_block_buffers = 550 # db_block_buffers = 3200 shared_pool_size = 3500000 # shared_pool_size = 5000000 # shared_pool_size = 9000000 log_checkpoint_interval = 10000 processes = 50 # processes = 100 # processes = 200 parallel_max_servers = 5 # parallel_max_servers = 4 x (number of CPUs) # parallel_max_servers = 4 x (number of CPUs) Cours DBA Oracle Maîtrise Informatique # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE Dr Mbaye SENE 2006/2007 .Université CAD de Dakar Page 23 Département Maths-Informatique Ce fichier peut se trouver dans divers endroits suivant les plates-formes sur lesquelles vous avez votre système Oracle.

define how many # rollback segments each instance will pick up. place lines of the following # form in each of your instance-specific init.archive] # log_archive_format = "T%TS%S. transactions_per_rollback_segment = 10 # Global Naming -.enforce that a dblink has same name as the db it connects to III. global_names = TRUE # Edit and uncomment the following line to provide the suffix that will be # appended to the db_name parameter (separated with a dot) and stored as the # global database name when a database is created.ARC" # If using private rollback segments. then the part of your e-mail address after Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .Université CAD de Dakar Page 24 Département Maths-Informatique log_buffer = 8192 # log_buffer = 32768 # log_buffer = 163840 sequence_cache_entries = 10 # sequence_cache_entries = 30 # sequence_cache_entries = 100 sequence_cache_hash_buckets = 10 # sequence_cache_hash_buckets = 23 # sequence_cache_hash_buckets = 89 audit_trail = true timed_statistics = true # if you want auditing # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # SMALL # MEDIUM # LARGE # if you want timed statistics # limit trace file size to 5 Meg each max_dump_file_size = 10240 # Uncommenting the line below will cause automatic archiving if archiving has # been enabled using ALTER DATABASE ARCHIVELOG. If your site uses # Internet Domain names for e-mail. using the formula # of rollback segments = transactions / transactions_per_rollback_segment # In this example each instance will grab 40/10 = 4: transactions = 40 II.ora files: # rollback_segments = (name1. # log_archive_start = true # log_archive_dest = disk$rdbms:[oracle. name2) # If using public rollback segments.

fichier de contrôle • select member from v$controlfile. # every session will write to the named collection. This enables scheduling of server collections # from the Oracle Enterprise Manager Console. dba_tablespaces) Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . fichier redo log (v$logfile) • SQL> select * from v$logfile. oracle_trace_enable = TRUE __________________________________________________________________ Correction TP2 I Constituants de la base et paramètres de la SGA A. SEGMENT_NAME -----------------------------SYSTEM R01 R02 R03 R04 5 rows selected.db_domain # define parallel server (multi-instance) parameters #ifile = ora_system:initps.com # global database name is db_name. status from dba_rollback_segs. # db_domain = us. enabled from v$datafile. if the oracle_trace_collection_name parameter is non-null. afficher les noms des rollback segment et leur status (dba_rollback_segs) • SVRMGR> select segment_name. owner. Fichiers de la base/rollback segment Fichiers base (v$datafile) • SQL> select name.acme. afficher la liste des OWNER --------SYS SYS SYS SYS SYS STATUS ---------------ONLINE ONLINE ONLINE ONLINE ONLINE tablespaces et des fichiers associés (dba_data_files. status. as well as enabling you # to schedule future collections from the console.Université CAD de Dakar Page 25 Département Maths-Informatique # the '@' is a good candidate for this parameter value. IV. ora_control2) # Uncomment the following line if you wish to enable the Oracle Trace product # to trace server activity. # Also.ora # define two control files by default control_files = (ora_control1.

txt • • • • • • • • • • SQL> spool rollback. status from dba_rollback_segs. options char(30). owner.sql) CREATE TABLE audit_sql( statement_id char(30). 4> dba_data_files f 5> where f. Variables dans var. SQL> spool off C. II Redirection des résultats dans des fichiers Rollback segments dans rollback.' || table_name || '/' from dba_tables where owner not in ('SYS'.txt SQL> spool var. Nettoyage de la base SQL> set heading off SQL> spool droptab. remarks char(80). B Paramètres de la SGA A partir de la vue v$sga.file_name fichier 3> from dba_tablespaces t.tablespace_name tablespace.tablespace_name=t. operation char(30). Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . timestamp date. visualiser les paramètres de la base • • SVRMGR> show sga Ou SQL> select * from v$sga.sql SQL> select 'drop table ' || owner || '.txt SQL> Show all SQL> spool off III Plan d’exécution des requêtes SQL a) Création de la table contenant le plan d’exécution (tabaudit. SQL> spool off B.tablespace_name.Université CAD de Dakar Page 26 Département Maths-Informatique • SQL> select t.'SYSTEM').txt SVRMGR> select segment_name. 2> f.

parent_id . object_type char(30).position p FROM audit_sql WHERE statement_id='&val' ORDER BY id. USERNAME. MAX_BYTES FROM dba_ts_quotas WHERE USERNAME in ('MASTER1'. object_owner char(30). BYTES.txt prompt EXAMEN DES PLANS D'EXECUTION DES REQUETES prompt TP Maîtrise Infomartique prompt ****************** prompt prompt Entrer la reference de la requete analysee: accept val prompt "->" col op heading operation format a23 col objn heading "table|/index" format a25 col obi heading "nu. 'MOUSSA') ORDER BY USERNAME. b) Exemple de requête dont le plan est stocké dans la table audit_sql (explreq. c) affichage de certaines colonnes décrivant le plan (myaudit. parent_id number.Université CAD de Dakar Page 27 Département Maths-Informatique object_node char(30). 'LICPRO1'.object_name ||' '|| object_type objn . position number. object_name char(30).'MAITRISE2'. spool off Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . search_columns number. id number.|objet" format 99990 col id format 99 col pid heading p_id format 9990 col p heading ordre format 99990 SELECT operation ||' '|| options op .id .sql) SET ECHO OFF SET VER OFF spool resultat. V.sql) EXPLAIN PLAN SET STATEMENT_ID='1' INTO audit_sql FOR SELECT TABLESPACE_NAME. object_instance number. other long ).object_instance obi .

Université CAD de Dakar Page 28 Département Maths-Informatique Remarque : .On peut aussi regrouper le b) et le c) dans un même script .Consulter le fichier resultat.txt Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .

log connect internal startup nomount pfile=c:\orant\database\initDB1. Ce fichier contient tous les paramètres ainsi que leurs valeurs (nom de la base.ORA) est nécessaire pour créer une base sous Oracle.ora REM * create databse "DB1" maxinstances 2 maxlogfiles 32 maxdatafiles 1000 datafile 'c:\orant\oradata\DB1\system01. 'c:\orant\oradat\DB1\log02.fichier2]…] [datafiles fichierA [. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 (positionne le fonctionnement en mode archivage| non .dbf' size 1024K logfile 'c:\orant\oradat\DB1\log01.log ' size 512K. le nom du domaine etc…) I. il faut deux étapes : installer le logiciel Oracle Créer la base avec la commande create database..log ' size 512K. Syntaxe de la commande create databse: create database NomBaseDeDonnees [controlfile reuse] BD) [logfile fichier1 [.log ' size 512K.fichierB]…] [maxlogfiles valeur] [maxdatafiles valeur] (définit les fichiers de reprise « rdo log file) (définit les fichiers bases) (le nombre maximum de fichiers de reprise) (le nombre max de fichiers de données) (lors d’une suppreesion suivie d’une création d’une [maxinstances valeur] (le nombre max d’instances pouvant accéder simultanément à la base) [archivelog | noarchivelog] archivage) Exemple de fichier complet (sous 8i) REM *Script de création d'une base de donnees spool c:\orant\oradata\DB1\logInstall. la liste des fichiers de contrôle. 'c:\orant\oradat\DB1\log03. Création/démarrage d’une base de donnée La préparation d’un fichier d’initialisation (en général initNOMBASE. nom de l’instance.1 Création d’une base de donné Pour créer une base.Université CAD de Dakar Page 29 Département Maths-Informatique DEUXIEME PARTIE I.

create tablespace TOOLS datafile 'c:\orant\oradata\DB1\tools01..\admin\catalog. create tablespace ROLLBACK datafile 'c:\orant\oradata\DB1\rbs01.dbf' size 10M default sorage ( initial 50K next 50K maxextents UNLIMITED pctincrease 0 )..sql Page 30 Département Maths-Informatique create rollback segment SYSROLL tablespace system storage (initial 25K next 25K minextents 2 maxextents 99).Université CAD de Dakar REM * Dictionnaire de donnees @c:\orant\.sql REM * Procedural components @c:\orant\. create rollback segment RBS02 tablespace ROLLBACK storage (initial 500K next 500K minextents 2).dbf' size 10M default sorage ( initial 100K next 100K maxextents UNLIMITED pctincrease 0 ). create tablespace TEMP datafile 'c:\orant\oradata\DB1\temp01.dbf' size 10M default sorage ( Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .. alter rollback segment RBS02 online. alter rollback segment SYSROLL offline.. create rollback segment RBS01 tablespace ROLLBACK storage (initial 500K next 500K minextents 2). create rollback segment RBS03 tablespace ROLLBACK storage (initial 500K next 500K minextents 2). alter rollback segment RBS01 online. create tablespace DATA datafile 'c:\orant\oradata\DB1\data01.. alter rollback segment SYSROLL online.dbf' size 10M default sorage ( initial 200K next 200K pctincrease 0 minextents 2 ). alter rollback segment RBS03 online..\admin\catproc.

.. REM Oracle supplied scripts @c:\orant\.Université CAD de Dakar initial 300K next 300K maxextents UNLIMITED pctincrease 0 )...2.3 SQLDBA> ALTER DATABASE nom_base OPEN Arrêt de la base La fermeture s’effectue en trois étapes : 1. alter user system default tablespace TOOLS temporary tablespace TEMP. Exemple : SQLDBA> CONNECT INTERNAL SQLDBA> ALTER DATABASE nom_base MOUNT 3.\admin\dbmspool..plb REM * vues du DBA connect system/manager @c:\orant\. Détachement de la base de l’instance 3... Démarrage de la base La mise en œuvre d’une base de données s’effectue en 3 étapes par utilisation des commande STARTUP et ALTER DATABASE sous DBA. Et qui peuvent effectuer des opérations de maintenance telles que renommer les fichiers de la base ou gérer les fichiers de reprise.sql @c:\orant\.sql spool off exit I.. démarrer l’instance (initialisation de l’environnement de la BD en allouant les ressources) : la base est dans l’état démarré non montée (NOMOUNT).\admin\prvtpool.sql @c:\orant\.\admin\catexp.. Exemple : SQLDBA> STARTUP NOMOUNT 2. Déconnexion des utilisateurs de la base 2.. 1.. le démarrage de la base qui consiste à associer une base à l’instance créée à l’étape 1.\admin\catdbsyn. La base est accessible en mode INTERNAL par les utilisateurs qui ont les privilèges d’administration. Ouverture de la base pour rendre ses données accessibles aux utilisateurs. Arrêt de l’instance Pour arrêter une base utiliser l’ordre : SHUTDOWN [option] Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .. Page 31 Département Maths-Informatique alter user sys temporary tablespace TEMP. La base est à l’état ouvert OPEN. Exemple : I.

qui sont alors avortées.Université CAD de Dakar Page 32 Département Maths-Informatique Où option peut prendre les valeurs : NORMAL : aucune nouvelle connexion permise.CTL).4 Ajout de fichiers.1 Ajout d’un fichier de contrôle Pour ajouter un fichier de contrôle (par exemple CONTROLE04. terminaison normale des transactions et arrêt lorsque le dernier utilisateur se déconnecte IMMEDIATE : arrêt immédiat sans attente de la fin des transactions en cours. ABORT : arrêt immédiat sans détachement de la base ni déconnexion préalable des utilisateurs. il faut suivre la procédure suivante : • • arrêter l’instance copier avec l’OS un fichier de contrôle existant et le renommant sous le nom de CONTROLE04.CTL Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .4. C’est un mode de fermeture rapide mais nécessitant une reprise lors du redémarrage de la base Exercice : Créer la base de donnée s COMDB suivant : I. de tablespaces dans la base I.

ora’ to groupe Numero_groupe I.4.ora) il suffit de lancer l’ordre alter tablespace Nom_tablespace add datafile ‘Chemin_complet\user05.4. on suit les étapes suivantes : • • • • • • • arrêter l’instance démarrer la base en mode mount lancer la commande Vérifier l’état du fichier ajouté avec select * from v$logfile Rendre la base ouverte Lancer autant de fois que c’est nécessaire l’ordre alter system switch logfile Vérifier encore l’état du fichier log ajouté.Université CAD de Dakar Page 33 Département Maths-Informatique • • ajouter dans le paramètre control_files du fihier d’initialisation ce nouveau fichier de contrôle puis enregistrer. I.ora’ size taille_init K|M alter database add logfile member ‘Chemin_complet_du_fichier\log4. on utilise la commande suivante suivante : CREATE USER nom_utilisateur IDENTIFIED BY mot_de_passe [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [QUOTA [nombre | UNLIMITED] ON nom_tablespace] (limitation ou non d’espace) Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .2 Ajout d’un fichier log Pour ajouter un fichier de log (par exemple log4. I. Démarrer la base avec startup.1 Création Pour créer un utilisateur.ORA).4 Ajout d’un tablespace Pour ajouter un tablespace (par exemple DEV) il suffit de lancer la commande : create tablespace DEV datafile ‘Chemin_complet\Nom_fichier’ size taille_init default storage (initial valeur K|M next valeur K|M pctincrease valeur minextents valeur maxextents valeur|unlimited) II Gestion des utilisateurs II.3 Ajout d’un fichier base dans un tablespace Pour ajouter un fichier base (par exemple user05.4.

créer ses tables ? Si oui essayer de vous connecter sous toto et créer une table T (nom char(20)) sinon dites pourquoi. faites la modification. 4. Créer un utilisateur toto (avec comme mot de passe toto) sans le rattacher à un tablespace et vérifier par la table dba_users si l’utilisateur toto existe bien. utilisez ALTER USER nom_utilisateur IDENTIFIED BY mot_de_passe [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [PASSWORD EXPIRE] (demande le changement du mot de passe) [ACCOUNT {LOCK | UNLOCK}] (Compte bloqué | non bloqué) II. L’utilisateur toto peut se connecter. III Contrôle des accès Ce contrôle comporte plusieurs niveaux : Gestion des accès à la base de données Gestion des accès aux données de la base Limitation des ressources accessibles aux utilisateurs Attribution d’accès par défaut Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .Université CAD de Dakar Page 34 Département Maths-Informatique [PASSWORD EXPIRE] (demande le changement du mot de passe) [ACCOUNT {LOCK | UNLOCK}] (Compte bloqué | non bloqué) II. Le nouveau mot de passe de toto est maitrise. l’utilisateur n’est pas supprimé s’il possède des objets. 2. A quel tablespace le système associe l’utilisateur toto (examiner la vue dba_users) 3. Atelier 1 1. 5. Lister l’ensemble des tablespaces et choisir users comme tablespace par défaut et temp comme tablespace temporaire.2 Modification Pour modifier un utilisateur.3 Suppression La suppression d’un utilisateur s’effectue par l’ordre : DROP USER schéma [CASCADE] Sans l’option CASCADE.

Un privilège est le droit attribué à un utilisateur d’exécuter un ensemble particulier d’ordres SQL ou d’accéder à certains objets de la base. modification.Privilège niveau système |rôle}]… FROM {nom utilisateur | rôle | PUBLIC}[. Il faut noter que le privilège peut être attribué soit directement à un utilisateur soit à un rôle. chaque USER est défini par son nom. il peut être au niveau système (autorisation d’effectuer une action particulière) ou au niveau objet (autorisation donnée par le créateur de l’objet à un autre utilisateur).Privilège niveau système |rôle}]… TO {nom utilisateur | rôle | PUBLIC}[. A la création de la base. deux utilisateurs sont créés : SYSTEM (qui permet de créer les autres USER) et SYS qui est propriétaire de la majorité des tables du dictionnaire ainsi que des vues crées sur ces tables. son mot de passe. un ensemble de privilèges et profil.nom utilisateur | rôle | PUBLIC]… Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . Un rôle est un groupement de privilèges qui peut être attribué Cinq rôles sont définis dans Oracle8 : CONNECT : l’utilisateur peut se connecter à la base de données et manipuler les objets de la base pour lesquels ils ont préalablement eu un droit de manipulation (lecture.Université CAD de Dakar Page 35 Département Maths-Informatique L’accès à la base s’effectue par l’intermédiaire de la notion d’utilisateur (compte oracle) . fonctions et déclencheurs. III. insertion. DBA : l’utilisateur possède tous les privilèges système nécessaires à l’administrateur de la base de données EXP_FULL_DATABASE : l’utilisateur peut exporter la base de données IMPORT_FULL_DATABASE: l’utilisateur peut importer la base de données procédures.1 Gestion des privilèges systèmes A Création GRANT {Privilège niveau système | rôle}[. index. suppression) RESOURCE : l’utilisateur peut créer ses propres tables. Suppression REVOKE {Privilège niveau système | rôle}[. B.nom utilisateur | rôle | PUBLIC]… [WITH ADMIN OPTION] (autorise la transmission du privilège) PUBLIC désigne tous les utilisateurs.

Quelques privilèges objets SELECT [(col. une vue. une procédure.. Quelques privilèges systèmes ALTER ANY TABLE ALTER DATABASE ALTER SESSION DROP ANY TABLE SELECT ANY TABLE DELETE ANY TABLE LOCK ANY TABLE CREATE ANY SYNONYM ALTER TABLESPACE III.Université CAD de Dakar Page 36 Département Maths-Informatique C..Privilège niveau objet ]… ON [schéma. une librairie.Privilège niveau objet] | ALL PRIVILEGES} ON objet FROM {nom utilisateur | rôle | PUBLIC}[.nom utilisateur | rôle | PUBLIC]… [CASCADE CONSTRAINTS] (utilisables avec references) [FORCE] tables) (utilisable avec EXECUTE pour les objets ayant des dépendances sur des C.{nom utilisateur | rôle | PUBLIC]…..)] DELETE EXECUTE (droit d’exécuter une procédure.2 Gestion des privilèges objets A Création GRANT Privilège niveau objet[. une séquence. un package. [WITH GRANT OPTION] (autorise la transmission du privilège) où objet peut être une table. une fonction. un type B.]objet TO {nom utilisateur | rôle | PUBLIC}[. Suppression REVOKE Privilège niveau objet[. une fonction ou package) Dr Mbaye SENE 2006/2007 Cours DBA Oracle Maîtrise Informatique ...)] INSERT UPDATE [(col..

dit AUDIT. le moyen le plus simple est de créer des vues contenant ces colonnes ou lignes. établir des statistiques On distingue deux types d’audit : les audits dits systèmes effectués par le DBA. col4) et l’utilisateur U auquel on veut indire l’accès aux colonnes col3 et col4 : CREATE VIEW VUE_T AS SELECT col1. L’administrateur pourrait être intéressé de savoir le nombre d’utilisateurs connectés durant une période donnée. consiste à garder dans le dictionnaire de données une trace de certaines actions sur la base . col2 FROM T. Audit système Il ne peut être lancé que par le DBA : les connexions et déconnexions à/de la base (AUDIT CONNECT) sont contenus dans la vue DBA_AUDIT_CONNECT Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . III. Soit la table T(col1.Université CAD de Dakar Page 37 Département Maths-Informatique - ALTER READ ALL (tous les droits) Remarque: La confidentialité est la vocation première d’une vue . renforcer la sécurité. les tables accédées. les terminaux à partir desquels il y a eu tentatives de connexions. ainsi pour empêcher à un utilisateur de consulter des colonnes ou des lignes d’une table. les audits effectués par les propriètaires d’objets A. Ce type d’observation.3 Audit de contrôle d’accès Il peut s’avérer intéressant d’observer l’activité de la base en un laps de temps par exemple pour quantifier le nombre de connexions à la base et leur type. GRANT SELECT ON VUE_T TO U. son intérêt se reflète à trois niveaux : étudier la charge de travail. col3. col2.

- les références à des objets non existants (AUDIT NOT EXISTS) ont leur résultats dans la vue DBA_AUDIT_EXISTS - les ordres de création. NO AUDIT ALL arrête toutes les traces d’audit. d’indexage etc en scrutant la vue USER_AUDIT_TRAIL.…. de MAJ.… Les options peuvent être : ALTER. Exemples : AUDIT CONNECT WHENEVER SUCCESFULL connexions et déconnexions réussies AUDIT NOT EXISTS permt de tracer les ordres SQL faisant référebnce à des objets non existants. SELECT. Audit des propriétaires d ‘objets Un utilisateur peut auditer toutes les actions effectuées sur ses tables. (AUDIT DBA) sont visibles dans la vue DBA_AUDIT_DBA. LOCK. Ces vues contiennent essentiellement la date de l’action. INSERT. etc… (AUDIT RESSOURCE) ont leurs résultats dans la vue DBA_AUDIT_RESSOURCE. L’arrêt d’un audit s’effectue par la commande NOAUDIT. de tablespace. REVOKE. de suppression et de modification de tables. NOAUDIT etc. AUDIT CREATE TABLE BY maitriseX: audite tous les ordres create table lancés par l’utilisateur maitriseX AUDIT USER . Audit tous les ordres CREATE USER. le résultat de l’action (succées ou échec). DELETE. le nom de l’objet créé (ordre de création ) etc. GRANT etc. Exemples : AUDIT SELECT. Il peut examiner les actions de lecture. INSERT ON Client BY ACCESS: trace tous les ordres SELECT et INSERT sur la table Client AUDIT ALL ON DEFAULT BY ACCESS : trace toutes les opérations sur toutes les tables qui seront créées Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . AUDIT. option2. le type de l’action. de Rollback segments. il doit lancer : AUDIT option1. ALTER USER ou USER lancés par n’importe quel utilisateur DROP permet de tracer toutes les B. UPDATE. Pour déclencher l’audit. le nom de l’utilisateur.ON table1.Université CAD de Dakar Page 38 Département Maths-Informatique - les ordres GRANT. table2. AUDIT.

Pour chaque base de données sur votre serveur. Ces fichiers doivent être créés sur le serveur dans le répertoire $ORACLE_HOME/network/admin (sous Linux) 1) tnsnames. Dans notre cas.1 Les fichiers de configuration Tous ces fichiers configurent la partie réseau d'Oracle (SQL*Net ou Net8 pour Oracle8). nous décrirons toutes les bases de données que le serveur a monté. Produit . il faut lancer NOAUDIT ALL ON Commande. Lister le profil des utilisateurs en utilisant la vue DBA_USERS 4. le droit de DELETE sur la table Commande avec possibilité de transmission et le droit de INSERT sur la table Produit.Université CAD de Dakar Page 39 Département Maths-Informatique - NOAUDIT ALL ON DEFAULT : Les tables qui seront créées ne seront pas ausitées . Atelier 2 1. accordez le droit de SELECT à toto sur la table Client. - Pour arrêter les audits sur des tables en cours d’audit (par exemple Commande. cet ordre ne concerne pas les tables déjà auditées. Examiner les vues DBA_USERS et DBA_TAB_GRANTS 3. En vous connectant sous maitrisex.ORA identifie les services disponibles depuis la machine. On suppose que vous avez deux comptes oracles sur votre machine : maitraisex et toto. ajouter une section comme ci-dessous: orcl. 2.world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = <NOM LOGIQUE DU SERVEUR ICI ou ADRESSE IP> ) (Port = 1521) ) (ADDRESS = (COMMUNITY = tcp. Produit).ora Le fichier TNSNAMES.world) (PROTOCOL = TCP) (Host = <NOM LOGIQUE DU SERVEUR ICI ou ADRESSE IP> > ) (Port = 1526) ) ) (CONNECT_DATA = (SID = ORCL) Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . Lister les privilèges sur vos tables en utilisant la vue DBA_TAB_GRANTS IV Administration réseau IV.

son adresse. Il contient les sections pour le nom de l'écouteur.3. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . les bases de données desservies par l'écouteur et les paramètres de configuration.Université CAD de Dakar ) ) Page 40 Département Maths-Informatique 2) Le fichier listener. Voici un exemple: # Nom de l'écouteur et les adresses a écouter LISTENER = ( ADDRESS_LIST = (ADDRESS = (PROTOCOL=tcp) (HOST=<INSERT HOST>) (PORT=1521) (COMMUNITY=UK_SUP_TCPIP) ) (ADDRESS = (PROTOCOL=ipc) (KEY=700) (COMMUNITY=UK_SUP_TCPIP) ) ) # Liste des services désservis par l'écouteur SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=orcl) (ORACLE_HOME=/home/oracle/7. La chose la plus importante dans ce fichier est la variable de configuration Timeout des Connexions Mortes.3. Ceci est indépendant du nombre de bases de données ou du nombre d'écouteurs.ora Ce fichier contient la description des services auxquels d'autres machines sont autorisées à se connecter et toutes les configurations nécessaires pour l'écouteur du serveur.0.0) ) ) # Début des paramètres de configuration TRACE_LEVEL_LISTENER=OFF TRACE_FILE_LISTENER = "listener" LOG_FILE_LISTENER = "listener" CONNECT_TIMEOUT_LISTENER = 10 STOP_LISTENER = YES DBA_GROUP = dba 3) Le fichier sqlnet.ora contient la configuration pour le noeud du réseau.ora Le fichier sqlnet.

com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP)) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for SCO System V/386: Version 2. TNSLSNR for SCO System V/386: Version 2. (Avant nous utilisions l'accès direct à la base de données.. Voici une copie de mon fichier sqlnet.0 .168. type "help" for information.0. 0 min.0 . Ceci est très utile si vous avez plusieurs clients qui accèdent à la base de données.ora pour vous servir d'exemple: TRACE_LEVEL_CLIENT = OFF sqlnet.3.log Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192. alors qu'ici nous simulons une connexion depuis une machine cliente distante en environnement Linux: $ lsnrctl (exemple sous Unix) LSNRCTL for SCO System V/386: Version 2.default_zone = world IV. LSNRCTL> start Starting /home/oracle/7.3. Maintenant que la configuration des écouteurs et de SQL*Net est finie.Production System parameter file is /home/oracle/7.Production Start Date 23-FEB-98 20:38:50 Uptime 0 days 0 hr.3.0/bin/tnslsnr: please wait.0/network/log/listener.3.1)(PORT=1521)) Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700)) Connecting (ADDRESS=(PROTOCOL=tcp)(HOST=magic. Welcome to LSNRCTL. All rights reserved.1. names.ora Log messages written to /home/oracle/7.3.2 Lancer et Arrêter les Ecouteurs.3.0. surtout pendant la phase de développement où ces clients ne réussiront certainement pas à sortir proprement de la base de données Oracle.3.3.0. nous pouvons essayer de connecter la base de données en utilisant la partie réseau.Production on 23-FEB-98 20:38:25 Copyright (c) Oracle Corporation 1994. Si le client (de tout type) ne répond pas.0.3.3.0.0 ..3. 0 sec to Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . le processus en tâche de fond du serveur Oracle sera tué.0.3.default_domain = world name.0/network/admin/listener.Université CAD de Dakar Page 41 Département Maths-Informatique Le timeout des connexions mortes vérifie chaque processus entrant à la base de données et assure que le côté client répond toujours.expire_time = 30 # le nombre de secondes entre les vérifications des clients.

LSNRCTL> stop Connecting (ADDRESS=(PROTOCOL=tcp)(HOST=magic. Soyez patient. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .ora Listener Log File /home/oracle/7. type "help" for information.1 Concept de database link 1) Syntaxe de create database link: CREATE PUBLIC DATABSE LINK NomDB_Link CONNECT TO USER IDENTIFIED BY PASSWD – USING ‘string’ 2) Syntaxe de create synonym CREATE SYNONYM Nom_synonym FOR NomTable@NomDB_LINK.0.3. Ms Word.. V Gestion des objets dans une base répartie V.. orcl has 1 service handler(s) The command completed successfully LSNRCTL> exit Pour arrêter les écouteurs: $ lsnrctl LSNRCTL for SCO System V/386: Version 2. Si c'est le cas .3. ne vous inquiétez pas. (23 mins. Welcome to LSNRCTL. dépendant de la variable timeout du DNS).3.3.Université CAD de Dakar Page 42 Département Maths-Informatique Trace Level off Security OFF SNMP ON Listener Parameter File /home/oracle/7.0 .0/network/admin/listener.3. All rights reserved.log Services Summary.0. IV.0.3. Ms Excel etc).Production on 23-FEB-98 20:43:20 Copyright (c) Oracle Corporation 1994.3 Accès à la base de données via ODBC Le midleware ODBC est utilisée par plusieurs logiciels tiers sous Windows pour accéder à une base Oracle (Application développée en C.0/network/log/listener. le lancement et l'arrêt de l'écouteur prendront donc in certain temps.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP)) The command completed successfully LSNRCTL> exit to Si vous avez une configuration DNS qui ne retourne pas l'adresse IP pour le nom logique specifié.

il se peut que pour des raisons diverses (rupture de ligne de communication.) des données soient momentanément inaccessibles aux utilisateurs. On veut créer des fragments sur la base fst en utilisant le partitionnement vertical de la table client (provenant de la base fstm) comme suit : Client_fg1 (numcl. nomcl. TP1 : Configuration de NET8 1. Connexion sur une base distante. pays) . 4. Connectez vous sur la base distante fst et copiez la totalité de la table client dans fst en utilisant la méthode de COPY.Université CAD de Dakar Page 43 Département Maths-Informatique L’utilisateur peut lancer une requête SQL sans donner la référence complète de la table. age) V. Utilisez COPY pour le faire 5 L’utilisateur master1p1 veut créer un fragment ayant pour schéma Client_fg1 (numcl. il vous est possible de répliquer les données d'une base en créant un cliché (SNPASHOT). Configuration de l’accès distant avec SQL NET EASY CONFIGURATION 2. adressecl. 2 méthodes . Connectez vous sur la base distante fstm et faites quelques insertions de tuples dans les tables créées? 2. Cette technique permet : Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .2 Méthodes des copies TP2 : COPY entre deux bases distantes 1. Rappel de la syntaxe de copy COPY FROM user1/passwd2@Base_distante – TO user2/passw2@Base_distante2 – REPLACE | CREATE | APPEND NomTable – USING Requête_SQL. panne d’un site etc.3 Réplication par cliché Dans une base de données répartie. 3.lancer SQL sans argument et remplir convenablement les champs présentés V.lancer : SQL login/passwd@Base_distante . nomcl) Client_fg_2(numcl. Afin de ne pas gêner les éventuels utilisateurs.

ce mode utilise un journal de cliché. Requête : définition du snapshot sous forme de requête SQL. remplacer le cliché ou propager uniquement les modifications. Ces instants sont précisés par le paramètre NEXT de la commande CREATE SNAP SHOT (dans l'exemple. Paramètre de stockage : Voir paramètres de stockage de l’ordre de création des tables . tout les jours). Avec: FAST : mode de rafraîchissement rapide des lignes modifiées uniquement sur la base distante . mais à des intervalles précis nommés asynchronous replication. c’est l’option par défaut. START WITH : définit la date de premier rafraîchissement (par défaut de l’exécution de l’ordre) NEXT : définit l’intervalle entre deux rafraîchissements . - de définir une fréquence de rafraîchissement des données de définir le mode de rafraîchissement : compléter le cliché. il s’agit d’une expression de type date. Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . Les snapshot ne sont pas mis à jour régulièrement. sinon effectue un rafraîchissement complet . COMPLETE : mode rafraîchissement complet qui re-exécute la requête du snapshot (pas de journal) FORCE : effectue un rafraîchissement rapide si possible. Syntaxe de création : CREATE SNAPSHOT NomCliche REFRESH FAST | COMPLETE | FORCE START WITH date1 NEXT date2 [parameter de stockage] [FOR UPDATE] AS Requête. - d’utiliser en lecture ou en écriture le cliché de créer une copie comme une requête simple si elle est basée sur une seule table ou complexe si elle fait intervenir plusieurs tables.Université CAD de Dakar Page 44 Département Maths-Informatique - de créer sur une base répartie un cliché d’une table complète ou partielle d’une base maître ou même un cliché du résultat d’une requête complexe effectuée sur le site maître.

Vérifier sur FST si les modifications sont répercutées 4. Faire des mises à jour sur article sur FSTM et vérifier si la vue reflète les mises à jour.2)) . adressecl char(80). A partir de FST.Maîtrise et Licence Pro ---------------------------------. numcom. refart char(10). pour supprimer DROP SNAPSHOT NomCliche Exemple : CREATE SNAPSHOT Cliche_Client REFRESH COMPLETE START WITH sysdate NEXT SYSDATE+1 AS select * from Client@Lien_BD. TP3 : Les clichés sous Oracle 1. nomcl char(20). datecom date. Annexe 2: Script SQL de création de table Base de données exemple Client (numcl number. char(40).TP Oracle (M. vous créerez ici un cliché modifiable. Reprendre les étapes 1. prix number(8. Article (refart char(10). designation char(40). Script de création des tables ----. pays char(40)) . Depot(nomdepot char(40). 2 et 3 mais pour la table commande de FSTM.3)) . créer une vue Article_v de la table article de FSTM. SENE) _ Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .3)) . number. Commande (numcom number. qtecom number(9. numcl number) . . Se connecter sur la base FST et créer le cliché (Client_snap) de la table client qui se trouve sur la base FSTM 2. Stock (numstock number. Ligne_com(numLC number. nbremagasin number) . 5. Faire une mise à jour de la table client sur FSTM 3. qtestock number (9. refart char(10).Université CAD de Dakar Page 45 Département Maths-Informatique FOR UPDATE : Pour un cliché modifiable Pour modifier le snapshot c’est ALTER SNAPSHOT NomCliche …. nomdepot.

CREATE TABLE depot ( nomdepot CHAR(40).2). pays CHAR(40). drop table depot. nombremagasin NUMBER. CONSTRAINT FK_numcl FOREIGN KEY (numcl) REFERENCES client (numcl) ). CONSTRAINT PK_refart PRIMARY KEY (refart) ). CREATE TABLE commande ( numcom NUMBER. drop table commande. drop table client. CONSTRAINT PK_numcl PRIMARY KEY (numcl) ). drop table article. nomcl CHAR(20). datecom DATE. Page 46 Département Maths-Informatique CREATE TABLE client ( numcl NUMBER. drop table stock. adressecl CHAR(80). Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 . CONSTRAINT PK_numcom PRIMARY KEY (numcom). prix NUMBER(8. designation CHAR(40). CREATE TABLE article ( refart CHAR(10). CONSTRAINT PK_nomdepot PRIMARY KEY (nomdepot) ). numcl NUMBER.Université CAD de Dakar -----------------------------------Revision creation de table ---drop table ligne_com.

Cours DBA Oracle Maîtrise Informatique Dr Mbaye SENE 2006/2007 .3). refart CHAR(10). nomdepot CHAR(40). CONSTRAINT FK_numcom FOREIGN KEY (numcom) REFERENCES commande (numcom). CONSTRAINT FK_refartLC FOREIGN KEY (refart) REFERENCES article (refart) ). qtestock NUMBER(9. refart CHAR(10). CONSTRAINT PK_numLC PRIMARY KEY (numLC). numcom NUMBER. CREATE TABLE stock ( numstock NUMBER. CONSTRAINT FK_nomdepot FOREIGN KEY (nomdepot) REFERENCES depot (nomdepot) ). CONSTRAINT FK_refart FOREIGN KEY (refart) REFERENCES article (refart). CONSTRAINT PK_numstock PRIMARY KEY (numstock).3).Université CAD de Dakar Page 47 Département Maths-Informatique CREATE TABLE ligne_com ( numLC NUMBER. qtecom NUMBER(9.

Sign up to vote on this title
UsefulNot useful