Le dictionnaire de données Oracle 10g
Le dictionnaire Oracle 10g
Le dictionnaire Oracle 10g contient les informations nécessaires au fonctionnement de la base. Il en existe un par base qui comporte tous les détails relatifs à sa structure : les tables, leur propriétaire, le nom et les types de colonnes, le taux de remplissage des tablespaces et bien d’autres choses encore… Propriété de l’utilisateur SYS, le dictionnaire est créé en même temps que la base. L’utilisateur SYSTEM est l’administrateur, il possède des droits de lecture sur des vues accédant au contenu du dictionnaire. En quelques minutes, un expert ayant accès à votre dictionnaire =Briard.Livre Le dictionnaire de données Oracle 10g Principes de fonctionnement d’Oracle 10g PARTIE II 180 de données en connaîtra beaucoup plus que ce que vous auriez pu lui apprendre dans le même intervalle de temps. Il s’agit donc d’un instrument très précieux à sécuriser ; c’est la raison pour laquelle les mots de passe des utilisateurs SYS et SYSTEM devront être changés dès la fin de l’installation et précieusement conservés par la suite. Création du dictionnaire Oracle 10g Le dictionnaire de données est créé d’emblée lors de l’installation de la base. Par la suite, après chaque action, Oracle 10g le met automatiquement à jour. Comme tout le reste de la base Oracle 10g, il est composé de tables et d’objets. Ils sont installés dans le tablespace SYSTEM et sont la propriété de l’utilisateur SYS. L’utilisateur SYSTEM ne peut pas modifier la structure du dictionnaire, seules les commandes du langage SQL et les processus Oracle peuvent agir sur son contenu. Par contre, de nombreuses vues sont accessibles en lecture pour exploiter le dictionnaire. Elles sont hiérarchisées pour autoriser une vision plus ou moins large des objets décrits dans le dictionnaire. Les scripts indispensables pour toutes les bases Oracle 10g sont décrits dans le tableau suivant. Ils sont placés en ORACLE_HOME\rdbms\admin. D’autres scripts peuvent être nécessaires, suivant les options installées ou les fonctions que la base doit assurer. Les scripts SQL générés par l’assistant DBCA (Database Configuration Assistant) en sont le parfait exemple. Ils sont présentés au chapitre 14, Création d’une base Oracle 10g. Les mots de passe initiaux de SYS et SYSTEM doivent être notés et sauvegardés dans une enveloppe de secours mise en sécurité. Nom du script Utilisé par Commentaire sql.bsq Toutes les bases Création du dictionnaire de données, lancé automatiquement par l’ordre SQL CREATE DATABASE. catalog.sql Toutes les bases Création des vues, des synonymes et des droits d’accès sur le dictionnaire. catproc.sql Toutes les bases Lance tous les scripts nécessaires à l’utilisation du PL/SQL. Il est indispensable à toutes les bases. catrep.sql Toutes les bases Lance tous les scripts nécessaires à l’utilisation de la réplication avancée. N’exécutez jamais un script d’une version Oracle sur une autre version de base de données Oracle. Une fois votre base créée, ne relancez ces scripts qu’en cas de passage d’une version d’Oracle à une autre version, en suivant scrupuleusement les indications de migration. Consultez ces scripts, car ils sont riches d’enseignements mais ne les modifiez jamais ! Ajout de produits optionnels au dictionnaire Oracle 10g fournit d’autres scripts SQL offrant différentes options aux bases de données, par exemple, ceux autorisant la réplication ou l’installation du moteur Java dans Oracle. Ces scripts sont situés en ORACLE_HOME\rdbms\admin. Un certain nombre d’entre eux sont lancés automatiquement lors de la création du dictionnaire Oracle 10g, au moyen de catalog.sql et catproc.sql. Les scripts SQL générés par l’assistant DBCA (Database Configuration Assistant) sont un bon exemple. Ils sont présentés au chapitre 14, Création d’une base Oracle 10g. Nom du script Utilisé par Lancé par Commentaire catblock.sql Gestion des performances SYS Création de vues qui indiquent dynamiquement les verrous. caths.sql Services SYS Packages d’administration. catio.sql Gestion des performances SYS Suivi des I/O table par table. catoctk.sql Sécurité SYS Packages utilisés pour gérer le cryptage Oracle 10g. catparr.sql Real Application Clusters SYS Création des vues utilisées par le Real Application Clusters, le cluster Oracle 10g. catrep.sql Réplication avancée SYS Exécute tous les scripts SQL nécessaires à l’option réplication avancée. catrman.sql Recovery Manager RMAN Création des tables et des vues utilisées par RMAN, l’outil de gestion des sauvegardes et restaurations. dbmspool.sql Gestion des performances SYS Permet au DBA de forcer le maintien dans la SGA de packages PL/SQL. utlbstat.sql et utlestat.sql Suivi des performances SYS Lance et arrête la collecte d’informations concernant les performances de votre instance. utlchain1.sql Gestion du stockage tout utilisateur Création de la table contenant les informations de la commande SQL ANALYZE TABLE … CHAINED ROWS. utlhttp.sql Accès Web SYS Package PL/SQL destiné à gérer les échanges HTTP avec la base. utllockt.sql Suivi des performances SYS Affichage des verrous. utlrp.sql PL/SQL SYS Recompile tous les modules PL/SQL présents dans l’état INVALID. utlsampl.sql Exemples SYS ou utilisateur DBA Création d’un jeu d’exemple complet : l’utilisateur SCOTT, ses tables et leurs données. utlxplan.sql Suivi des performances tout utilisateur Création de la table PLAN_TABLE utilisée pour stocker les informations issues de la commande SQL EXPLAIN PLAN
Les différents types de vues
Les vues USER, ALL, DBA, V$sont des « familles » de vues dont le nom de chaque membre débute par le préfixe l’identifiant. DBA : les vues de l’administrateur Oracle 10g Les vues DBA accèdent au dictionnaire pour fournir les informations dont seul un administrateur peut bénéficier. Logiquement, la liste de ces vues DBA est la plus fournie, car de nombreux aspects de la base relèvent de la compétence exclusive du DBA. Ainsi, les vues traitant de la configuration générale de la base, des segments d’annulation, des droits des différents utilisateurs, etc. n’apparaissent qu’à cet endroit. ALL : les vues sur tous les objets accessibles Pour permettre d’atteindre les données autorisées, les vues ALL accèdent aux informations sur les objets propriétés de l’utilisateur et sur ceux pour lesquels des droits d’accès lui ont été fournis. USER : les vues sur les objets de l’utilisateur Les vues USER accèdent exclusivement aux objets créés par l’utilisateur et ne fournissent aucune information sur les autres, même si l’utilisateur en possède les droits d’accès. V$ : les vues dynamiques de la base Elles fournissent des informations dynamiques sur le fonctionnement et les performances de la base en activité, les résultats obtenus évolueront chaque fois que ces vues seront consultées. Ces vues « attaquent » directement des structures écrites en langage C. Comme elles font partie intégrante du noyau Oracle 10g, elles sont accessibles dès que la base est montée mais non encore ouverte (dans ce cas, les informations proviennent de la lecture des fichiers de contrôle). C’est pourquoi certaines informations statiques, comme la liste des fichiers (V$DBFILE) et les informations concernant les fichiers redo-log (V$LOGHIST et V$LOGFILE) appartiennent aux vues V$, car elles sont utilisées en cas de restauration de la base (qui est alors montée mais non ouverte). Les autres vues concernent essentiellement des aspects de performance et de tuning. GV$ : les vues des bases en cluster Le fonctionnement d’Oracle en configuration « cluster » a été abordé au chapitre 10, Démarrer et arrêter une base Oracle 10g. Dans ce cas de figure, pour surveiller les Pour un DBA Oracle 10g, l’accès au dictionnaire de données par les vues USER, ALL, DBA, V$ est le moyen privilégié de connaître absolument toutes les caractéristiques de sa base. =Briard.Livre Page 182 Mardi, 21. février 2006 1:46 13 Le dictionnaire de données Oracle 10g CHAPITRE 12 183 performances d’instances placées sur des serveurs différents, il est important de disposer de vues identiques aux vues V$ mais qui permettent d’identifier l’instance surveillée. C’est ce que permettent les vues GV$. Elles contiennent toutes une colonne supplémentaire par rapport aux vues V$ qui identifie l’instance interrogée. Comme le reste de leur contenu est identique, reportez-vous aux vues V$. Les autres vues D’autres existent, comme la très utile vue DICTIONARY (voir paragraphe suivant). Elles proviennent d’anciennes versions d’Oracle 10g, avant la structuration en familles V$, USER, ALL, DBA, mais elles sont de moins en moins utilisées.