0% ont trouvé ce document utile (0 vote)
67 vues14 pages

Oracle

Transféré par

Soumaya Mekouar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues14 pages

Oracle

Transféré par

Soumaya Mekouar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Pour repérer facilement l’instance, nom de l’instance identique au nom de la base

 Oracle = SGBD REL ET MULTIREL


 Recours mémoire plutôt qu’au disque

Chapitre 1 : Architecture du serveur de base de données Oracle


Chapitre 2 : Gestion de la mémoire utilisée par une base Oracle
Chapitre 3 : Gestion des processus associés à une base Oracle
Chapitre 4 : Gestion des fichiers d'une base Oracle
Chapitre 5 : Gestion des tablespaces

Chapitre 1 : Architecture du serveur de base de données Oracle

Identifier les taches : slide 8

Oracle s’installe sur plusieurs machines-dupliquer la base sur plusieurs serveurs

Rôles du DB administrateur
Créer la base
Modifier structure : physique (Fichiers) et logique (Logique : Objets :Tables )
Sauvegarde ( fichier de sauvegarde ) – Next year
Restauration : remplacer le fichier perdu par le fichier de sauvegarde
Récupération ( pas oblige, juste quand on veut que le fichier de sauvegarde ne soit pas a
jour ): fichier de la base qui décrivent les données des utilisateurs = mise a jour datafile a
partir des commandes fichier redolog
=> fichier de donnees coherant

Stratégie : !Lecture des données à partir de la mémoire( etat actuel de la base = ! datafile –
Modification au niveau de la mémoire ! ( pour des raisons performance optimisation du
temps de réponse )
Pas au niveau du disque

On lance la sauvegarde – fichier de sauvegarde pas à jour car au niveau de la mémoire –


base en mode lecture écriture.

Serveur, pas installe sur utilisateur

Oracle 1 1978 19c crée en 2019


Oracle Entreprise Manager : Graphique
Architectur
e

Fichiers Processus Memoire

I- Les fichiers

 Les fichiers de données (datafile) .dbf ( 90% base )


Donnes des utilisateurs ( non modifiees )
Données modifiées en attente de validation
Dictionnaire de données ( nom table , nom et type des champs , nom objets …)

 Les fichiers redo-log ou de journalisation (logfile) .log


Commandes validées par l’utilisateurs en termes de modification

 Les fichiers de contrôle (controlfile) .ctl


Multiplexage :plusieurs fichiers de contrôle
Dernier mode arrêt de la base
Chemins des datafiles et des logfiles ( pour identifier emplacement sur le disque et les
ouvrir )

 Les fichiers d’initialisation (pfile, spfile) .ora 1 seul spfile par défaut
Paramètres initialisation ( nom base -nom instance – chemin des ctrl files…)

II- Les processus

 Processus utilisateur : sur poste


 Processus serveur
 Processus BackGround

III- Les mémoires

Mémoire SGA % de la ram du serveur oracle Partagée par utilisateur


Mémoire PGA Privée

 Base démarrée en mode Open : datafile n’est pas forcement a jour. Dans la mémoire
oui mais pas forcément sur le datafile
Instance= SGA + processus background
Demarrer instance = demarrer processus background + allouer memoire sga
Base en action = instance + fichiers

 A une base oracle, on ne peut lui associer qune seule instance sur un seul serveur de
donnees
1 serv 4instances, chaque instance base differente.

 ORACLE RAC : Partitionnement horizontal = separer les lignes

 Architecture multi-tenant L’idée de l’architecture consiste à créer plusieurs bases de


données pdb en une seule base de données conteneur. Cdb juste datafile

 Service : gestionnaire de service windows ([Link]) il doit etre demarre

Etapes :
1- Démarrer le service « OracleServiceSID ».
2- Démarrer l’instance Oracle « SID ».

Bd arretee => fichiers de la base fermees donc les inf de connexion sont fichier externe
Le privilege SYSDBA permet de demarrer ou arreter base oracle.

Startup Nomount : Demarrer instance fichier param taille sga chemin ctrl files initialization
Mount :monter la base ctrl files
Open : open init ctrlfile logfile datafile

Je peux pas faire nomount puis mount car mount ouvre spfile et ctrl file
Alter database mount : ouvre juste les fichiers de ctrl
Alter database open …
Close : ferme datafile eet logfile
Alter database close immediate
Alter database dismount
Shutdown

Shutdown immediate n’attend pas fermeture users


Transactionnelle : termine les transactions ..

 Vues : Vue dynamique ( commence par v$) / vue du dictionnaire ( dba_) ne peut etre
accessible que si la base est ouverte.

Atelier pratique 1

Exercice 1/2:

1-

Mode d’arrêt Normal: attend la fin de toutes les sessions- accepte nvlles transactions
Mode d’arrêt Transactionnelle : attend que ttes les transactions soient over mais nattend pas
fin sessions
Mode d’arrêt Immédiat : déconnecte tt le monde ferme correctement la base

Applique point de reprise = mettre à jour datafile

Modification validée = mémoire sga

2-
Sys as sysdba
Select name from v$database

3- Startup force fait deux choses : arrêter la base en mode abort – démarrer en mode
open.
4- Fermer la base = fermer datafile et logfile = alter database close
5- Shutdown immediate

Exercice 3:
1- Select status from v$instance
Desc v$instance

Si startup nomount donc status started


Si startup mount donc status mounted
Si startup open donc status open

2- Startup equivalent a startup open


3- Alter database mount
4- Alter database open

Chapitre 2 : Gestion de la mémoire utilisée par une base Oracle

RAM = mémoire physique


Mémoire virtuelle dans le disque
SGA %ram
Spfile consulte ou modifie que par commandes sql
Pfile par editeur de texte
Create pfile ‘..’ from spfile = synchronizer pfile avec spfile

Param dynamique(pt etre modifie ds memoire ) Vs param statique(ne pt etre


mod que ds spfile ou pfile) V$PARAMETER.

Show parameter;
• NAME TYPE VALUE
• Affichage par ordre alphabétique
Show parameter mot
• Affiche la valeur des paramètres dont le nom contient ‘mot’

La commande ALTER SYSTEM permet de modifier les paramètres


en mémoire, dans le fichier SPFILE ou simultanément en mémoire et
dans le SPFILE.

• alter system set paramètre=valeur scope= memory ; //scope=destination de


la valeur dynamique
• alter system set paramètre=valeur scope= spfile ; //pour modifier param
statique et dynamique mais les autres juste dynamique
• alter system set paramètre=valeur scope= both // dynamique
Un datafile est organisé selon un bloc de données
=Unite echange entre buffercache et datafile et Stocke type de donnees :
tables, dictio donnees..
Composant de la mémoire SGA buffercache aussi sous bloc de donnees
Taille du bloc peut changer selon volume de donnees++ et nbre de transactions

La SGA est allouée au démarrage de l’instance et


libérée à l’arrêt de l’instance. La zone mémoire PGA est allouée pour le
fonctionnement
de chaque processus serveur. Session usr duree

6 composants dans la mémoire SGA

3 Obligatoire donc taille !=0


 Cache de tampons de la base de données (Buffer Cache)
• Tampon de journalisation (Redo Buffer) : Mémoire tampon pour
l’enregistrement des modifications apportées à la base de données.
• Zone de mémoire partagée (Shared Pool) : Zone de partage
des requêtes et du dictionnaire de données.

3 facultatifs
 Zone de mémoire Large Pool : Zone de mémoire optionnelle utilisée par
le processus serveur dans des configurations particulières.
• Zone de mémoire Java (Java Pool) : Mémoire utilisée pour la machine
virtuelle Java.
 Zone de mémoire (Streams Pool) : Elle est utilisée par Oracle Streams.
Nom Paramètre Initialisation Contenu
Buffer Cache Db_cache_size : taille Données non modifiées
du composant memoire ( select ) ou (update,
Db_block_size : taille insert, delete )modifiées
block donnees
Db_block_buffers : nbr
blocs de donnees au
niveau buffer cache
Redo Buffer Log_buffer ( statique i.e Commandes SQL qui
ne peut pas être modifie modifient les données
qu’au niveau de la en attente de validation.
mémoire ) taille du redo
buffer
Shared pool Shared_Pool_Size : 1- Library cache :
Taille allouee au ttes commandes+
composant memoire plan exécution ..
pour diminuer
temps exécution.
2- Dictionnary
cache: Éviter de
les chercher sur le
disque, il est
remonte à la
mémoire.
Java Pool Java_Pool_Size : Taille Si on utilise objet rel on
de la mémoire allouee utilise env Java
en SGA
Large Pool Large_Pool_Size : Taille Si on est PGA, large pool
du large_pool, >0 pour alleger la
automatiquement egale mémoire SGA
a0
Stream Pool : Stream_Pool_Size : Zone mémoire utilisee
taille mémoire allouee pour l’echange
pour la zone d’informations entre
processus

Commit : pour valider une modification


Rollback : annuler
Process serveur : Intermédiaire entre utilisateur et bd oracle.
Config serveur dédiée : Int entre 1 seule connexion utilisateur et oracle.
Partagée : plusieurs connexions utilisateurs

Show parameter db_cache_size  Pour voir parametre

VUES
V$instance: donne des info sur instance en cours
V$parameter: valeur des param d’initialisation conf au niv de la base
V$sga : infos sur la memoire sga
Show sga

Gestion automatique de la mémoire partagée SGA_TARGET


Ce paramètre est situé dans le fichier d’initialisation.
• Si sga_target = 0 et memory_target = 0 ==> Automatic Shared
Memory Management (ASMM) : désactivé
• Si sga_target > 0 et memory_target = 0 ==> ASMM : activé.

Ce paramètre permet de répartir automatiquement un espace mémoire


disponible entre le Buffer de données, la Shared Pool, la Large Pool
et la Java Pool. C’est une fonction très utile pour des bases dont
l’activité variable peut charger temporairement l’une de ces zones
mémoire.

Atelier pratique 2

Exercice 1 :

1-
Ne marche que si la base est demaree avec spfile
Si on veut que le changement commence du prochain startup => on modifie la
valeur du paramètre dans le spfile (fichier)

Si on veut immédiatement => on modifie la valeur dans memory

Modifier param dynamique dans le spfile et pas memory . pq ? pour pas que la
modification soit immédiate mais plutôt jusqu’au prochain démarrage.

2- Base démarrée avec pfile, on veut modifier param init :


Shutdown immediate
Modifier editeur de texte pfile
Demarrer base avec pfile

Exercice 2:

1- Show parameter mot = SELECT NAME,TYPE,VALUE FROM v$parameter


WHERE name = 'mot';
2- Show parameter db_cache_size et show paramteter db_block_size

Db_cache_size=0
La Gestion automatique de la mémoire partagée est activée. La mémoire
est automatiquement allouée à la zone qui en a le plus besoin. Il n’y a
pas de taille maximale pour
chaque zone.

db_block_size=8192 bytes.
Donc la taille du bloc de données est 8192 bytes.

3- Db_cache_size : taille du composant mémoire BUFFER CACHE


Db_block_size : taille d’UN BLOC DE DONNEES
Nbr block(db_block_buffers)= db cache/db_block

4- La commande show sga; permet de visualiser la taille de la mémoire sga.


database buffers est la taille allouée au composant mémoire Buffer
cache.
Donc le nombre de blocs de données alloués actuellement dans le
database Buffers est :
Nb de block de données alloués = database buffers / db_block_size
= 377487360/8192 = 46080 blocs de données

Exercice 3:

1-
Le redo-log buffer n’est pas concerné par la gestion automatique de la
mémoire car c’est un paramètre statique et donc on ne peut le modifier
qu’au niveau du spfile et pas dans la mémoire.

Chapitre 3 : Gestion des processus associés à une base Oracle


(Sans atelier pratique)

Cree au moment de la demande de cnx vers serveur de donnees oracle et


arrete au moment fermeture session utilisateur

Process serveur : Intermédiaire entre utilisateur et bd oracle.


Reside sur serveur de donnees
SELECT :
Afficher liste patient de service ophtalmo (dans data_file): Processus cherche les donnees
dans la mémoire

Circuit ideal : en vert oracle previligie voir dans la memoire


Si on trouve pas dans la mémoire : on cherche dans le disque data_file, et on les ecris
buffer_cache pour que prochaine fois on part pas jusqu’au disque,

On remonte des blocks de donnees et les ecrire dans buffercache, ce sont des donnees non
modifiees
4ce sont des extractions

UPDATE, DELETE, INSERT


Buffer_Cache: Donnees modifiees en attente
Redo_Buffer : Commandes en attente de validation
Pourquoi garder tt dans le shared pool ? Pour ne pas accéder au disque et tt avoir dans le
dictionnaire de données RAISON DE PERFORMANCE ET ECONOMIE DU TEMPS LA
PROCHAINE FOIS
Plan exécution et version compilée

Modification meme si elle est validee elle reste dans la mémoire


On raisonne soit par bloc de données max soit par timeout soit commande sql

Lorsque on peut pas ecrire on declanche dbwr


PROCESSUS DBWR : ecrire dans le data file les modif validees et en attente de validation
PROCESSUS LGWR : ecrire dans le logfile la commande validee dans le redobuffer apres
commit

Dans une configuration serveur dédié


• 1 processus utilisateur <--> 1 processus serveur
==>Processus serveur dédié à un processus utilisateur
• Nombre processus serveur = Nombre processus utilisateur

• Dans une configuration serveur partagé


• k processus utilisateurs <--> 1 processus serveur
==>Processus serveur partagé par plusieurs processus utilisateurs
Le processus serveur utilise une mémoire PGA exclusive

Processus Background OBLIGATOIRES (INSTANCE NE PEUT PAS ETRE


DEMARREE)

Process serveur : lire données

 DBWR (Database Writer) ecrire datafile


 LGWR (Log Writer)
 CKPT (Checkpoint) / déclenche DBWR pour écrire les modifications validees depuis le
Buffercache. / se déclenche apres un timout defini par admin de la base OU nbre max
de blocs modifiées validées
 PMON (Process Monitor) nettoie les transactions defaillante ni annulee ni validee
dans shutdown immediate
 SMON (System Monitor) arret(abort) et demarrage etat du datafile annule si ni
annulee ni validee et declanche recuperation pour avoir datafile a jour et coherent

Processus Background OPTIONNELS (INSTANCE PEUT DEMARRER)

ARC créer une copie du logfile means archiver sur le disque pr que si je
perds le logfile j’utilise celui sur le disque si base est en mode archive_log si
non on doit basculer selon mode operatoire Démarrer le processus ARC
(log_archive_start) declanche
Interet : recuperation des donnees
Si no archive log , le log file ne sera pas archive, meme si
log_archive_start=true

Si logfile1 sature, on ecris dans logfile2


Si logfile2 sature, je reviens logfile1 et ecrase
L’écriture se fait de manière cyclique, on a besoin de 2 logfiles

Listener
Infos de connexion sont pris en charge par processus d’écoute pour voir si
login correct, tt est correct, dans le cas contraire connexion rejetée
Listener demarre, cnx etablies, suite a un pb listener sarrete, instance
continue car optionnel, tt les utilisateurs pourront utiliser la base, car c le
processus serveur qui fait cnx déjà etablies
Suite a cet incident, il ya des utilisateurs qui veulent se connecter, ils ne
peuvent pas, car cest le listener qui etablit ces connexions nvlles

Connexion etablie, on switch vers process serveur

Chapitre 4 : Gestion des fichiers d'une base Oracle

S6 50.40
Vue dictionnaire commence par dba etat open, dynamique..
Fichiers de donnees .dbf
Data file ne peut pas etre vu par editeur de texte, mais par commandes

Log files ecriture cycliques, 2 grps redo log chaque grp au moins 1 log_file
Pq plusieurs log_files sachant qu’ils sont tous identiques. Multiplexer pour
eviter situation de perte.

Vous aimerez peut-être aussi