CoursDBAOracle(1).doc

(389 KB) Pobierz
Cours DBA Oracle

Cours DBA Oracle 1

 

Une instance oracle (un lancement de la base) :

 

·         Permet d’accéder à une base de données Oracle

·         N’ouvre qu’une seule base de données

·         Est constituée de structure de processus d’arrière plan et de structure mémoire (SGA).

 

Instance

 

Mémoire SGA (structures mémoire)

Zone de mémoire partagée

Cache « librairy »

Cache du dictionnaire de données

Gestion de tampons de la base de données

Tampons de journalisation

Zone de mémoire Java

Zone de mémoire LARGE SPOOL

 

Structure de processus d’arrière-plan

Pmon

Smon

Dbwr

Lgwr

Ckpt

Autres

 

 

 

Mémoire SGA (system or shared global area) : alloué au démarrage de l’instance, composante fondamentale d’une instance Oracle.

On peut la voir par show SGA :

 

Mémoire PGA (Program global area) : alloué au démarrage du processus serveur.

 

3 types de fichiers :

 

1)      fichiers de paramètres : a) fichier PFILE init.ora, b) fichier de mots de passe (pwd …).

2)      Fichiers de la base : a) fichiers de données (datafile), b) fichiers de contrôle, c) fichiers de journalisation ON LINE (redo log),

3)      Fichiers de journalisation archivés OFF LINE (arch log),.

 

En V9, La mémoire SGA :

 

·         Est dynamique, 

·         Sa taille est définie par le paramètre SGA_MAX_SIZE

·         Son allocation et son suivi sont effectués sous la forme de granules, par les composant de la SGA :

·         => allocation e mémoire virtuelle contiguë,

·         => taille des granules définie en fonction de la valeur totale estimée de SGA_MAX_SIZE

 

La Zone de mémoire partagée :

·         permet de stocker :

·         => les dernières instructions SQL exécutées,

·         => les dernières définitions de données utilisées

·         est constituée de 2 structures mémoire clés liées aux performances :

·         => cache « librairy »,

·         => du dictionnaire de données

·         est définie par le paramètre SHARED_POOL_SIZE (alter system set SHARED_POOL_SIZE = 64M; ).

 

Le Cache “librairy” :

·         conserve des informations sur les dernières instructions SQL et PL/SQL utilisées,

·         permet le partage des instructions communes,

·         est gérée par l’algorithme LRU (list recent use),

·         est composée de 2 structures :

·         => Zone SQL partagée

·         => Zone PL/SQL partagée

·         sa taille dépend du dimensionnement de la zone de mémoire partagée.

 

Le cache du dictionnaire de données :

·         contient les dernières définitions utilisées dans la base,

·         contient des informations sur les fichiers, les tables, les index, les colonnes, les utilisateurs, les privilèges et d’autres objets de la base de données.

·         Au cours de l’analyse, le processus serveur recherche des informations dans le cache du dictionnaire, pour résoudre les noms d’objet et valider l’accès.

·         La mise en mémoire cache des informations du dictionnaire de données réduit le temps de réponse aux interrogations et aux instructions LMD,

·         Sa taille dépend du dimensionnement de la zone mémoire partagée.

 

Le cache de tampons de la base :

·         Conserve des copies des blocs de données extraits des fichiers de données,

·         Permet des gains de performances considérables, lors de l’obtention et de la mise à jour de données,

·         Est géré par un algorithme LRU,

·         Le paramètre DB_BLOCK_SIZE détermine la taille du bloc principal.

·         Est composé de sous-caches indépendants :

·         => DB_CACHE_SIZE

·         => DB_KEEP_CACHE_SIZE

·         => DB_RECYCLE_CACHE_SIZE

·         peut être redimensionné dynamiquement :

·         alter system set DB_CACHE_SIZE = 96M;

·         le paramètre DB_CACHE_ADVICE peut être défini pour collecter des statistiques permettant de prévoir le comportement du serveur en fonction de différentes tailles du cache.

·         La vue V$DB_CACHE_ADVICE affiche les statistiques collectées.

 

Le tampon de journalisation :

·         Enregistre toutes les modifications apportées aux blocs de données de la base.

·         Sa principale fonction est la récupération des données.

·         Les modifications enregistrées constituent des entrées de journalisation.

·         Les entrées de journalisation contiennent des informations permettant de reconstruire des modifications,

·         La taille du tampon est définie par le paramètre LOG_BUFFER.

 

La zone de mémoire LARGE POOL :

 

·         Est une zone facultative de la mémoire SGA,

·         Réduit la charge de la zone de mémoire partagée,

·         Est utilisée pour :

·         => La mémoire allouée par session (UGA) au serveur partagé,

·         => les processus serveurs d’E/S

·         => les opérations de sauvegarde ou de restauration ou RMAN (recovery manager).

·         => les mémoire tampon des messages d’exécution en parallèle : PARALLEL_AUTOMATIC_TUNING = TRUE

·         n’utilise pas de liste LRU,

·         sa taille est définie par le paramètre : LARGE_POOL_SIZE,

·         peut-être redimensionné dynamiquement.

 

La zone de mémoire JAVA :

·         répond aux besoins d’analyse des commandes Java.

·         Est nécessaire si Java est installé et utilisé.

·         Sa taille est définie par le paramètre JAVA_POOL_SIZE.

 

La mémoire PGA :

·         Est réservée à chaque processus utilisateur qui se connecte à une base de données Oracle.

·         Est alloué lors qu’un processus Oracle est crée,

·         N’est utilisé que par un seul processus.

 

 

Différence d’allocation mémoire PGA, entre serveur dédié et le serveur partagé :

 

1           Zone de mémoire

Serveur dédié

Serveur partagé

Type de mémoire allouée par session

Privée

Partagée

Emplacement de la zone persistante

Mémoire PGA

Mémoire SGA

Emplacement de la zone d’exécution (SELECT)

Mémoire PGA

Mémoire SGA

Emplacement de la zone d’exécution (LMD/LDD)

Mémoire PGA

Mémoire SGA

 

Structure de processus :

 

Oracle utilise différents types de processus :

 

·         Processus utilisateur : est démarré au moment où un utilisateur de la base de données effectue une demande de connexion au serveur Oracle

·         Processus serveur : se connecte à l’instance Oracle et démarre lorsqu’un utilisateur établit une session.

·         Processus d’arrière-plan : sont lancé au démarrage d’une instance Oracle.

 

Le processus utilisateur :

 

·         Est un programme qui demande une interaction avec le serveur Oracle,

·         Doit d’abord établir une connexion,

·         N’entre pas directement en interaction avec le serveur Oracle.

 

Le processus serveur :

·         Est un programme qui entre directement en interaction avec le serveur Oracle.

·         ...

Zgłoś jeśli naruszono regulamin