Université CAD de Dakar Page Département Maths-Informatique Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007 1 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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
1
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
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
2
TABLE DES MATIERES
Première Partie : Généralités, architecture et Tuni ng
I Architecture du système Oracle (physique et log ique) 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 Architect ure) 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
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
3
I.4 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 (av ancé) 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é)
Oracle Optimal Flexible Architecture (meilleure architecture évolutive), est un ensemble
de convention de nommage et de répartition de fichiers sur les différents disques dur du
serveur. OFA peut être défini comme un ensemble de bonnes habitudes à prendre pour
la création d'une base. 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.
Son objectif est de prévenir tout un ensemble de problèmes qui pourraient survenir en
cas d’utilisation de plusieurs versions d'Oracle, plusieurs bases de données, ou des
bases de données à fort taux d'utilisation. La norme OFA a été réalisée afin d'offrir des
avantages non négligeables, 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. 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. C'est nettement plus simple lorsque les exécutables sont séparés de votre base.
I.4.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. Il permet en outre d'ajouter
simplement des fichiers de données au fur et à mesure que la base prend de
l'ampleur
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
11
• Moins de "bouchons" aux entrées/sorties du disque grâce à la séparation des
fichiers binaires, des fichiers de données, 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, 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,
mais aussi réduire la fragmentation
I.4.5 Configuration recommandée (exemple sous L INUX)
Afin de satisfaire les objectifs, 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. Les fichiers présentant
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
12
des caractéristiques d'utilisation différentes doivent être placés dans des tablespaces
différents.
Au cas où vous ne disposeriez que de trois disques, 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, le DBA se repérera plus facilement au sein des nombreux fichiers possibles en
adoptant la convention de nommage OFA. Comme plusieurs fichiers peuvent exister, un
numéro est rajouté avant l'extension. Par exemple les fichiers de contrôle s'appelleront
control01.ctl, control02.ctl ...
Fichier Nommage
CONTROL01.CTL fichier de contrôle
OEMREP01.DBF fichier de données du tablespace Oracle Enterprise Manager
REPository
SYSTEM01.DBF tablespace système
RBS01.DBF tablespace du RollBack Segment
INDX01.DBF fichier de données du tablespace d'index
TEMP01.DBF fichier de données d'un tablespace temporaire
USERS01.DBF fichier de données d'un tablespace utilisateur
REDO01.LOG fichier redo du groupe 1, membre 1
I.5 Les nouveautés des nouvelles versions par rappo rt à Oracle8i
Par souci de compatibilité avec les versions précédentes, peu de caractéristiques
techniques disparaissent : seuls des ajouts sont effectués ; d’où l’apparition d’une
nouvelle version d’Oracle : Oracle9i.
C’est presque l’intégrité de la gestion interne d’oracle qui a été améliorée avec cette
nouvelle version. Parmi ces nouveautés nous pouvons citer :
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
13
I.5.1 Nouveau mode de gestion des tablespa ces
Pour simplifier et améliorer les performances d’accès aux tablespaces, deux modes de
gestion existent : le mode LOCAL et le mode DICTIONNARY.
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.
L’ancien mode DICTIONNARY centralise l’allocation d’espace dans le dictionnaire de
données de chaque base.
I.5.2 Allocation automatique des segments de stockage
Le mode LOCAL apporte de nombreuses options d’allocations des espaces disque. Les
fastidieuses clauses STORAGE disparaissent au profit d’options comme
AUTOALLOCATE
I.5.3 Les tablespaces temporaires
Oracle effectue de nombreux tris, à la demande des utilisateurs ou pour son
fonctionnement interne. Ils sont principalement effectués dans une zone de tri en
mémoire. Si cette zone s’avère trop petite, un espace disque est réservé à cet effet :
c’est le tablespace temporaire ou TEMPORARY TABLESPACE.
I.5.4 Les tablespaces UNDO ou d’annulatio n
Un tablespace de type Undo est un nouveau tablespace hébergeant les segments
d’annulation, destiné à remplacer les rollbacks segments. C’est dans cet espace
qu’Oracle gère les données en attente de validation ou d’annulation. L’utilisation d’un
tablespace UNDO est beaucoup plus simple que celle de rollbacks segments.
I.5.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. Pour cela on indique au tablespace UNDO une durée de rétention
des informations. Il est aussi possible d’interroger les données de la base de données
telles qu’elles étaient plusieurs heures auparavant.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
14
I.5.6 Réorganisation des objets base ouver te
De nombreux objets peuvent être cependant réorganisés, base ouverte, utilisateur
connecté. La réorganisation en ligne des tables, index et tablespaces augmente ainsi la
disponibilité des bases. Des assistants permettent d’automatiser ces actions.
I.5.7 Extension automatique d’un fichier de données
Auparavant, l’un des problèmes les plus difficiles à résoudre pour les administrateurs,
Oracle était la gestion de la taille des tablespace. Oracle permet l’augmentation
automatique de la taille des fichiers pour tous les types de tablespaces, qu’il soit en
mode gestion local ou dictionnaire.
I.5.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. Les utilisateurs sont multiples : déplacer
l’ensemble des données d’une application d’une base à une autre, créer rapidement un
environnement de test identique à celui de production, transférer les tablespaces d’une
base de production vers une base infocentre 1.
I.5.9 Une base peut comporter plusieurs DB_BLOCK_SI ZE
Une base de données est toujours créée avec un DB_BLOCK_SIZE unique pour le
tablespace SYSTEM. Comme les tablespaces transportables peuvent parvenir de bases
configurées avec des DB_BLOCK_SIZE différents, Oracle accepte maintenant des
tablespaces possédant une valeur différente de celle définie pour son tablespace
SYSTEM. L’utilisation des tablespaces transportables est limitée entre bases Oracle9i.
I.5.10 L’exportation des fichiers redo-log s :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. L’avantage de Log Miner est que rien ne doit être prévu a priori, tout est
analysé a posteriori.
I.5.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, gestion interne, etc.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
15
Oracle9i permet aussi la gestion de l’ensemble des fichiers composant la base, y
compris leurs création, suppression, nom, etc. 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.
I.5.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.
I.5.13 Gestion des fichiers d’initialisation
Historiquement, toutes les versions d’Oracle ont utilisé un simple fichier texte pour y
conserver les paramètres d’initialisation. Avec Oracle9i, ces valeurs peuvent maintenant
être gérées automatiquement dans un fichier binaire persistant.
I.5.14 Valeurs dynamiques du fichier d’ini tialisation
De plus en plus de paramètres d’initialisation sont modifiables dynamiquement, ce qui
signifie que leur modification est immédiatement prise en compte, sans nécessiter l’arrêt
puis le démarrage de la base.
I.5.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. Le paramètre dynamique DB_CACHE_SIZE remplace l’ancien
DB_BLOCK_BUFFER qui était statique.
I.5.16 Nouvelle syntaxe pour démarrer une instance
Une nouvelle syntaxe est utilisée pour créer, démarrer et arrêter une instance. Elle
s’effectue à partir de SQL*Plus qui devient l’interface privilégiée de la création d’une
base.
• sqlplus /nolog
• connect system/manager as sysdba
• startup pfile=c:\repertoire\init.ora
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
16
I.5.17 Disparition du CONNECT INSTERNAL
Il n’est plus possible d’utiliser un CONNECT INTERNAL pour une base. Les privilèges
SYSOPER et SYSDBA qui existent de puis plusieurs versions le remplacent
Pour démarrer une base de données en mode client serveur ou à partir d’oracle
Entreprise Manager, Oracle recommande l’utilisation d’un fichier mot de passe. Il
autorise les utilisateurs possédant les privilèges SYSOPER et SYSDBA à administrer
une base à distance.
I.5.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.5.20 Nouvelle version D’oracle9i Portal
Oracle Portal est le successeur d’Oracle WebDB. Il apporte de nombreuses possibilités
supplémentaires.
I.5.21 Les outils et assistants
Pour exploiter les nouvelles possibilités d’Oracle, de nombreux assistants sont apparus.
Ils facilitent les actions de configuration et d’administration.
I.5.22 Créer une base Oracle9i
Le logiciel DBCA (Oracle Database Configuration Assistant) offre une interface
graphique conviviale pour guider. Cet utilitaire réclamé par tous les administrateurs
Oracle depuis des années est disponible depuis Oracle8. 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.
I.5.23 Paramétrer Oracle Net :
Oracle Net correspond à l’ancien SQL*Net ou Net8. L’assistant NETCA (Oracle Net
Configuration Assistant) permet de créer rapdiment une configuration client-serveur
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
17
opérationnelle. L’assistant NETMGR (Oracle Net Manager) accède à toutes les
possibilités de paramétrage d’Oracle Net.
I.5.24 Administrer votre environnement Ora cle
Oracle Entreprise Manager, la console d’administration graphique d’Oracle a
considérablement évolué. Elle possède de nombreuses possibilités nouvelles que je
vous conseille d’exploiter.
Oracle a effectué depuis quelques années une percée remarquée dans le domaine du
groupe de travail, 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. 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, ce qui permet de
convertir simplement la licence de prêt en licence achetée. Cette tendance, loin d’être
une action commerciale ponctuelle, est d’évidence l’orientation future de la diffusion de
masse des logiciels. Il faut occuper le terrain par l’installation d’une version de prêt, de
sorte qu’un concurrent ne puisse venir occuper cette place.
II Tuning d’une base de données
NB : Les parties A et B doivent être traitées dans le cours de BD A. Optimisation au niveau conceptuel A.1 Indexation sous Oracle A.2 Choix des clusters A.3 Redondance calculée A.4 Partitionnement des tables A.5 Choix des paramètres de stockage TP : Indexation B. Optimisation des programmes d’application B.1 Règles de l’optimiseur B.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, afin d’optimiser au mieux les performances en
terme de temps de réponse. Le tuning intervient dans deux phases du cycle de vie d’un
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
18
système d’information : dans la phase de réalisation et de test et dans la phase de
production sous forme de maintenance.
Dans les deux phases, le tuning consiste à :
- analyser l’environnement des utilisateurs : nombre maximum et moyen d’utilisateurs
connectés simultanément, leur type d’activité, leur fréquence de connexion ;
- analyser la nature des applications : le type de transaction (en interrogation et/ou
mise à jour…), les volumes de données manipulés ;
- réaliser des observations et des statistiques sur l’activité de la base ;
- régler la base en exploitant au maximum les ressources matérielles à disposition :
mémoire cache et disque.
II.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. Or la taille de la mémoire est limitée, et les accès disque sont nécessaires. Le
tuning de la mémoire consiste donc à réduire au mieux les accès disques.
Si un accès disque est nécessaire, il doit se faire au moindre coût : pas d’attente et pas
de « navigation » sur le disque .
Les statistiques sur l’activité de la base sont stockées dans des tables d’information
virtuelles, ; elles sont alimentées par le noyau d’Oracle et commencent par X$.
On peut accéder à des vues contenant les mêmes informations que ces tables ; ces
vues sont décomposées en deux groupes : les vues contenant des informations en
temps réel sur les utilisateurs connectés, les verrous posées, 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,
- v$rollstat : statistiques sur l’activité des rollback segments,
- 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
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
19
II.2 Tuning de la mémoire cache
II.2.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.ORA commençant par DC_ Lors
d’un ordre SQL, si une définition n’est pas en mémoire (cache miss), Oracle génère des
ordres SQL qui vont chercher la définition manquante dans la base de données
(recursives calls).
Pour examiner la valeur cumulée des recursive calls, visualisez v$rowcache.
Select parameter, gets, getmisses, count, usage from v$rowcache ;
II.2.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. La SGA contient deux types de buffers : les buffers de données et de
rollback, et les buffers de redo log.
•••• Buffers de données et de Rollback
Le paramètre DB_BLOCK_BUFFERS détermine la taille de la zone de ces buffers. Plus
cette zone est grande, plus petite est la probabilité d’accéder au disque suite à un ordre
SQL.
•••• 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. Pour diminuer les contentions sur cette zone, on
peut augmenter cette zone en augmentant le paramètre LOG_BUFFER de INIT.ORA.
•••• 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, GROUP BY
- la clause DISTINCT, la jointure
- la création d’index (sauf lorsque la colonne indexée est déjà triée et qu’on utilise
NOSORT), et
- les opérateurs UNION, INTERSECT et MINUS.
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. Avec un grand volume de
données, cette zone peut s ‘avérer trop petite, auquel cas Oracle utilise le segment
temporaire sur disque pour stocker les résultats intermédiaires de tri, ce qui génère un
surplus d’E/S.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
20
Pour augmenter la taille de cette zone en mémoire, l’administrateur peut modifier le
paramètre SORT_AREA_SIZE .
Cette modification peut être envisagée lorsque :
- on utilise fréquemment le tri dans les applications ;
- 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.
II.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’idéal serait que chaque tablespace soit sur un disque à part afin d’éviter la
contention disque.
- 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 ;
- 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 ;
- 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,
NEXT et PCTINCREASE
Annexe1
Paramètres de stockage
INITIAL : spécifie la taille en octets de la première extension de l’objet, cette extension sera
réservée automatiquement pour l’objet à sa création. Assurez vous que l’extension initiale peut
contenir tout l’objet pour éviter sa fragmentation sur plusieurs extensions.
NEXT : spécifie la taille en octets de la deuxième extension d’un objet (en dehors de la
première). Ce paramètre n’est pris en compte que lorsque PCTINCREASE est égal à zéro.
MINEXTENTS : spécifie le nombre minimal d’extensions qui sont allouées à l’objet à sa création
(y compris l’extension initiale). Il ne peut pas être modifié pour un objet déjà créé. (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). (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).
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
21
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 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.
(Valeur par défaut = 40%) .
INITRANS, MAXTRANS : nombre minimum et maximum de transactions en concurrence sur
l’objet.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
22
TP1 sous Oracle
I Constituants de la base et paramètres de la SGA A. Fichiers de la base/rollback segment
- Afficher les fichiers base (v$datafile), 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,
dba_tablespaces)
I. Rq : Décrire les tables concernées pour choisir les colonnes à afficher
B. Afficher les valeurs des paramètres de la SGA
A partir de la vue v$sga , ou à partir de show , visualiser les paramètres de la SGA.
II Redirection des résultats dans des fichiers
A. Lister les rollback segments et leur statut et stocker le résultat dans un fichier
rollback.txt
B. On veut nettoyer une base en détruisant toutes les tables exceptées celles
appartenant à
SYS et à SYSTEM. Ecrire une requête SQL générant ce script (le script s’appellera
drobtab.sql)
C. Afficher toutes les variables d’environnement, le résultat est stocké dans le fichier
var.txt.
III. 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.ORA
Les paramètres d’initialisation sont spécifiés dans un fichier (INIT.ORA généralement) ;
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
23
Ce fichier peut se trouver dans divers endroits suivant les plates-formes sur lesquelles
vous avez votre système Oracle.
Système d’exploitation Localisation
Unix $ORACLE_HOME/dbs
Windows NT \orant\dbs
Windows 95/98 (Personal Oracle) \orawin95\dbs
# -------Installation/Database Size------
# SMALL MEDIUM LARGE
# Block 2K 4500K 6800K 17000K
# Size 4K 5500K 8800K 21000K
#
# replace DEFAULT with your database name
db_name =FSTM
db_files = 80 # SMALL
# db_files = 400 # MEDIUM
# db_files = 1000 # LARGE
db_file_multiblock_read_count = 8 # SMALL
# db_file_multiblock_read_count = 16 # MEDIUM
# db_file_multiblock_read_count = 32 # LARGE
db_block_buffers = 100 # SMALL
# db_block_buffers = 550 # MEDIUM
# db_block_buffers = 3200 # LARGE
shared_pool_size = 3500000 # SMALL
# shared_pool_size = 5000000 # MEDIUM
# shared_pool_size = 9000000 # LARGE
log_checkpoint_interval = 10000
processes = 50 # SMALL
# processes = 100 # MEDIUM
# processes = 200 # LARGE
parallel_max_servers = 5 # SMALL
# parallel_max_servers = 4 x (number of CPUs) # MEDIUM
# parallel_max_servers = 4 x (number of CPUs) # LARGE
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
24
log_buffer = 8192 # SMALL
# log_buffer = 32768 # MEDIUM
# log_buffer = 163840 # LARGE
sequence_cache_entries = 10 # SMALL
# sequence_cache_entries = 30 # MEDIUM
# sequence_cache_entries = 100 # LARGE
sequence_cache_hash_buckets = 10 # SMALL
# sequence_cache_hash_buckets = 23 # MEDIUM
# sequence_cache_hash_buckets = 89 # LARGE
audit_trail = true # if you want auditing
timed_statistics = true # if you want timed statistics
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
# Uncommenting the line below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
# log_archive_start = true
# log_archive_dest = disk$rdbms:[oracle.archive]
# log_archive_format = "T%TS%S.ARC"
# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
# rollback_segments = (name1, name2)
# If using public rollback segments, define how many
# rollback segments each instance will pick up, using the formula
# of rollback segments = transactions / transactions_per_rollback_segment
# In this example each instance will grab 40/10 = 4:
transactions = 40
II. 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. If your site uses
# Internet Domain names for e-mail, then the part of your e-mail address after
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
25
# the '@' is a good candidate for this parameter value.
# db_domain = us.acme.com # global database name is db_name.db_domain
# define parallel server (multi-instance) parameters
#ifile = ora_system:initps.ora
# define two control files by default
control_files = (ora_control1, ora_control2)
# Uncomment the following line if you wish to enable the Oracle Trace product
# to trace server activity. This enables scheduling of server collections
# from the Oracle Enterprise Manager Console.
# Also, if the oracle_trace_collection_name parameter is non-null,
# every session will write to the named collection, as well as enabling you
# to schedule future collections from the console.
IV. oracle_trace_enable = TRUE
__________________________________________________________________ Correction TP2 I Constituants de la base et paramètres de la SGA
A. Fichiers de la base/rollback segment Fichiers base (v$datafile) • SQL> select name, status, enabled from v$datafile; fichier redo log (v$logfile) • SQL> select * from v$logfile; fichier de contrôle • select member from v$controlfile; afficher les noms des rollback segment et leur status (dba_rollback_segs) • SVRMGR> select segment_name, owner, status from dba_rollback_segs; SEGMENT_NAME OWNER STATUS ------------------------------ --------- ---------------- SYSTEM SYS ONLINE R01 SYS ONLINE R02 SYS ONLINE R03 SYS ONLINE R04 SYS ONLINE 5 rows selected.
afficher la liste des tablespaces et des fichiers associés (dba_data_files,
dba_tablespaces)
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
26
• SQL> select t.tablespace_name tablespace,
2> f.file_name fichier
3> from dba_tablespaces t,
4> dba_data_files f
5> where f.tablespace_name=t.tablespace_name;
B Paramètres de la SGA
A partir de la vue v$sga , visualiser les paramètres de la base
• SVRMGR> show sga
Ou • SQL> select * from v$sga; II Redirection des résultats dans des fichiers Rollback segments dans rollback.txt
• SQL> spool rollback.txt
• SVRMGR> select segment_name, owner, status from dba_rollback_segs; • SQL> spool off
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
27
object_node char(30), object_owner char(30), object_name char(30), object_instance number, object_type char(30), search_columns number, id number, parent_id number, position number, other long ); b) Exemple de requête dont le plan est stocké dans la table audit_sql (explreq.sql ) EXPLAIN PLAN SET STATEMENT_ID='1' INTO audit_sql FOR SELECT TABLESPACE_NAME, USERNAME, BYTES, MAX_BYTES FROM dba_ts_quotas WHERE USERNAME in ('MASTER1','MAITRISE2', 'LICPRO1', 'MOUSSA') ORDER BY USERNAME;
c) affichage de certaines colonnes décrivant le pla n (myaudit.sql )
SET ECHO OFF SET VER OFF spool resultat.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.|objet" format 99990 col id format 99 col pid heading p_id format 9990 col p heading ordre format 99990 SELECT operation ||' '|| options op ,object_name ||' '|| object_type objn ,object_instance obi ,id ,parent_id ,position p FROM audit_sql WHERE statement_id='&val' ORDER BY id; V. spool off
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
28
Remarque : - On peut aussi regrouper le b) et le c) dans un même script
- Consulter le fichier resultat.txt
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
29
DEUXIEME PARTIE
I. Création/démarrage d’une base de donnée
La préparation d’un fichier d’initialisation (en général initNOMBASE.ORA) est
nécessaire pour créer une base sous Oracle. Ce fichier contient tous les paramètres
ainsi que leurs valeurs (nom de la base, nom de l’instance, la liste des fichiers de
contrôle, le nom du domaine etc…)
I.1 Création d’une base de donné
Pour créer une base, il faut deux étapes :
- installer le logiciel Oracle
- Créer la base avec la commande create database.
Syntaxe de la commande create databse:
create database NomBaseDeDonnees
[controlfile reuse] (lors d’une suppreesion suivie d’une création d’une
BD)
[logfile fichier1 [,fichier2]…] (définit les fichiers de reprise « rdo log file)
[datafiles fichierA [,fichierB]…] (définit les fichiers bases)
[maxlogfiles valeur] (le nombre maximum de fichiers de reprise)
[maxdatafiles valeur] (le nombre max de fichiers de données)
[maxinstances valeur] (le nombre max d’instances pouvant accéder simultanément à la
base)
[archivelog | noarchivelog] (positionne le fonctionnement en mode archivage| non
archivage)
Exemple de fichier complet (sous 8i)
REM *Script de création d'une base de donnees spool c:\orant\oradata\DB1\logInstall.log connect internal startup nomount pfile=c:\orant\database\initDB1.ora REM * create databse "DB1" maxinstances 2 maxlogfiles 32 maxdatafiles 1000 datafile 'c:\orant\oradata\DB1\system01..dbf' size 1024K logfile 'c:\orant\oradat\DB1\log01.log ' size 512K, 'c:\orant\oradat\DB1\log02.log ' size 512K, 'c:\orant\oradat\DB1\log03.log ' size 512K;
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
30
REM * Dictionnaire de donnees @c:\orant\....\admin\catalog.sql REM * Procedural components @c:\orant\....\admin\catproc.sql create rollback segment SYSROLL tablespace system storage (initial 25K next 25K minextents 2 maxextents 99); alter rollback segment SYSROLL online; create tablespace ROLLBACK datafile 'c:\orant\oradata\DB1\rbs01.dbf' size 10M default sorage ( initial 200K next 200K pctincrease 0 minextents 2 ); create rollback segment RBS01 tablespace ROLLBACK storage (initial 500K next 500K minextents 2); create rollback segment RBS02 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; alter rollback segment RBS02 online; alter rollback segment RBS03 online; alter rollback segment SYSROLL offline; create tablespace TEMP datafile 'c:\orant\oradata\DB1\temp01.dbf' size 10M default sorage ( initial 100K next 100K maxextents UNLIMITED pctincrease 0 ); create tablespace TOOLS datafile 'c:\orant\oradata\DB1\tools01.dbf' size 10M default sorage ( initial 50K next 50K maxextents UNLIMITED pctincrease 0 ); create tablespace DATA datafile 'c:\orant\oradata\DB1\data01.dbf' size 10M default sorage (
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
31
initial 300K next 300K maxextents UNLIMITED pctincrease 0 ); alter user sys temporary tablespace TEMP; alter user system default tablespace TOOLS temporary tablespace TEMP; REM Oracle supplied scripts @c:\orant\....\admin\catexp.sql @c:\orant\....\admin\dbmspool.sql @c:\orant\....\admin\prvtpool.plb REM * vues du DBA connect system/manager @c:\orant\....\admin\catdbsyn.sql spool off exit
I.2. 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.
1. 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).
Exemple : SQLDBA> STARTUP NOMOUNT
2. le démarrage de la base qui consiste à associer une base à l’instance créée à
l’étape 1. La base est accessible en mode INTERNAL par les utilisateurs qui ont les
privilèges d’administration. Et qui peuvent effectuer des opérations de maintenance
telles que renommer les fichiers de la base ou gérer les fichiers de reprise.
Exemple : SQLDBA> CONNECT INTERNAL
SQLDBA> ALTER DATABASE nom_base MOUNT
3. Ouverture de la base pour rendre ses données accessibles aux utilisateurs. La base
est à l’état ouvert OPEN.
Exemple : SQLDBA> ALTER DATABASE nom_base OPEN
I.3 Arrêt de la base
La fermeture s’effectue en trois étapes :
1. Déconnexion des utilisateurs de la base
2. Détachement de la base de l’instance
3. Arrêt de l’instance
Pour arrêter une base utiliser l’ordre :
SHUTDOWN [option]
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
32
Où option peut prendre les valeurs :
- NORMAL : aucune nouvelle connexion permise, 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, qui
sont alors avortées.
- ABORT : arrêt immédiat sans détachement de la base ni déconnexion préalable des
utilisateurs. 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.4 Ajout de fichiers, de tablespaces dans la ba se
I.4.1 Ajout d’un fichier de contrôle
Pour ajouter un fichier de contrôle (par exemple CONTROLE04.CTL), 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
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
33
• ajouter dans le paramètre control_files du fihier d’initialisation ce nouveau fichier de
contrôle puis enregistrer.
• Démarrer la base avec startup .
I.4.2 Ajout d’un fichier log
Pour ajouter un fichier de log (par exemple log4.ORA), on suit les étapes suivantes :
• arrêter l’instance
• démarrer la base en mode mount
• lancer la commande
alter database add logfile member ‘Chemin_complet_du_fichier\log4.ora’ to groupe Numero_groupe
• 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é.
I.4.3 Ajout d’un fichier base dans un tablespa ce
Pour ajouter un fichier base (par exemple user05.ora) il suffit de lancer l’ordre
alter tablespace Nom_tablespace add datafile ‘Chemin_complet\user05.ora’ size taille_init K|M
I.4.4 Ajout d’un tablespace
Pour ajouter un tablespace (par exemple DEV) il suffit de lancer la commande :
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
40
) )
2) Le fichier listener.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.
Il contient les sections pour le nom de l'écouteur, son adresse, les bases de données
desservies par l'écouteur et les paramètres de configuration.
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.3.3.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
Le fichier sqlnet.ora contient la configuration pour le noeud du réseau. Ceci est
indépendant du nombre de bases de données ou du nombre d'écouteurs. La chose la
plus importante dans ce fichier est la variable de configuration Timeout des Connexions
Mortes.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
41
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. Si le client (de tout type) ne
répond pas, le processus en tâche de fond du serveur Oracle sera tué.
Ceci est très utile si vous avez plusieurs clients qui accèdent à la base de données,
surtout pendant la phase de développement où ces clients ne réussiront certainement
pas à sortir proprement de la base de données Oracle.
Voici une copie de mon fichier sqlnet.ora pour vous servir d'exemple:
TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 30 # le nombre de secondes entre les vérifications des clients.
names.default_domain = world
name.default_zone = world
IV.2 Lancer et Arrêter les Ecouteurs .
Maintenant que la configuration des écouteurs et de SQL*Net est finie, nous pouvons
essayer de connecter la base de données en utilisant la partie réseau. (Avant nous
utilisions l'accès direct à la base de données, 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.3.3.0.0 - Production on 23-FEB-98 20:38:25 Copyright (c) Oracle Corporation 1994. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> start Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait... TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521)) Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700)) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production Start Date 23-FEB-98 20:38:50 Uptime 0 days 0 hr. 0 min. 0 sec
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
42
Trace Level off Security OFF SNMP ON Listener Parameter File /home/oracle/7.3.3.0.0/network/admin/listener.ora Listener Log File /home/oracle/7.3.3.0.0/network/log/listener.log Services Summary... 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.3.3.0.0 - Production on 23-FEB-98 20:43:20 Copyright (c) Oracle Corporation 1994. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> stop Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP)) The command completed successfully LSNRCTL> exit
Si vous avez une configuration DNS qui ne retourne pas l'adresse IP pour le nom
logique specifié, le lancement et l'arrêt de l'écouteur prendront donc in certain temps. (2-
3 mins. dépendant de la variable timeout du DNS). Si c'est le cas , ne vous inquiétez
pas. Soyez patient.
IV.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, Ms Word, Ms Excel etc).
V Gestion des objets dans une base répartie
V.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;
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
43
L’utilisateur peut lancer une requête SQL sans donner la référence complète de la
table.
TP1 : Configuration de NET8
1. Configuration de l’accès distant avec SQL NET EASY CONFIGURATION
2. Connexion sur une base distante, 2 méthodes
- lancer : SQL login/passwd@Base_distante
- lancer SQL sans argument et remplir convenablement les champs présentés
V.2 Méthodes des copies
TP2 : COPY entre deux bases distantes
1. Connectez vous sur la base distante fstm et faites quelques insertions de tuples
dans les tables créées?
2. Connectez vous sur la base distante fst et copiez la totalité de la table client dans
fst en utilisant la méthode de COPY.
3. 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;
4. 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)
Client_fg_2(numcl, adressecl, pays) ;
Utilisez COPY pour le faire
5 L’utilisateur master1p1 veut créer un fragment ayant pour schéma
Client_fg1 (numcl , nomcl, age)
V.3 Réplication par cliché
Dans une base de données répartie, il se peut que pour des raisons diverses (rupture
de ligne de communication, panne d’un site etc.) des données soient momentanément
inaccessibles aux utilisateurs. Afin de ne pas gêner les éventuels utilisateurs, il vous est
possible de répliquer les données d'une base en créant un cliché (SNPASHOT).
Cette technique permet :
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
44
- 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.
- 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.
- de définir une fréquence de rafraîchissement des données
- de définir le mode de rafraîchissement : compléter le cliché, remplacer le cliché
ou propager uniquement les modifications.
Les snapshot ne sont pas mis à jour régulièrement, mais à des intervalles précis
nommés asynchronous replication. Ces instants sont précisés par le paramètre NEXT
de la commande CREATE SNAP SHOT (dans l'exemple, tout les jours).
Syntaxe de création :
CREATE SNAPSHOT NomCliche
REFRESH
FAST | COMPLETE | FORCE
START WITH date1
NEXT date2
[parameter de stockage]
[FOR UPDATE] AS Requête;
Avec:
FAST : mode de rafraîchissement rapide des lignes modifiées uniquement sur la base
distante ; ce mode utilise un journal de cliché.
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, sinon effectue un
rafraîchissement complet ; 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 ; il s’agit d’une expression de
type date.
Paramètre de stockage : Voir paramètres de stockage de l’ordre de création des
tables ;
Requête : définition du snapshot sous forme de requête SQL.
Université CAD de Dakar Page Département Maths-Informatique
Cours DBA Oracle Dr Mbaye SENE Maîtrise Informatique 2006/2007
45
FOR UPDATE : Pour un cliché modifiable
Pour modifier le snapshot c’est ALTER SNAPSHOT NomCliche …. ; 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. 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. Faire une mise à jour de la table client sur FSTM
3. Vérifier sur FST si les modifications sont répercutées
4. Reprendre les étapes 1, 2 et 3 mais pour la table commande de FSTM, vous créerez
ici un cliché modifiable.
5. A partir de FST, créer une vue Article_v de la table article de FSTM. Faire des mises
à jour sur article sur FSTM et vérifier si la vue reflète les mises à jour.
Annexe 2: Script SQL de création de table
Base de données exemple
Client (numcl number, nomcl char(20), adressecl char(80), pays char(40)) ;
Article (refart char(10), designation char(40), prix number(8,2)) ;