26
STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

Embed Size (px)

Citation preview

Page 1: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

STRUCTUREPHYSIQUE

STRUCTUREPHYSIQUE

STRUCTURE LOGIQUESTRUCTURE LOGIQUE

FONCTIONNALITES DE

BASE

FONCTIONNALITES DE

BASE

Oracle ARCHITECTURE INTERNE

Oracle ARCHITECTURE INTERNE

Page 2: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

ORGANISATION DES COUCHES ORACLE

ORGANISATION DES COUCHES ORACLE

NOYAUNOYAU

DICTIONNAIREDONNEES

SQL

PL/SQL

Page 3: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

FONCTIONNALITES DES COUCHES

FONCTIONNALITES DES COUCHES

NOYAUNOYAU

Intégrité des données,

Confidentialité des données,

Sauvegarde et restauration des données,

Gestion des accès concurrents,

Optimisation de l'exécution des requêtes (tuning),

Gestion des accélérateurs (index, cluster),

Stockage physique des données.

Intégrité des données,

Confidentialité des données,

Sauvegarde et restauration des données,

Gestion des accès concurrents,

Optimisation de l'exécution des requêtes (tuning),

Gestion des accélérateurs (index, cluster),

Stockage physique des données.

Page 4: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

FONCTIONNALITES DES COUCHES

FONCTIONNALITES DES COUCHES

DICTIONNAIREDONNEES

DICTIONNAIREDONNEES

Une méta-base qui permet de stocker les éléments suivants :

• Objets de la base : tables, views, index, synonymes, clusters, séquences, …

• Utilisateurs accédant à la base avec leurs privilèges et les droits qu'ils ont sur les objets.

• Informations relatives à l'activité de la base (connexions, ressources utilisées, verrouillages, …).

Une méta-base qui permet de stocker les éléments suivants :

• Objets de la base : tables, views, index, synonymes, clusters, séquences, …

• Utilisateurs accédant à la base avec leurs privilèges et les droits qu'ils ont sur les objets.

• Informations relatives à l'activité de la base (connexions, ressources utilisées, verrouillages, …).

Page 5: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

FONCTIONNALITES DES COUCHES

FONCTIONNALITES DES COUCHES

SQLSQL

Interface unique entre le noyau RDBMS et les outils. Cette couche assure :

• Vérification sémantique et syntaxique.

• Décomposition en opération élémentaires.

• Envoi au noyau pour traitement.

• Récupération des résultats et communication aux outils.

Interface unique entre le noyau RDBMS et les outils. Cette couche assure :

• Vérification sémantique et syntaxique.

• Décomposition en opération élémentaires.

• Envoi au noyau pour traitement.

• Récupération des résultats et communication aux outils.

Page 6: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PL/SQLPL/SQL

FONCTIONNALITES DES COUCHES

FONCTIONNALITES DES COUCHES

Extension procédurale de la couche SQL, intégrée au noyau depuis la version 7.1, elle permet :

• Réaliser les traitements procéduraux.

• Écrire des traitements stockés dans le dictionnaire (Procédures, fonctions, packages, triggers)

Extension procédurale de la couche SQL, intégrée au noyau depuis la version 7.1, elle permet :

• Réaliser les traitements procéduraux.

• Écrire des traitements stockés dans le dictionnaire (Procédures, fonctions, packages, triggers)

Page 7: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

ARCHITECTURE TECHNIQUE LA MEMOIRE

ARCHITECTURE TECHNIQUE LA MEMOIRE

Database Buffers

Database Buffers

REDO LOGBuffers

REDO LOGBuffers

SQL AreaSQL Area

Dictionary CacheDictionary Cache

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

Library CacheLibrary Cache

DatafileDatafile

PMONPMON

ARCHARCH

SMONSMONCKPT CKPT LGWRLGWRDBWRDBWR

RECORECO

LISTLIST

SRVSRV

DISPADISPAControlFile

ControlFile

Redo LogFile

Redo LogFile

Page 8: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

ARCHITECTURE TECHNIQUE LA MEMOIRE

ARCHITECTURE TECHNIQUE LA MEMOIRE

INSTANCEINSTANCE

Ensemble de ressources permettant d'accéder à une base de données Ensemble de ressources permettant d'accéder à une base de données

SGA System Global Area

PROCESS Mémoire

Processobligatoires

Processobligatoires

Process optionnelsProcess

optionnelsPMONPMON

SMONSMON CKPT CKPT

LGWRLGWRDBWRDBWR

LISTLIST

CKPT CKPT

ARCHARCHRECORECO

DISPDISP

Page 9: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

ARCHITECTURE TECHNIQUE LA MEMOIRE

ARCHITECTURE TECHNIQUE LA MEMOIRE

ELEMENTS de gestion d'une INSTANCE

ELEMENTS de gestion d'une INSTANCE

Fichier des paramètres PFILE

c:\oracle\admin\nom_base\pfile\initXXX.ora

sql> desc V$PARAMETER

Fichier des paramètres PFILE

c:\oracle\admin\nom_base\pfile\initXXX.ora

sql> desc V$PARAMETER

Vues systèmes pour la gestion de l'instance

V$THREADV$INSTANCEV$DATABASE

Vues systèmes pour la gestion de l'instance

V$THREADV$INSTANCEV$DATABASE

Paramètres dans le PFILE

db_block_sizedb_cache_sizecontrol_filesopen_cursorsbackground_dump_destcore_dump_desttimed_statisticsuser_dump_destdb_nameinstance_namejava_pool_sizelarge_pool_sizeshared_pool_sizeprocess

….

Paramètres dans le PFILE

db_block_sizedb_cache_sizecontrol_filesopen_cursorsbackground_dump_destcore_dump_desttimed_statisticsuser_dump_destdb_nameinstance_namejava_pool_sizelarge_pool_sizeshared_pool_sizeprocess

….

Page 10: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

db_block_size=4096db_cache_size=33554432 control_files=("C:\oracle\oradata\orabase\CONTROL01.CTL", "C:\oracle\oradata\orabase\CONTROL02.CTL", "C:\oracle\oradata\orabase\CONTROL03.CTL")

open_cursors=300 background_dump_dest=C:\oracle\admin\orabase\bdumpcore_dump_dest=C:\oracle\admin\orabase\cdumptimed_statistics=TRUEuser_dump_dest=C:\oracle\admin\orabase\udumpdb_domain=""remote_login_passwordfile=EXCLUSIVEcompatible=9.0.0db_name=orabasefast_start_mttr_target=300instance_name=orabasejava_pool_size=33554432large_pool_size=1048576shared_pool_size=33554432processes=150undo_management=AUTOundo_tablespace=UNDOTBSsort_area_size=524288

db_block_size=4096db_cache_size=33554432 control_files=("C:\oracle\oradata\orabase\CONTROL01.CTL", "C:\oracle\oradata\orabase\CONTROL02.CTL", "C:\oracle\oradata\orabase\CONTROL03.CTL")

open_cursors=300 background_dump_dest=C:\oracle\admin\orabase\bdumpcore_dump_dest=C:\oracle\admin\orabase\cdumptimed_statistics=TRUEuser_dump_dest=C:\oracle\admin\orabase\udumpdb_domain=""remote_login_passwordfile=EXCLUSIVEcompatible=9.0.0db_name=orabasefast_start_mttr_target=300instance_name=orabasejava_pool_size=33554432large_pool_size=1048576shared_pool_size=33554432processes=150undo_management=AUTOundo_tablespace=UNDOTBSsort_area_size=524288

Exemple d'un PFILEExemple d'un PFILE

Page 11: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

Ensemble de buffers permettant en mémoire les blocs de données lus

dans le fichiers de la base.

Un bloc contenu dans le buffer est accessible à tous les utilisateurs.

Le nombre de buffers a un grand impact sur le performances.

Plus Le nombre de buffers est grand, moins sont les entrées.

Découpée en 3 sous zones logiques différentes :

KEEP : données permanentes (référentiel). RECYCLE : données temporaires. DEFAULT : algorithme LRU (Least Recently Used).

Ensemble de buffers permettant en mémoire les blocs de données lus

dans le fichiers de la base.

Un bloc contenu dans le buffer est accessible à tous les utilisateurs.

Le nombre de buffers a un grand impact sur le performances.

Plus Le nombre de buffers est grand, moins sont les entrées.

Découpée en 3 sous zones logiques différentes :

KEEP : données permanentes (référentiel). RECYCLE : données temporaires. DEFAULT : algorithme LRU (Least Recently Used).

DATABASE BUFFERDATABASE BUFFER

Page 12: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

Vues système utilisées

V$SGA ; V$PARAMETER ;

Paramètres dans le PFILE :

DB_BLOCK_SIZE ; DB_BLOCK_BUFFERS

Taille globale = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS

Vues système utilisées

V$SGA ; V$PARAMETER ;

Paramètres dans le PFILE :

DB_BLOCK_SIZE ; DB_BLOCK_BUFFERS

Taille globale = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

DATABASE BUFFERDATABASE BUFFER

Page 13: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

REDO LOG BUFFERREDO LOG BUFFER

Zone associée aux fichiers de journalisation.

Lors d'une mise à jour de la base, l'image avant la mise à jour et après

sont écrites dans le buffer.

Un ordre COMMIT, ordonne à LGRW de consigner les transactions

dans les fichiers de journalisation.

L'augmentation de la taille de cette zone, croît la performance du

système (réduction des E/S).

Zone associée aux fichiers de journalisation.

Lors d'une mise à jour de la base, l'image avant la mise à jour et après

sont écrites dans le buffer.

Un ordre COMMIT, ordonne à LGRW de consigner les transactions

dans les fichiers de journalisation.

L'augmentation de la taille de cette zone, croît la performance du

système (réduction des E/S).

Page 14: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

REDO LOG BUFFERREDO LOG BUFFER

Vues système utilisées

V$SGA ; V$PARAMETER ;

Paramètres dans le PFILE :

LOG_BUFFER

Vues système utilisées

V$SGA ; V$PARAMETER ;

Paramètres dans le PFILE :

LOG_BUFFER

Page 15: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

SQL AREASQL AREA

LIBRARY CACHELIBRARY CACHE

DICTIONARY CACHEDICTIONARY CACHE

SHARED POOLSHARED POOL

Une zone mémoire partagée, utilisée pour réduire au maximum les entrées/sorties disque.

La répartition entre les sous-zones est logique et est gérée par le noyau.

D'autres zones ont été rajoutées, en fonction des versions d'Oracle.

Une zone mémoire partagée, utilisée pour réduire au maximum les entrées/sorties disque.

La répartition entre les sous-zones est logique et est gérée par le noyau.

D'autres zones ont été rajoutées, en fonction des versions d'Oracle.

POOL JAVAPOOL JAVA

PFILE

SHARED_POOL_SIZE

Vidage du pool

ALTER SYSTEM FLUSH SHARED POOL

PFILE

SHARED_POOL_SIZE

Vidage du pool

ALTER SYSTEM FLUSH SHARED POOL

Page 16: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

SQL AREASQL AREA

Stockage des informations du parsing (analyse requête SQL).

Réutilisation du parsing déjà effectué pour une requête donnée.

Parsing pénalise la ressource CPU.

Stockage des informations du parsing (analyse requête SQL).

Réutilisation du parsing déjà effectué pour une requête donnée.

Parsing pénalise la ressource CPU.

Vues du dictionnaire utilisées pour la zone SQL Area

V$SQLAREA V$SQL V$SQLTEXT

SQL> desc v$sqltextName Type Nullable Default Comments ------------ ------------ -------- ------- -------- ADDRESS RAW(4) Y HASH_VALUE NUMBER Y COMMAND_TYPE NUMBER Y PIECE NUMBER Y SQL_TEXT VARCHAR2(64) Y

Vues du dictionnaire utilisées pour la zone SQL Area

V$SQLAREA V$SQL V$SQLTEXT

SQL> desc v$sqltextName Type Nullable Default Comments ------------ ------------ -------- ------- -------- ADDRESS RAW(4) Y HASH_VALUE NUMBER Y COMMAND_TYPE NUMBER Y PIECE NUMBER Y SQL_TEXT VARCHAR2(64) Y

Page 17: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

DICTIONARY CACHEDICTIONARY CACHE

Conservation dans le cache les données en provenance du dictionnaire.

Accès par les process serveurs.

Minimiser les accès sur le dictionnaire.

Conservation dans le cache les données en provenance du dictionnaire.

Accès par les process serveurs.

Minimiser les accès sur le dictionnaire.

Vue du dictionnaire utilisées pour la zone SQL Area

V$ROWCACHE ;

Vue du dictionnaire utilisées pour la zone SQL Area

V$ROWCACHE ;

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

Page 18: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

LIBRARY CACHELIBRARY CACHE

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

Permet de stocker les premiers traitements (fonctions, procédures, packages)

lancés, pour un accès ultérieur plus rapide.

Accessibilité à ces traitements par tous les utilisateurs.

Permet de stocker les premiers traitements (fonctions, procédures, packages)

lancés, pour un accès ultérieur plus rapide.

Accessibilité à ces traitements par tous les utilisateurs.

Vue du dictionnaire utilisées pour la zone SQL Area

V$LIBRARYCACHE ;

Vue du dictionnaire utilisées pour la zone SQL Area

V$LIBRARYCACHE ;

Page 19: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

LARGE POOLLARGE POOL

SGA (SYSTEM GLOBAL AREA)

SGA (SYSTEM GLOBAL AREA)

Utilisé à partir de la version 8, pour une architecture en multithread.

Permet de stocker les informations de plusieurs sessions en multithreading.

Utilisé à partir de la version 8, pour une architecture en multithread.

Permet de stocker les informations de plusieurs sessions en multithreading.

Dans le PFILE

LARGE_POOL_SIZE

Dans le PFILE

LARGE_POOL_SIZE

Page 20: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

SGA (SYSTEM GLOBAL AREA)OUTIL DE SUIVI

SGA (SYSTEM GLOBAL AREA)OUTIL DE SUIVI

SHARED_POOL_SIZE

LOG_BUFFER

DB_BLOCK_SIZE

DB_BLOCK_BUFFERS

SHARED_POOL_SIZE

DB_NAME

INSTANCE_NAME

SHARED_POOL_SIZE

LOG_BUFFER

DB_BLOCK_SIZE

DB_BLOCK_BUFFERS

SHARED_POOL_SIZE

DB_NAME

INSTANCE_NAME

V$SGA

V$SQLAREA

V$LIBRARYCACHE

V$ROWCACHE

V$DATABASE

V$INSTANCE

V$SESSION

V$SGA

V$SQLAREA

V$LIBRARYCACHE

V$ROWCACHE

V$DATABASE

V$INSTANCE

V$SESSION

PFILEPFILE VIEWS SYSTEMVIEWS SYSTEM

Page 21: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREObligatoires

PROCESS MEMOIREObligatoires

DBWRxDBWRx Processus de lecture/écriture dans la base,

On peut en avoir plusieurs s'il y a une forte activité sur

la BDD.

Processus de lecture/écriture dans la base,

On peut en avoir plusieurs s'il y a une forte activité sur

la BDD.

Paramètres

DB_BLOCK_WRITE_BATCH : Nombre de blocs écrits par déclenchement.

DB_WRITER_PROCESSES : Nombre de process /Instance.

DB_IO_SLAVES : Générés par un DBWRi.

Paramètres

DB_BLOCK_WRITE_BATCH : Nombre de blocs écrits par déclenchement.

DB_WRITER_PROCESSES : Nombre de process /Instance.

DB_IO_SLAVES : Générés par un DBWRi.

Page 22: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREObligatoires

PROCESS MEMOIREObligatoires

LGWRLGWR Écrire des données des blocs du buffer REDO LOG en cas de COMMIT.

Assurer l'intégrité de la base.

Écrire des données des blocs du buffer REDO LOG en cas de COMMIT.

Assurer l'intégrité de la base.

Comme le nombre de fichiers de journalisation est au minimum égal à 2, on demander un switch explicite :

ALTER SYSTEM SWITCH LOGFILE;

Comme le nombre de fichiers de journalisation est au minimum égal à 2, on demander un switch explicite :

ALTER SYSTEM SWITCH LOGFILE;

Page 23: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREObligatoires

PROCESS MEMOIREObligatoires

SMON - System MonitorSMON - System Monitor

- Utilisé au démarrage de la base,

- Restaure la base suite à un arrêt anormal.

- Nettoie les segments temporaires lors du redémarrage.

- Restitue la base dans un état cohérent en cas d'arrêt avec

des transactions en cours.

- Défragmente la base.

- Utilisé au démarrage de la base,

- Restaure la base suite à un arrêt anormal.

- Nettoie les segments temporaires lors du redémarrage.

- Restitue la base dans un état cohérent en cas d'arrêt avec

des transactions en cours.

- Défragmente la base.

Page 24: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREObligatoires

PROCESS MEMOIREObligatoires

PMON - Process MonitorPMON - Process Monitor

- Traitement de récupération des processus utilisateur.

- Nettoyage de la mémoire cache et des ressources libérées

par un process utilisateur.

- Traitement de récupération des processus utilisateur.

- Nettoyage de la mémoire cache et des ressources libérées

par un process utilisateur.

Page 25: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREObligatoires

PROCESS MEMOIREObligatoires

CKPT - CHECKPOINTCKPT - CHECKPOINT

Provoque l'activation du DBWR pour écrire les blocs

modifiés depuis le dernier point de contrôle,

S'exécute automatiquement quand les fichiers de

journalisation sont pleins.

Provoque l'activation du DBWR pour écrire les blocs

modifiés depuis le dernier point de contrôle,

S'exécute automatiquement quand les fichiers de

journalisation sont pleins.

Paramètre dans PFILE

CHECKPOINT_PROCESS = TRUE

Paramètre dans PFILE

CHECKPOINT_PROCESS = TRUE

Page 26: STRUCTURE PHYSIQUE STRUCTURE LOGIQUE FONCTIONNALITES DE BASE Oracle ARCHITECTURE INTERNE

PROCESS MEMOIREOPTIONNELS

PROCESS MEMOIREOPTIONNELS

ARCH : Recopie des fichiers de journalisation sur un média.- Paramètres

LOG_ARCHIVE_START ;LOG_ARCHIVE_DEST ;

- RECO : Lance les restaurations sur les bases distribuées.

- SNAP : Rafraîchissement automatique des snapshot.

- DISPATCHER (Dxxxx) : MultiThreading.

- LSTNR : Agent d'écoute pour les clients de la base.

- LCK : Gestion des verrous pour les serveurs parallèle d'Oracle.

ARCH : Recopie des fichiers de journalisation sur un média.- Paramètres

LOG_ARCHIVE_START ;LOG_ARCHIVE_DEST ;

- RECO : Lance les restaurations sur les bases distribuées.

- SNAP : Rafraîchissement automatique des snapshot.

- DISPATCHER (Dxxxx) : MultiThreading.

- LSTNR : Agent d'écoute pour les clients de la base.

- LCK : Gestion des verrous pour les serveurs parallèle d'Oracle.