1.
Architecture d’une base donne oracle
a) Server oracle
Un serveur oracle est constitué d’une instance et d’une base donnée.
Insert in person valeus(“ali”,25);
Insert in person valeus(“ali”,25);
Insert in person valeus(“ali”,25);
Insert in person valeus(“ali”,25);
Insert in person valeus(“ali”,25);
Insert in person valeus(“ali”,25);
Commit.
Checkpoint : a une intervalle regulier 1h , 3h ,5h
Instance (Ram , donner temporaire)
Base donne (disque dur,donner reel)
Select nom from perssonne.
Select nom from personne.
b) Instance et base données
Instance :
Une instance Oracle s'exécute principalement en la RAM de l’utilisateur .
Il contient des : mémoires et des processus.
Elle est créée lorsque vous démarrez la base de données et gère les
opérations en temps réel, telles que l'exécution de requêtes SQL et la
gestion de la mémoire.
Base donnée :
Une base donnée est stockée dans le disque dur.
Est un ensemble de fichiers de données physiques qui stockent les
données réelles, les tables, les index …. .
La base de données conserve les informations de manière permanente,
même lorsque l'instance est arrêtée.
c) Connexion et session
Connexion :
La connexion est le processus d'authentification d'un utilisateur ou d'une
application par la base de données.
La base de données Oracle vérifie ces informations et, si elles sont
correctes, elle établit une connexion avec l'utilisateur.
Sessions :
Une fois la connexion établie avec succès, une session est créée.
La session englobe toute l'activité de travail (exécutant des requêtes SQL
ou en effectuant d'autres opérations ) de l'utilisateur ou de l'application
pendant sa période de connexion.
d) Processus serveur et utlisateur
Processus utilisateur :
Lorsqu'une session est établie, un processus utilisateur est créé pour gérer
cette session.
Ses tâches principales comprennent l'envoi d'instructions SQL au
processus serveur, la réception et l'affichage des résultats des instructions SQL
provenant du processus serveur.
Processus serveur :
Lorsqu'une requête SQL est émise par le processus utilisateur, un
processus serveur est créé.
Responsable de la gestion des demandes des processus utilisateur.
Ses principales responsabilités comprennent l'analyse et l'exécution des
instructions SQL, la renvoi des résultats des instructions SQL aux processus
utilisateur, la gestion des transactions et la gestion de la mémoire.
e) SGA
i. SGA et PGA
PGA
La PGA est spécifique à chaque processus serveur dans une base de
données Oracle.
La PGA stocke les données temporaires et les variables utilisées pendant
l'exécution des requêtes ou des transactions.
utilisée pour gérer les opérations liées à cette session.
SGA
Partagée entre tous les processus serveurs d'une instance Oracle.
Elle stocke des données et des structures qui sont partagées et accessibles
à tous les utilisateurs.
a SGA stocke des informations cruciales nécessaires au bon
fonctionnement global de la base de données.
ii. Buffer de cache
Le Buffer Cache stocke des copies en mémoire des blocs de données lus
depuis les fichiers de données sur le disque.
Oracle vérifier chaque requête (opération de lecture de données ), si il
existe d’abord dans le buffer de cache .si il existe cela évite une lecture
coûteuse depuis le disque, ce qui améliore considérablement les
performances.
iii. Redo log buffer
Le Redo Log Buffer stocke temporairement les enregistrements de
modifications (redologs) avant qu'ils ne soient écrits (commit) dans les fichiers
de redo logs sur le disque.
iv. Shared pool
Select LRU.
1. Library cache
Select name from persone;
Son rôle est d'optimiser les performances en évitant la réanalyse
constante des requêtes SQL.
Lorsqu'une requête est exécutée, Oracle vérifie d'abord si son plan
d'exécution est déjà en cache dans la Library Cache. Si c'est le cas, le plan est
réutilisé, ce qui accélère le traitement de la requête.
2. Data dictionary cache
Le Data Dictionary Cache dans Oracle Database stocke les métadonnées
qui ont été déjà visitées pour permettre un accès rapide à ces informations.
f) PGA
La PGA est une zone de mémoire qui est spécifique à chaque session
utilisateur se connectant à la base de données Oracle.
Chaque session a sa propre PGA, qui est utilisée pour stocker des données
temporaires et des structures de traitement nécessaires pour exécuter les
requêtes SQL et les opérations de cette session.
La PGA inclut des zones de mémoire pour le tri des données, la gestion des
opérations SQL, le stockage des résultats intermédiaires, etc.
g) Background process
DBWn (Database Writer) : Il existe plusieurs processus DBWn, chacun
responsable de l'écriture de blocs de données modifiés depuis la mémoire
vers les fichiers de données sur le disque.
LGWR (Log Writer) : LGWR est responsable de l'écriture des informations
de journalisation (redo logs) sur le disque.
ARCn (Archiver) : Il existe plusieurs processus ARCn, chacun responsable
de la copie des fichiers de journalisation (redo logs) sur un fichier archive
ofline.
CKPT (check point) :
Le CKPT déclenche des checkpoints à intervalles réguliers, généralement
basés sur des critères de temps ou de nombre de transactions.
Lorsqu'un checkpoint régulier est atteint, le CKPT signale au DBWn de
commencer l'écriture des données modifiées sur le disque.
h) Structure d’une base donnée
i. Strcture physique
La structure physique d'une base de données fait référence à la manière
dont les données sont stockées sur le support de stockage réel, tel que le
disque dur, resaux (nas,san …).
ii. Structure logique
Tablespace :
Un tablespace est un conteneur logique qui regroupe des segments
similaires (data,index).
Un Tablespace peut contenir plusieur data file .
But :
Offre une gestion efficace de l'espace disque en permettant de regrouper
des objets similaires et de contrôler l'allocation d'espace (les règles et les
limites pour stocker ect ...).
Segment :
Unité de stockage logique pour un type spécifique d'objet, comme une
table ou un index.
Un segment contient plusieur extents.
Extent :
Un extent est une unité de stockage physique qui regroupe un certain
nombre de blocs de données. Il sert à allouer de l'espace aux segments.
Un extent contient plusieur des blocs de données.
Bloc de Données :
la plus petite unité de stockage physique dans une base de données
Oracle. Il sert à stocker les lines des tables.
Un bloc de données contient les données réelles, y compris les lines, les
en-têtes, les informations de contrôle, etc.
2. Architecture d’une base donnée multitenant
Conteneur container
Plugable
BD, BD,BD
BD {pg1,pg2,pg3)
a) Une vue générale
Container Database (CDB) :
Le CDB est le conteneur principal dans lequel vous pouvez créer, gérer et
héberger plusieurs bases de données PDB.
Il agit comme le conteneur global pour toutes les PDB. Un CDB peut
contenir zéro, une ou plusieurs PDB en fonction de vos besoins.
Pluggable Databases (PDBs) :
Les PDB sont des bases de données qui résident à l'intérieur du CDB.
Chaque PDB est une entité de base de données indépendante avec son propre
espace de schéma, ses objets et ses données.
Vous pouvez considérer une PDB comme une base de données autonome
encapsulée dans le CDB.
Chaque PDB est une Entité Licensable : Chaque PDB est considérée comme
une entité licenciable distincte.
b) pour quoi utiliser une multitenant database :
Serveur1 Bd1 Seveur2 BD2
Cotainer (pgb1,pgd2)memoire,processus ,controle,log file
Partage des Ressources : Dans une base de données multi-tenant,
plusieurs locataires utilisent la même infrastructure matérielle (serveurs,
mémoire, processeurs, stockage, etc.) pour exécuter leurs bases de données.
Au lieu d'avoir une infrastructure dédiée pour chaque locataire, vous
consolidez les ressources.
Économies d'Échelle : Lorsque plusieurs locataires partagent les coûts
d'achat et de maintenance de l'infrastructure, cela peut entraîner des
économies d'échelle significatives. Les coûts fixes sont répartis entre de
nombreux locataires, ce qui réduit les coûts par locataire.
Gestion Centralisée : L'administration de la base de données multi-tenant
est généralement centralisée.
Cela signifie que les tâches de gestion, telles que la sauvegarde, la mise à
jour du système, la sécurité, etc., sont gérées de manière centralisée pour
l'ensemble de l'environnement multi-tenant. Cela réduit la charge
administrative et les coûts associés.
Utilisation Efficiente de la Mémoire : La mémoire partagée, telle que le
cache de données en mémoire (buffer cache) dans la SGA, peut être utilisée
plus efficacement car elle est partagée entre les locataires. Cela permet
d'économiser sur les coûts liés à l'augmentation de la mémoire.
c) Architecture
CDB (Container Database) :
Le CDB est le conteneur principal qui sert de support à une ou
plusieurs bases de données enfichables (PDB).
Il fournit une gestion des ressources, une isolation de la sécurité et
une métadonnée partagée pour les PDB.
Les administrateurs de bases de données (DBAs) peuvent gérer
l'ensemble de l'environnement à partir du niveau du CDB.
Root Container :
Le root container est une partie spéciale du CDB, il est en lecture seule
et il stocke des métadonnées partagées telles que les fichiers journaux
de modifications (redo log files) et les fichiers de contrôle (control
files).
Il contient également des utilisateurs communs à toutes les PDB de ce
CDB.
Le root container ne contient pas de données utilisateur et ne peut
pas être utilisé pour stocker des données utilisateur.
Pluggable Database (PDB) :
Une PDB est une base de données autonome et isolée qui réside à
l'intérieur d'un CDB.
Chaque PDB a son propre espace de schéma, ses objets et ses données,
offrant une isolation complète des données entre les PDB au sein du
même CDB.
Les utilisateurs et les applications peuvent se connecter et interagir avec
une PDB comme s'il s'agissait d'une base de données autonome.
Seed Container (PDB$SEED) :
Le seed container est une PDB prédéfinie et en lecture seule qui existe
dans chaque CDB.
Il sert de modèle ou de modèle pour la création de nouvelles PDB. Lorsque
vous créez une nouvelle PDB, elle est basée sur le seed container.
Le seed container contient des objets système de base et des données
système de base, mais il n'est pas destiné à stocker des données
utilisateur.
d) Les entités communes entre CDBs et PDBs
Processus de Fond (Background Processes).
Redo log files
Mémoire (Memory) .
Controle files.
…
e) Les entités exclusives entre CDBs et PDBs
Tablespaces d'Application (Data files).
Utilisateurs Locaux et Rôles Locaux.
….