Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Architecture Oracle Database

Par Christian TEDAJIO SUKI Publié le 08/07/2018 à 22:02:53 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Pour mieux appréhender une base de données et la maîtriser, il est prépondérant d’avoir une idée sur la manière donc elle fonctionne, les composants sous-jacents nécessaires à son fonctionnement et la manière donc ces composants interagissent entre elles, tous ces éléments décrivent l’architecture d’une base de données et la connaissance de ces éléments permet de mieux les comprendre. Cet article a donc pour but de présenter l’architecture d’une base de données Oracle, les éléments qui la compose et la manière donc elles interagissent entre elles.

C’est quoi Une Base de données ?

Avant de faire une présentation de la base de données Oracle, il me semble judicieux d’apporter une définition à ce qu’est une base de données. Une base de données est un ensemble structuré d’éléments d’information agencés sous forme de table, dans lesquels les données sont organisées selon certains critères en vue de permettre leur exploitation. Ces données doivent être utilisées par des programmes et par des utilisateurs différents. Elle permet de mettre les données à disposition des clients (Utilisateurs ou programmes) pour une consultation, une saisie ou bien une mise à jour tout en s’assurant des droits d’accès à ces derniers. Une base de données peut être locale c’est-à-dire utilisable sur une machine par un utilisateur ou bien répartie, c’est-à-dire stocké sur des machines distantes et accessible via un réseau. On distingue un certain nombre de base de données (hiérarchique, réseau, relationnelle, objet etc…), mais nous nous attarderons sur les bases de données relationnelles basées sur l’algèbre relationnelle et les travaux de Edgar Frank Codd qui permet de modéliser facilement et sans grosse contrainte les systèmes du monde réel et de créer des bases de données facile à maintenir et à faire évoluer. Mais ce n’est pas l’objectif de cet article, nous présenterons juste l’architecture d’une base de données Oracle.

Système de gestion de base de données (SGBD)

Un système de gestion de base de données est un système logiciel ou ensemble de programme qui gère et contrôle les accès à une base de données, assurant ainsi une interface normalisée entre les applications et les bases de données. Un système de gestion de base de données relationnelles (SGBDR) est un système qui va permettre de gérer le contrôle d’accès à une base de données relationnelles. Les SGBDR peuvent être soit du type client-serveur, soit de type fichiers partagés mais les plus utilisés à nos jours sont les SGDBR de type client-serveur. Il existe sur le marché plusieurs SGBDR parmi lesquels on peut citer : My SQL server, PostgreSQL, Microsoft SQL Server, IBM DB2, Sybase, Oracle etc.

Présentation d'Oracle Database

Oracle Database est l’un des systèmes de gestion de base de données relationnelles (SGBDR) le plus populaire et le plus performant du marché. C’est un moteur de base de données très solide qui permet de gérer de grand volume de données mais qui peut paraitre difficile d’accès au premier abord. Elle est disponible sur un grand nombre de plate-forme tel que UNIX, LINUX, WINDOWS et commercialisé sous trois gammes :

  • Edition Entreprise / Enterprise Edition

  • Edition standard / Standard Edition

  • Edition Personnelle / Personal Edition

Les bases de données Oracle sont organisés sous forme de composant qui présentent les fonctionnalités suivantes :

  • La définition et la manipulation des données

  • La cohérence des données

  • La confidentialité des données

  • L'intégrité des données

  • La sauvegarde et la restauration des données

  • La gestion des accès concurrents

Outre la base de données, la solution Oracle est un véritable environnement de travail constitué de nombreux programmes ou logiciels permettant de faire une administration graphique et de s’interfacer avec des produits divers et d’assistants de création de base données et de configuration de celle-ci. On peut ainsi classifier les outils d’Oracle selon diverse catégories :

  • Les outils d’administration

  • Les outils de développement

  • Les outils de communication

  • Les outils de génie logiciel

  • Les outils d’aide à la prise de décision

Architecture globale d’un serveur Oracle

Une base de données Oracle est constituée d’au moins une base de données ou Database et une instance ou instance de base de données. L’instance va s’occuper de gérer la mémoire et les processus tandis que la base de données quant à elle est composée des fichiers physiques appelés Data files, et peut être sans conteneur ou avec multiple conteneur. La base de données Oracle utilise aussi plusieurs fichiers systèmes de base de données pendant son fonctionnement. Une instance d’architecture de base de données est composée d’une seule instance et d’une seule base de données. Ce qui permet d’avoir une relation one-to-one entre la base de données et l’instance. Plusieurs instances peuvent être installées sur le même serveur et il existe des instances distinctes pour chaque base de données. Cette configuration permet d’exécuter différentes versions d’Oracle sur la même machine.

Le Listener c’est le processus serveur de la base de données, il reçoit les requêtes clientes, établie une connexion avec l’instance de la base de données, puis transmet la connexion cliente au processus serveur. Le Listener peut s’exécuter localement sur le serveur de la base de données et à distance.

Structure d'une instance de base de données Oracle

Une instance de base de données Oracle est composée d’un ensemble de processus d’arrière-plan et de structure de mémoire. Les structures principales de mémoire sont le System Global Area (SGA) et les Program Global Areas (PGAs). Les processus d’arrière-plan opèrent sur les données (Data files) stockées dans la base de données et utilisent les structures de mémoire pour accomplir leurs tâches. Les base de données existent uniquement en mémoire. Oracle crée également des processus serveurs pour gérer les connexions de la base de données pour le compte des programmes clients. Ces types de processus sont aussi appelés des processus de premier plan.

System Global Area

Le System Global Area (SGA) est la zone mémoire qui contient les données et les informations de contrôles pour une instance de base de données Oracle. Tous les processus serveur d’arrière-plan partagent le SGA, lorsqu’on démarre une instance de base de données, la taille de la mémoire allouée pour le SGA est affichée. Le SGA inclut les zones mémoires suivantes :

Share pool : C’est la zone mémoire de partage de requêtes et des dictionnaires de données, elle est impliquée dans presque toutes les opérations sur la base de données.

Database buffer cache : c’est la zone mémoire qui stocke les copies des bloques de données lues depuis les data files. Un buffer ou mémoire tampon est une adresse mémoire principale dans laquelle le gestionnaire de mémoire tampon met en cache de manière temporaire le bloque de données courant ou temporaire.

Redo log buffer : C’est la zone mémoire qui contient les informations sur les changements apportés à la base de données. Ces informations sont stockées dans les entrés redo. Les entrées redo contiennent les informations nécessaires pour rétablir ou reconstruire (redo) les changements qui ont été apportés sur la base de données par le langage de manipulation de données (LMD) et le langage de d éfinition des données (LDD) ou des opérations internes. Les entrées redo sont également utilisées pour le recouvrement de la base de données.

Large pool : C’est une zone mémoire optionnelle destiné aux allocations des mémoires plus grande que ce qui est approprié pour le shared pool.

Shared I/O pool (SecureFiles) : c’est une zone mémoire utilisée pour des larges opérations d’entrées/sorties sur les SecureFile Large Object (LOBs). Les LOBs sont un ensemble de type de données conçus contenir de grandes quantités de données. Le SecureFile est un paramètre de stockage LOB qui permet la déduplication, le chiffrement et la compression.

Java pool : C’est la zone mémoire utilisé par la machine virtuelle Java intégrée. Cette mémoire peut être utilisé de différentes manières en fonction du mode d’exécution d’Oracle.

Database smart Flash cache : C’est une mémoire optionnelle qui sert d’extension au buffer database cache pour les bases de données s’exécutant sur Solaris ou Oracle Linux.

Program Global Area (PGA)

C’est la mémoire dédiée (non partageable) pour chaque processus serveur de base de données, elle contient les données et des informations de contrôles exclusivement destinées aux processus serveur d’arrière-plan. Oracle database crée des processus serveurs pour gérer les connexions de la base de données pour le compte des programmes clients. Dans un environnement de serveur dédié, un PGA est créé pour chaque processus serveur et processus d’arrière-plan qui sont démarrés, chaque PGA est composé d’un espace d’empilage et d’un User Global Area (UGA) ou zone globale d’utilisateur. Le PGA est désalloué lorsque le serveur associé ou le processus d’arrière-plan qui l’utilise est terminé. Dans un environnement partagé, plusieurs utilisateurs client partagent le processus serveur, l’UAG est déplacé dans le SGA laissant le PGA avec un espace d’empilage. Dans une session serveur dédiée, l’UGA est composé des éléments suivants :

SQL work areas : Ce sont des allocations mémoires privées de la mémoire du PGA utilisé pour les opérations SQL nécessitant beaucoup de mémoire.

Session memory : C’est une zone de stockage de données de session utilisateur alloué pour les variables sessions tel que les informations de connexion, et d’autres informations qui sont requis par la session de la base de données.

Private SQL area : Cette zone contient les informations sur les requêtes SQL analysées et d’autre information spécifique à la session. Lorsque’un processus serveur exécute du code SQL ou PL/SQL, le processus utilise la zone SQL privée pour stocker les valeurs de variable de liaison.

Les processus d’arrière-plan / Background Processes

Comme nous l’avons dit plus haut, une instance de base de données oracle est composée de structure de mémoire et de processus d’arrière-plan, alors les processus d’arrière-plan font partie de l’instance de base de données oracle et exécutent les tâches de maintenance requis pour opérer sur la base de données tout en maximisant les performances pour plusieurs utilisateurs. Chaque processus d’arrière-plan exécute une seule tâche, mais travaille avec les autres processus. Oracle Database crée systématiquement les processus d’arrière-plan lorsqu’on lance ou démarre une instance de base de données. Les processus d’arrière-plan qui sont présents dépendent des fonctionnalités qui sont en cours d’utilisation dans la base de données. Lorsqu’on démarre une instance de base de données les processus d’arrière-plan obligatoires sont automatiquement démarrés, et les processus d’arrière-plan optionnelles peuvent être démarrés plus tard en cas de besoin. Les processus d’arrière-plan obligatoires sont présents dans toutes les configurations de base de données, ces processus s’exécutent par défaut dans une instance de base de données en lecture/écriture exécutée avec un fichier de paramètre d’initialisation configuré de façon minimal. Une instance de base de données accessible uniquement en lecture désactive certains de ces processus. Les processus d’arrière-plan obligatoire comprennent :

Database Writer (DBWn) : Ces processus sont chargés d’écrire les bloques modifiés de base de données depuis Database buffer cache vers les fichiers de données (Data files). On peut avoir plusieurs de ce type de processus sur des système multitraitement.

LogWriter (LGW) : Est le processus chargé d’écrire le contenu du Redo log buffer (zone mémoire qui contient les modifications sur la base de données) dans le fichier de journalisation courant (Redo log files). Cette écriture est déclenchée dans par des évènements tels que commit (validation d’une transaction) et lorsque le Redo log buffer est plein.

CheckPoint (CKPT) : C’est le processus qui permet de rendre cohérent le fichier de données et le fichier de contrôle, il enregistre le point de reprise dans l’entête du fichier de données (data file) et dans l’entête du fichier de contrôle (control file).

System Monitor (SMON) : C’est le processus chargé faire la récupération de l’instance de base de données après un arrêt anormal (rôle principal), il le fait selon deux stratégies, en appliquant au fichier de données les modifications non enregistrées des transactions non validées et en enlevant des fichiers de données les modifications enregistrées des transactions non validées (Rollback). Il est aussi chargeé de libérer les segments temporaires inutilisés.

Process Monitor (PMON) : Ce processus est principalement chargé de nettoyer l’heure de plantage d’un processus utilisateur (Annulation rollback de la transaction et libération des verrous et des ressources).

Archiver (ARCn) : Ce sont des processus chargés de l’archivage des fichiers de journalisation pleins, donc lorsqu’un fichier de journalisation est plein, il est automatiquement archivé par un processus ARC.

Structure de la base de données

La structure globale de stockage de d’une base de données oracle est composée d’une structure visible à l’OS et d’une structure invisible à l’OS. La structure visible à l’OS correspond à la structure physique c’est-à-dire les fichiers systèmes de base de données qui existent au niveaux du système d’exploitation et la structure invisible correspond à la structure logique de la base de données c’est-à-dire les tablespaces.

Structure physique

Il s’agit des fichiers qui constituent la base de données Oracle, ils sont organisés comme suit :

  • Les fichiers de contrôles / Control files : Ce sont des fichiers qui contiennent les données sur la base de données elle-même on les appelle les métadonnées. Ces fichiers sont critique à la base de données, sans eux, il est impossible d’ouvrir les data files (fichiers de données) pour accéder aux données de la base de données.

  • Data files / Fichiers de données : Ce sont des fichiers qui contiennent les données de la base de données, en d’autres termes tous les informations stockées dans la base données sont dans ces fichiers.

  • Online redo log files /Fichiers de journalisation : Ce sont des fichiers qui vont servir au recouvrement de la base de données en cas de crashe de celle-ci, en effet elles contiennent les données sur les changements apportés à la base de données. Si la base de données crashe et ne perd pas de fichier de données, alors l’instance peut recouvrir la base de données avec les informations que contiennent ces fichiers. Les redo log files sont multiplexés pour éviter leur perte.

Il existe d’autres fichiers qui ne font pas partir officiellement de la base de données mais sont important pour le fonctionnement de la base de données il s’agit de :

  • Le fichier de paramètre / Parameters file : Utilisé pour définir comment l’instance sera configurée à son démarrage.

  • Le fichier de mot de passe / Password file : Permet aux utilisateurs de se connecter à distance sur la base de données et d’effectuer des tâches d’administrations.

  • Archive log files : Ces fichiers contiennent l’historique en cours du redo générée par l’instance, elles permettent le recouvrement de la base de données. L’utilisation de ces fichiers avec le backup de la base de données permet de recouvrer les data files perdues.

Structure logique

Une base de données Oracle d’un point de vu logique est organisée en Tablespace. Un Tablespace est un espace logique dans lequel sont stockés les objets de base de données (table, vue, index, procédure, etc.). Les objets de base de données sont stockés dans des tablespaces sous forme de segment. Chaque segment contient un ou plusieurs extents. Un extent est composé de blocks de données contigus, ce qui signifie que chaque extent ne peut exister que dans un data file. Les blocks de données sont de petite unité d’entrées/sorties de la base de données. Lorsqu’une base de données requête un ensemble de data block à partir du système d’exploitation, le système d’exploitation fait une correspondance avec le block actuel de l’OS. Un tablespace ne peut appartenir qu’a une et une seule base de données à un moment donné et est composé d’un ou plusieurs datafiles.

Conclusion

En somme une base de données Oracle c’est deux choses, une base de données et une instance. L’instance est composée de processus d’arrière-plan tels que PMOM, LGW, SMON, ARC, etc. et des structures de mémoire dont les principales sont le SGA et le PGA. La base de données quant à elle possède une structure physique visible par l’os qui est composée des fichiers systèmes de la base de données et une structure logique invisible de l’os qui permet de stocker les objets de base de données d’une manière logique.

Sources

http://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/18/technical-architecture/database-technical-architecture.html http://www.base-de-donnees.com/comprendre-bases-de-donnees/les-4-types-de-bases-de-donnees/

http://info4you13.blogspot.com/2013/11/introduction-aux-sgbdr.html

https://www.commentcamarche.com/contents/702-oracle-introduction-au-sgbd-oracle

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels