Administration Des Bases De Données Sous Oracle

4m ago
27 Views
0 Downloads
332.26 KB
113 Pages
Transcription

Administration des bases de données sous OracleAdministration des bases de données sous OracleFabien De MarchiUniversité de Lyon1/1

Administration des bases de données sous OracleSur le coursPrérequis et objectifsPrérequisModèle relationnel (structure, contraintes, SQL)ObjectifsConnaı̂tre les tâches d’un DBAConnaı̂tre les concepts et points clés de l’architecture OracleSavoir effectuer les principales tâches sous Oracle2/1

Administration des bases de données sous OracleSur le coursPour en savoir plus.Documentation Oracle : www.oracle.comEn anglais, 2000 pages sur l’administration : très complet.3/1

Administration des bases de données sous OracleIntroductionLes métiers autour des bases de données4/1

Administration des bases de données sous OracleIntroductionLes métiers autour des bases de donnéesLes métiers autour des bases de donnéesAdministrateurResponsable de la sécuritéAdministrateur réseauxDéveloppeurs d’applicationAdministrateurs d’applicationUtilisateurs : modifier les données, créer des rapportsNoteDans des environnements de petite taille, l’administrateur peutjouer quasiment tous les rôles4/1

Administration des bases de données sous OracleIntroductionRôles du DBARôles du DBAInstaller les logiciels Oracleun serveur, des applications clientes,En fonction de l’OS et des paramètres systèmesSi fonctionnement en réseau : composants réseaux d’OraclePlanifier et créer des bases de donnéesGérer l’espace et implanter les schémas des donnéesAssurer la sécurité, l’intégrité et la pérennité des donnéesEffectuer des réglages pour optimiser les performances5/1

Administration des bases de données sous OracleOracle : les grands conceptsArchitecture6/1

Administration des bases de données sous OracleOracle : les grands conceptsArchitectureVue d’ensembleDeux architectures possibles:client/serveur : des applications clientes envoient lesrequêtes SQL et PL/SQL à un serveur.Multitier : des serveurs d’application allègent la charge duserveur en réalisant certains accès pour les clients.Un serveur de bases de données est composé :d’une instance plusieurs processus et une zone de mémoired’une base de donnéesde plusieurs schémas, assimilés à des utilisateursDans le cas de clusters de machines, Oracle peut associerplusieurs instance à une même base de données.6/1

Administration des bases de données sous OracleOracle : les grands conceptsLa connexion client/serveurLa connexion client/serveurUn processus utilisateur est créé quand un utilisateur lanceune application clienteUne connexion va être créée avec l’instance Oracle,l’utilisateur va ouvrir une sessionUn processus serveur va analyser et exécuter les requêtes,retourner les donnéesMode dédié : une processus serveur pour un processus clientMode partagé : les clients partagent un groupe de processusserveursEvite les processus serveurs inactifs7/1

Administration des bases de données sous OracleOracle : les grands conceptsComposants d’une instanceLa mémoireLa SGA (Système Global Area)Zone partagée par tous les utilisateurs de la base de donnéesAllouée au démarrage de l’instance en mémoire principale :doit-être la plus grosse possible.Son but est d’économiser les E/S. Elle contient :le cache de données (database buffer cache) :le cache de reprise (redo log buffer) : log des changementsrécentsle cache d’exécution partagé (shared pool) pour les requêtesSQL et PL/SQl. Contient le dictionnaire de données en cache.La PGA (Program Global Area)Zone d’exécution des processus du serveurAllouée au lancement de chaque processus8/1

Administration des bases de données sous OracleOracle : les grands conceptsComposants d’une instanceLes processus de fond serveurExécutent des actions asynchrones d’écriture et de contrôleDBWn (Database Writer) - Ecrit le contenu du cache dedonnées dans les fichiers de donnéesLorsque la place manque en SGADe façon périodique, en mettant à jour le point de restaurationdans les fichiers de logon peut en créer plusieurs : DBW0, DBW1, . , DBWjLGWR (Log Writer) - Ecrit le contenu du cache de reprisedans les fichiers de logen cas de “commit” d’un utilisateurToutes les trois secondesQuand le cache de reprise est plein au tiersQuand un processus DBWn décharge des données modifiées9/1

Administration des bases de données sous OracleOracle : les grands conceptsComposants d’une instanceLes processus de fond serveur (cont.)CKPT (Chekpoint)Pour assurer la synchronisation et la cohérence des donnéesSMON (System Monitor)Effectue la restauration lors de reprise après panneNettoie les segments temporairesFusionne certains extents libres contigüePMON (Process Monitor)Pour gérer les pannes des processus clientsRECO (Recover)Pour les reprises après panne de transactions distribuéesARCn (Archiver)Pour l’archivage, lorsqu’il est activé.10/1

Administration des bases de données sous OracleOracle : les grands conceptsComposants d’une base de donnéesStructure physiqueDes fichiers sur le disqueun fichier de contrôle qui spécifie le nom et l’emplacementdes fichiers, le nom de la base,.plusieurs fichiers de données pour stocker les donnéesau moins deux fichiers de reprise après panne qui contiennentles modifications récentesdes fichiers d’archivage (optionnel) pour archiver les fichiersde contrôleun fichier de paramètres (optionnel) qui stocke tous lesparamètres de la basedes fichiers de trace pour répertorier toutes les tâches eterreurs effectuées11/1

Administration des bases de données sous OracleOracle : les grands conceptsComposants d’une base de donnéesStructure logiqueDes concepts pour gérer finement la mémoirele block de données est l’unité logique la plus fine, 8ko pardéfaut.l’extent est un ensemble contigüe de blocks, alloués en uneseule fois.le segment est un ensemble d’extents dédiés à un même objet(table, index, .)le tablespace : regroupe un ensemble d’objets ( segments)pour faciliter leur administration. Peut atteindre 8 exabytes !Un tablespace un ou plusieurs fichiers de données12/1

Administration des bases de données sous OracleOracle : les grands conceptsLes schémas pour OracleContenu d’une schémaCorrespond à un utilisateur : les deux portent le même nomEnsemble d’objets de l’utilisateur manipulables en SQLExemple : tables, index, clusters, triggers, vues, dimensions,fonctions, .Un objet correspond à :plusieurs extentsun segmentun tablespaceun ou plusieurs fichiers du tablespacePas de correspondance schema/tablespace13/1

Administration des bases de données sous OracleOracle : les grands conceptsLes schémas pour OracleStockage des tablesPour des tables de moins de 256 attributssi possible : un tuple est entièrement dans un blocksinon : chaı̂nage inter-blocs (augmente les E/S)pour tes tuples de plus de 256 attributs (compris)chaque partie de 255 tuples est chaı̂née intra-bloc (si possible!)Les tuples sont chaı̂nés en utilisant le ROWIDA la création d’une table, on peut :spécifier le tablespacespécifier la taille du segmentspécifier la quantite d’espace libre laissée dans chaque bloc14/1

Administration des bases de données sous OracleOracle : les grands conceptsIdentification du DBA sous OracleLes privilèges SYSDBA et SYSOPERPermettent d’effectuer les opérations au-dessus de la basede données, en se connectant à l’instanceDémarrer et arrêter le serveurCréer ou supprimer des bases de donnéesChanger les modes d’archivage de la base.Leur identification est gérée soit :Par le SE,l’utilisateur doit appartenir au groupe dba ou oper (ora dba etora oper sous WINDOWS)connect / as sysdba ; connect / as sysoper.Par le fichier password d’Oracle.Créer un fichier password avec l’outil ORAPWDaccorder le privilège à partir de l’utilisateur SYSconnect user/user as sysdba;15/1

Administration des bases de données sous OracleOracle : les grands conceptsIdentification du DBA sous OracleLe rôle DBAAccès au catalogue, gestion des utilisateurs, de la mémoire.Dès la création de la base, deux utilisateurs sont créés avec lerôle “DBA“SYS/CHANGE ON INSTALLPossède toutes les tables systèmes, dont le dictionnaireNe jamais rien écrire sur ce compte !SYSTEM/MANAGERPour créer des tables d’administration uniquementIl est fortement conseillé de spécifier d’autres mots de passedans la phase de création.Ne pas utiliser dans l’administration quotidienne16/1

Administration des bases de données sous OracleOracle : les grands conceptsLe dictionnaire de donnéesInformations du dictionnaireEnsemble de tables appartenant à l’utilisateur SYSprincipales informationsLa définition de tous les objets et leur espace allouéLes valeurs par défaut des attributsLes contraintes d’intégritéLa liste des utilisateurs, leurs privilègesDes informations d’audit sur les accès et modifications.17/1

Administration des bases de données sous OracleOracle : les grands conceptsLe dictionnaire de donnéesStructure du dictionnaireDes tables de base, uniquement accédées par Oracle et SYSDes vues mises à la disposition des utilisateurs (selon leursdroits)Vues utilisateurs : USER View. Pour les objets de l’utilisateurqui demandeVues d’ensemble : ALL Views. Pour une vue d’ensemble surles objets auxquels on a accèsVues d’administration : DBA Views. Sur l’ensemble de labase, uniquement SYS.Vues dynamiques sur l’activité de la base : V Views.18/1

Administration des bases de données sous OracleOracle : les grands conceptsSynthèseEnchaı̂nement type (1)Une instance Oracle est démarrée sur le serveurUne application cliente établit une connexion et ouvre unesessionLe serveur détecte la requête de connexion et crée unprocessus serveur dédiéL’utilisateur lance une requête SQL et un commitLe processus serveur recherche dans la ”shared pool“ si larequête existeOUI : elle sera utilisée pour répondreNON : la nouvelle requête est insérée dans la shared pool,analysée et executée19/1

Administration des bases de données sous OracleOracle : les grands conceptsSynthèseEnchaı̂nement type (2)Le processus serveur récupère les donnéesDans le cache de donnéesdans les fichiers de données (et les charge dans le cache)Le processus serveur modifie éventuellement les données dansle cachePuisqu’il y a validation, LGWR ecrit la transaction dans lefichier de repriseLes changements seront répertoriés dans les fichiers de donnéespar DBWnLe résultat, ou une confirmation, est envoyé au processusutilisateur20/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de données21/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesPréliminairesDeux possibilitésUtiliser l’assistant Oracle : graphiqueCréer manuellement à l’aide de scriptsEn cas de mise à jour d’Oracle, une procédure particulièreexisteCompatibilité ascendante, on ne recrée pas les bases dedonnées.Prérequis :Oracle doit-être installéVous devez être administrateur du SE et de l’instance OracleLa mémoire principale et mémoire disque doit être suffisante21/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesPlanifier la basePhase de reflexion avant création, pour faire les bons choix.Réfléchir aux tables et indexes à venir, estimer leur taillePlanifier la distribution de ses fichiers, l’espace libre dans lesblocksDécider entre une gestion classique ou automatique desfichiersChoisir l’encodage des caractères (peut-être surchargé par lesclients)Déterminer la taille des blocs de donnéesChoisir le mode de gestion de l’annulationTablespace dédiéSegments d’annulationDéterminer la stratégie de sauvegarder et reprise après panne22/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesEtapes de création (1/2)Spécifier le nom de l’instance SIDCréer le fichier de paramètres PFILE (partir de l’exempleOracle)Nom de la base, emplacement des fichiers de contrôleSe connecter à l’instance inactiveSQLPLUS /nolog puis CONNECT / AS SYSDBACréer un fichier de paramètre serveur SPFILE (à partir dufichier manuel)Lancer l’instance : STARTUP NOMOUNT (Aucunevérification de cohérence à ce niveau)Créer la base de données : CREATE DATABASE.23/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesCREATE DATABASE mynewdbUSER SYS IDENTIFIED BY pz6r58USER SYSTEM IDENTIFIED BY y1tz5pLOGFILE GROUP 1 (’/u01/oracle/oradata/mynewdb/redo01.log’) SIZE 100M,GROUP 2 (’/u01/oracle/oradata/mynewdb/redo02.log’) SIZE 100M,GROUP 3 (’/u01/oracle/oradata/mynewdb/redo03.log’) SIZE 100MMAXLOGFILES 5MAXLOGMEMBERS 5MAXLOGHISTORY 1MAXDATAFILES 100MAXINSTANCES 1CHARACTER SET US7ASCIINATIONAL CHARACTER SET AL16UTF16DATAFILE ’/u01/oracle/oradata/mynewdb/system01.dbf’ SIZE 325M REUSEEXTENT MANAGEMENT LOCALSYSAUX DATAFILE ’/u01/oracle/oradata/mynewdb/sysaux01.dbf’ SIZE 325M REUSEDEFAULT TABLESPACE tbs 1DEFAULT TEMPORARY TABLESPACE tempts1TEMPFILE ’/u01/oracle/oradata/mynewdb/temp01.dbf’SIZE 20M REUSEUNDO TABLESPACE undotbsDATAFILE E 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;24/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesEtapes de création (2/2)Créer de nouveaux tablespace, par exemple :Un USERS pour les utilisateursun INDX pour les indexLancer les scripts de création du dictionnaire (catalog.sql,catproc.sql) et éventuellement d’autres scripts optionnelsCréer une sauvegarde complète de l’installation dans cet état24/1

Administration des bases de données sous OracleTâches élémentaires d’administrationCréer une base de donnéesAlternative : fichiers ge