• Aucun résultat trouvé

Architecture d ’ ’ Oracle Oracle

N/A
N/A
Protected

Academic year: 2022

Partager "Architecture d ’ ’ Oracle Oracle"

Copied!
55
0
0

Texte intégral

(1)

© Richard CHBEIR

Architecture d

Architecture d Oracle Oracle

(2)

Plan Plan

Architecture

Structure Physique

Composants Processus

Traitement de requêtes

Structure Logique

(3)

Architecture Architecture

Un serveur Oracle est composé de 3 éléments

Mémoire

System Global Area ou SGA

Disque

Données, fichiers Redo, fichiers de contrôle,

fichiers de paramètres, fichiers de mot de passe, etc.

Processus

Services d'arrière plan ou demons

(4)

Architecture Architecture

SGA (System Global Area)

Permet de contenir les structures d'une instance Oracle

Contient les données et les informations de contrôle pour le serveur Oracle

Est allouée de la mémoire virtuelle de

l'ordinateur où réside le serveur Oracle

(5)

SGA (System Global Area) SGA (System Global Area)

Shared Pool Area Buffer

de données

Buffer Redo log

SQL area

(parsing des requêtes)

Library cache (exécutable PL/SQL)

Dictionary cache

(infos sur les méta-données) Zone mémoire

réservée aux buffers de

données, d’index et de

rollback segments.

Espace paramétrable

Zone mémoire qui enregistre

l ’activité transactionnelle

des utilisateurs.

Large Pool (Optionnel)

Utilisé pour la gestion des

bases de données parallèles

(6)

Composants de SGA Composants de SGA

Buffer de données

Est utilisé pour stocker les données en mémoire afin d'accélérer l'interrogation et/ou la modification

Aucune modification est faite directement sur les données du disque

Oracle lit les données suite à la demande d'un processus utilisateur et ensuite valide les

modifications sur le disque

Il utilise un algorithme nommé LRU (Least-Recently Used) pour déterminer les données à libérer du

cache

La taille de chacun des buffers

(DB_BLOCK_BUFFERS) est égale à la taille d'un

(7)

Composants de SGA Composants de SGA

Buffer de données Buffer Redo Log

Il stocke une information spéciale nommé Redo permettant à Oracle de reconstruire les modifications des données en cas de panne

Bloc de données modifié Emplacement

Nouvelle valeur

L'information Redo est stockée dans le buffer Redo log à chaque modification de données effectuée par un utilisateur

L'information Redo reste dans le buffer Redo log jusqu'à ce qu'Oracle la stocke sur le disque

Sa taille est définie par LOG_BUFFER

(8)

Composants de SGA Composants de SGA

Buffer de données Buffer Redo Log Shared Pool

Permet de stocker plusieurs éléments cruciaux pour la gestion des données :

Library cache : permet d'analyse l'ordre d'exécution d'une requête SQL et de définir un plan d'exécution. Si la même requête est ré-exécutée, le serveur n'analyse pas son ordre.

Cela permet d'améliorer la performance des applications

Dictionary (ou row) cache : utilisé pour le stockage des méta- data dans la mémoire afin d'accélérer l'accès au dictionnaire et les mécanismes de contrôle (nom d'utilisateurs, privilèges, etc.).

(9)

Composants Composants

Disque

(10)

Composants Composants

Disque

Les fichiers de données (DataFiles)

Ils sont utilisés pour stocker le dictionnaire de données et les objets de la base de données.

Ces fichiers sont souvent très volumineux.

Les données dans le buffer de données et le dictionnaire cache

sont récupérées de ces fichiers

Une base de données contient au moins

(11)

Composants Composants

Disque

Les fichiers Redo Logs

Ils sont utilisés pour stocker les informations Redo sur le disque afin de garantir la reconstruction

des données en cas de panne Une BDD Oracle requiert au moins

2 fichiers redo log 2 familles de redo log :

1- ONLINE pour la restauration face à une défaillance de l’instance

(12)

Composants Composants

Disque

Les fichiers de contrôle

Ils sont utilisés pour définir la localisation des composants disque sur le serveur.

La localisation de fichiers de données et les redo logs y apparaissent.

Pour cette raison, ils sont modifiés à chaque ajout ou suppression des fichiers redo logs ou fichiers de données.

Oracle lit les fichiers de contrôle au démarrage de la BDD.

Une BDD requiert au moins un fichier de contrôle

(13)

Composants Composants

Disque

Le fichier de paramètres

Utilisé pour définir les caractéristiques

d'une instance Oracle (taille SGA, Bloc Oracle, etc).

C'est le fichier init.ora

(14)

Composants Composants

Disque

Le fichier de mot de passe

Il est utilisé pour établir l'authenticité des utilisateurs privilégiés de BDD Oracle.

Sans ce fichier, la BDD est administrable avec n'importe quel outil de gestion (ex : SQL*Plus)

(15)

Les processus ORACLE Les processus ORACLE

Effectuent les fonctions nécessaires au

traitement simultané de plusieurs requêtes utilisateurs, sans compromettre

L'intégrité

La performance du système

(16)

Les processus ORACLE Les processus ORACLE

2 types de processus

Processus utilisateur

Processus sur le serveur oracle

Processus Serveur

Processus Background (Oracle.exe)

Ces processus exploitent Program Global

Area ou PGA

(17)

Les processus ORACLE Les processus ORACLE

Un utilisateur peut se connecter à Oracle

Connexion directe au serveur

L'utilisateur se connectant à un serveur Unix exécutant Oracle lance Server Manager

Connexion à deux tiers (Client-serveur)

L'utilisateur se connectant à une machine Windows XP exécute Developper/2000

Connexion à trois tiers

L'utilisateur lançant un explorateur réseaux sous Windows exécute une application sur un autre

poste qui extrait les données sur un serveur Oracle

(18)

Les processus ORACLE Les processus ORACLE

Processus utilisateur (ou client)

Il fonctionne sur la machine du client

Il démarre lors de l'appel de l'outil ou de l'application

SQL*Plus, Server Manager, Developper/2000, Oracle Entreprise Manager, etc.)

Il se termine lorsque l'utilisateur quitte ou interrompre l'application

Il appelle le serveur Oracle

(19)

Les processus ORACLE Les processus ORACLE

Processus serveur

Il fonctionne sur la machine serveur (hôte)

Suite à la demande du processus utilisateur, le processus serveur lit les données des fichiers à l'intérieur du buffer de données

Dans une config de serveur dédié

1 processus utilisateur + 1 processus serveur Dans une config MTS (mutlithreads)

Partage de processus

Il utilise une PGA (Program Global Area) exclusive Il envoie les résultats au client

(20)

Zone m

Zone m é é moire du processus moire du processus (PGA)

(PGA)

Est une zone mémoire contenant des données relatives à un processus serveur unique ou à un thread unique

Elle n'est ni partagé ni accessible en écriture

Elle est allouée lorsqu'un processus serveur est créé

Elle contient

Une zone de tri utilisée avant le traitement ou le renvoi du résultat à l'utilisateur

Des informations sur la session L'état du curseur

Processus Serveur

(21)

Background

Background Threads Threads

DBWR (Data Base WRiter)

Ecrire les blocs modifiés dans le cache de données sur les disques. Compte tenu de la journalisation

(Redo log), les blocs ne sont pas forcément écrits à la validation des transactions.

LOGWR (LoG WRiter)

Ecrire dans les fichiers Redo Log le contenu du cache Redo Log

SMON (System MONitor)

Réalise le Recovery au moment du Startup Efface les segments temporaires

(22)

Background

Background Threads Threads

PMON (Process MONitor)

Vide le cache

Libère les ressources bloquées

Ré-active si nécessaire les dispatchers

ARCH (ARCHiver)

Copie les redo log, quand ils sont pleins, dans les fichiers d ’archive.

RECO

Termine ou annule les transactions en suspend dans les BD distribuées

LISTENER ou KMNLS

Permet d’établir des connexions Client-Serveur avec la base de données

(23)

Traitement d'une

Traitement d'une requête (ici) requête (ici)

Il y a 3 étapes

Analyse Exécution

Récupération

(24)

Traitement d'une requête Traitement d'une requête

Processus Utilisateur Processus Serveur

Select * From emp;

1- Analyse

Envoie requête Envoie état

Analyse Syntaxique Analyse Sémantique Plan ou ordre d'exécution

(25)

Traitement d'une requête Traitement d'une requête

Processus Utilisateur Processus Serveur

Select * From emp;

2- Exécution

Préparation à l'extraction

(26)

Traitement d'une requête Traitement d'une requête

Processus Utilisateur Processus Serveur

Select * From emp;

3- Récupération

Envoie Données Envoie Données

….

(27)

Traitement d'une MAJ Traitement d'une MAJ

Processus Serveur Update emp;

SET sal = sal*1.5

Fichiers Fichiers INSTANCE

Buffer de données

Buffer

Redo log Shared Pool

(28)

Traitement d'une MAJ Traitement d'une MAJ

Processus Serveur Update emp;

SET sal = sal*1.5

Fichiers INSTANCE

2

Buffer de données

Buffer

Redo log Shared Pool

(29)

Traitement d'une MAJ Traitement d'une MAJ

Processus Serveur Update emp;

SET sal = sal*1.5

Fichiers Fichiers INSTANCE

3

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(30)

Traitement d'une MAJ Traitement d'une MAJ

Processus Serveur Update emp;

SET sal = sal*1.5

Fichiers INSTANCE

4

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(31)

Traitement d'une MAJ Traitement d'une MAJ

Processus Serveur Update emp;

SET sal = sal*1.5

Fichiers Fichiers INSTANCE

5

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(32)

Rollback

Rollback Segment Segment

Rollback Segment

Table

Nouvelle Image Ancienne

Image

(33)

Traitement des COMMIT Traitement des COMMIT

Processus Serveur

Fichiers Fichiers INSTANCE

1

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

Enregistrement de validation

(34)

Traitement des COMMIT Traitement des COMMIT

Processus Serveur

Fichiers INSTANCE

2 LGWR

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(35)

Traitement des COMMIT Traitement des COMMIT

Processus Serveur

Fichiers Fichiers INSTANCE

3

LGWR

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(36)

Traitement des COMMIT Traitement des COMMIT

Processus Serveur

Fichiers INSTANCE

4

LGWR

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(37)

Traitement des COMMIT Traitement des COMMIT

Processus Serveur

Fichiers Fichiers INSTANCE

5

LGWR

Buffer de données

Buffer Redo log

Shared Pool Library Cache Cache du dictionnaire

(38)

Architecture Architecture

Une BDD Oracle

Représente les structures physiques et logiques et se compose des fichiers du OS

Est identifée par DB_Name au niveau du OS

Une instance

Est un moyen d'accéder à une base de données Oracle

Ouvre toujours une seule et unique base de données Identifié par Oracle_SID au niveau du OS

(39)

Une BDD Oracle Une BDD Oracle

La structure physique

Fichiers de contrôles Fichiers redo log

Fichiers de données

La structure logique

Tablespaces Segments Extents

Blocs de données

(40)

Structure logique Structure logique

BDD Oracle

TableSpace

Segment

Extent

Fichier de données

Oracle Système d'exploitation

(41)

Structure logique Structure logique

TableSpace

Une BDD Oracle est divisée en plus petites zones logiques nommées tablespaces

Un Tablespace ne peut appartenir qu’à une seule BDD

Chaque Tablespace est constitué d’un ou plusieurs fichiers de données stockés sur disque

Un fichier ne peut appartenir qu’à un seul Tablespace à la fois

Une fois un fichier ajouté à un Tablespace, on ne peut plus le retirer ou l’associer à un autre Tablespace

(42)

Structure logique Structure logique

Fichier Fichier Fichier Fichier Fichier

de Tablespace

Tablespace System System

Tablespace Tablespace

IQ2IQ2

Tablespace Tablespace

Users Users

Table Table Table

(43)

Structure logique Structure logique

TableSpace

Chaque BDD possède au moins un Tablespace appelé « system »

Contenant les tables du dictionnaire de données

On peut ajouter des Tablespaces supplémentaires pour grouper des utilisateurs ou des applications

Tablespace user contient les tables des utilisateurs

TableSpace IQ2 contient les tables des étudiants en IQ2

Un Tablespace peut être physiquement sur un autre disque

(44)

Visibilité des tablespaces

Chaque utilisateur possède :

Un tablespace par défaut :

– Est celui dans lequel les tables de l'utilisateur seront créées de façon privilégiée

Un tablespace temporaire

– Utilisé pour les tris et en cas d’insuffisance en mémoire centrale

Structure logique

Structure logique

(45)

Structure logique Structure logique

Intérêts de plusieurs tablespaces spécialisés :

Distribuer les E/S en fonction des applications Gérer les quotas utilisateurs

Passer un tablespace OFFLINE sans perturber les autres tablespaces

Mieux utiliser les supports de stockage

Distribuer les index et les données sur des

supports différents pour une meilleure fluidité

(46)

Structure logique Structure logique

Extent

Ensemble contiguë de blocs de données alloués simultanément à un segment

Segment

Tout segment est créé avec au moins un extent (Initialextent)

Lorsqu’un segment est plein, attribution d’un

nouveau extent

(47)

Structure logique Structure logique

Les types de segments dans un tablespace :

Segments de données

Stockent les données. Chaque table a un et un seul

segment qui contient toutes les données de la table. Créé automatiquement

Segments d’index

Stockent les infos sur les index séparément de données.

Créés lors de la création d’un index

Segment d’amorçage

Créé dans le Tablespace SYSTEM, contient les définitions du dictionnaire de données

(48)

Structure logique Structure logique

Les types de segments dans un tablespace :

Segments temporaires

Pour exécution des requêtes nécessitant de l’espace disque temporaire

Sont crées et détruits automatiquement par des ordres SQL ayant besoin d’espace temporaire

une requête qui contient les trois clauses DISTINCT, GROUP BY et ORDER sont « gourmandes » en espace temporaire

(49)

Structure logique Structure logique

Les types de segments dans un tablespace :

Segments d’annulation (RollBack)

Enregistrent les actions, et les données avant modification Ne sont utilisables que pour les objets du Tablespace

SYSTEM

Seul un segment ROLLBACK qui n’est pas en cours d'utilisation peut être détruit

(50)

Structure logique Structure logique

Blocs de données

Plus petite unité logique

La taille d’un bloc peut être choisie au

moment de l’initialisation d’une base. Elle correspond obligatoirement à un multiple de la taille des blocs du système d’exploitation.

Exemple, un bloc dans un système comme Linux occupe 1024 octets, et un bloc ORACLE occupe typiquement 4 096 ou 8 092 octets.

(51)

BLOCS , EXTENSIONS ET SEGMENTS SEGMENT (128 K)

EXTENT (32 K) EXTENT (32 K)

Bloc de 4K

Structure logique

Structure logique

(52)

Les objets d'une BDD Oracle

Table : contient les données d’une BDD

Index : structure contenant l’adresse physique de

chaque ligne d’une table ou d’un cluster. Accès direct à l’information.

Vue : représentation logique de données issues d’une combinaison d’une ou plusieurs tables ou vues

Synonyme : Attribution de plusieurs noms à un même objet

Séquence : générateur d’entiers uniques

Structure logique

Structure logique

(53)

Les objets d'une BDD Oracle

Les clusters : permettent d'établir un groupement de tables qui ont des colonnes communes pour accès rapide aux lignes issues d’une jointure

Procédure : ensemble de commandes (écrites en PL/SQL, SQL, C, Java, etc.) stockées dans la BDD Fonction : ensemble de commandes (écrites en PL/SQL, SQL, C, Java, etc.) qui retourne une valeur Package : collection de fonctions et procédures (privé et public)

Déclencheur (Trigger) : procédures associées à un

Structure logique

Structure logique

(54)

Les objets d'une BDD Oracle

Source et classe Java Tableaux (VARRAY) Schéma XML

Structure logique

Structure logique

(55)

Structure logique

Structure logique

Références

Documents relatifs

Oracle Clusterware includes the High Availability (HA) service stack which provides the infrastructure to manage the Oracle Database as a resource in the cluster environment..

It describes how Oracle Enterprise Manager, the Automatic Workload Repos- itory, and the Automatic Database Diagnostic Monitor are used for performance monitoring and management,

• Oracle DatabaseVault, Oracle Audit Vault, Oracle Total Recall Faciliter la mise en conformité réglementaire sans.. modification

Les caractéristiques de l’instance (nom du ficher de contrôle, nombre de processus pouvant se connecter simultanément, taille d’un bloc de données, etc.) sont

Le Redo Log buffer (ou cache Redo-log) contient les blocs de données à modifier et les modifications à effectuer sur ces données, avant que l'ensemble de ces mises à jour de la

Installation du logiciel Oracle Database Création de bases de données.. Configuration de l’environnement réseau Gestion de

Gandhi disait : « Quand ce que vous pensez, ce que vous dites et ce que vous faites sont en harmonie, alors le bonheur vous appartient. » En rendant grâce à ces sages propos,

– SCHEMA est un param`etre optionnel pour identifier le sch´ema de la base de donn´ee dans laquelle cette table doit ˆetre plac´ee.. Par d´efaut, c’est celui