0% ont trouvé ce document utile (0 vote)
65 vues28 pages

Guide complet sur le fonctionnement d'Oracle

Le document décrit le fonctionnement d'Oracle, en se concentrant sur les fichiers, programmes et mémoire nécessaires à la gestion de bases de données. Il aborde les fichiers de données, redo-log, et de contrôle, ainsi que les processus et threads essentiels comme DBWR, LGWR, et PMON. La gestion des tablespaces, y compris les types de tablespaces et leur gestion locale ou par dictionnaire, est également expliquée, mettant en lumière leur rôle dans l'optimisation des opérations de base de données.

Transféré par

Ansoumane Sampou
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
65 vues28 pages

Guide complet sur le fonctionnement d'Oracle

Le document décrit le fonctionnement d'Oracle, en se concentrant sur les fichiers, programmes et mémoire nécessaires à la gestion de bases de données. Il aborde les fichiers de données, redo-log, et de contrôle, ainsi que les processus et threads essentiels comme DBWR, LGWR, et PMON. La gestion des tablespaces, y compris les types de tablespaces et leur gestion locale ou par dictionnaire, est également expliquée, mettant en lumière leur rôle dans l'optimisation des opérations de base de données.

Transféré par

Ansoumane Sampou
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 PDF, TXT ou lisez en ligne sur Scribd

Fonctionnement d’Oracle

Fichiers
Programmes
Mémoire
Les fichiers
les fichiers de données .dbf: >90% volume de la BD;
dictionnaire de données (tables, index, vues …); paramétrage
admin (taille, emplacement ..)
les fichiers redo-log .rdo ou .log: historique des ordres
modifiant structure ou données; min 3 fichiers;
Les fichiers de contrôle .ctl : état de la base de données;
chemins d’accès et les noms de tous les fichiers (base de
données et redo-log)
les fichiers d’administration : fichier d'initialisation
[Link] ; fichiers de trace et d’alerte générés par Oracle;
fichiers paramètres d’outils
Les programmes
Sous UNIX : processus
Sous Windows : exécutables > processus >
threads
Les threads indispensables,
DBWR (DataBase Writer ou Dirty Buffer Writer),
chargé d'écrire le contenu des buffers dans les fichiers
de données
LGWR (Log Writer), chargé d'écrire le contenu des
buffers dans les fichiers Redo Log
PMON (Process Monitor), chargé de nettoyer les
ressources, les verrous et les processus utilisateurs
non utilisés
SMON (System Monitor), chargé de vérifier la
cohérence de la base de données et éventuellement sa
restauration lors du démarrage si besoin
Les threads optionnels
CKPT (CheckPoint), chargé d'écrire le contenu des buffers dans les fichiers de
données
RECO (Recoverer), il s'agit d'un thread optionnel permettant de résoudre les
transactions interrompues brutalement dans un système de bases de données
distribuées (par exemple un système de réplication de bases de données)
ARCH (Archiver). optionnel et n'existe qu'en mode ARCHIVELOG. Il permet de
dupliquer les fichiers Redo-Log dans un espace d'archivage.
Dnnnn (Dispatcher, nnnn représente une suite de nombre entiers) : est optionnel et
n'est présent que dans les configurations MTS (multi-threaded server). Il permet de
router les requêtes des postes clients-serveurs distants vers les autres serveurs. Il
existe au moins un processus Dnnnn pour chaque protocole de communication
Snnnn (Server, nnnn représente une suite de nombre entiers) : est n'est également
présent que dans les configurations MTS. Il permet de recevoir les demandes de
connexions distantes envoyées par le processus Dnnnn d'un serveur distant.
LCKn (Lock) est un thread de verrouillage utilisé lorsque Oracle Parallel Server est
installé.
La mémoire
SGA
le cache des blocs de données (buffer cache) :
données transitant de ou vers la base de données
les buffers redo-log :contient les blocs de données
(appelés Redo Entries) à modifier et les modifications à
effectuer sur ces données
la Shared Pool : partage des ordres SQL et PL/SQL,
structure BD, index …
la Java Pool : moteur Java intégré à la base.
une zone de communication inter-processus
des espaces partagés si l’option Multi-Thread est
activée
PGA
La zone PGA (Program Global Area)
permettant le fonctionnement des divers
processus (afin de stocker toutes les données
ne nécessitant pas d'être partagées).
Une connexion à une base Oracle engendre
donc la création d’un thread utilisateur et de
sa mémoire associée, la PGA.
Instance

Privilèges OS :
ORA_DBA
Privilèges Oracle :
SYSDBA ,
SYSOPER
Multitenant Architecture
Multitenant Architecture
Les fichiers Oracle dans une
architecture multi tenante
Principe du tablespace
L’ensemble des fichiers (données, redo-log,
contrôle) visibles par un administrateur constitue
la base de données physique.
Un développeur Oracle ou un utilisateur non
DBA ne se soucie pas de ces fichiers physiques.
De leur point de vue, ils manipulent des tables, des
vues ou des index, qui constituent la base de
données logique. C’est à l’administrateur Oracle
qu’incombe le soin de faire le lien entre la base
physique et la base de données logique. C’est la
notion du tablespace Oracle qui permet d’établir
ce lien
Principe du tablespace
Tablespaces
SYSTEM : dictionnaire de données
SYSAUX : différents outils ou options
d’Oracle (RMAN, Text, UltraSearch, Data
Mining, etc.)
tablespace de type UNDO pour gérer les
données en attente de validation ou
d’annulation
tablespace de type TEMPORARY (tris)
Tablespaces
Répartir les fichiers de la base de données sur différents disques
Faciliter les opérations de maintenance : sachant que la plus petite
entité cohérente de sauvegarde est le tablespace, le DBA peut en
créer plusieurs. Chacun d’eux contient des tables qui nécessitent
d’être sauvegardées à la même fréquence ;
Gérer des données utilisées par des applications différentes dans
une seule base de données. Cela permet de démarrer un seul jeu
de processus Oracle, et d’allouer une seule zone mémoire
partagée SGA pour des applications différentes ;
Spécialiser des tablespaces pour des tâches techniques internes à
Oracle : l’espace où seront stockés les segments d’annulation
(UNDO) et celui où Oracle effectuera ses tris (TEMPORARY).
Tablespaces

DB_BLOCK_SIZE
la gestion locale et dictionnaire des tablespaces

CREATE TABLESPACE test1


DATAFILE 'c:\oracle\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL ;

CREATE TABLESPACE test2


DATAFILE 'c:\oracle\oradata\TEST\test2_01.dbf' SIZE 20M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( INITIAL 100 K
NEXT 100 K
MINEXTENTS 2
MAXEXTENTS 100
PCTINCREASE 0 );
La gestion locale et dictionnaire
Le mode LOCALY MANAGED stocke tous les aspects d’allocation de
segments à l’intérieur de chaque tablespace et les informations sont
codées au format bitmap dans chaque en-tête de tablespace.
L’ancien mode DICTIONARY centralise l’allocation d’espace dans le
dictionnaire de données de chaque base.
La gestion locale et dictionnaire
La gestion locale (interne à chaque tablespace) facilite les opérations lors du déplacement de
tablespaces de base à base. Les accès au dictionnaire de données sont limités.
Le travail de l’administrateur Oracle est facilité, les fastidieuses opérations d’allocation
d’espace ne sont plus nécessaires.
La gestion centralisée dans le dictionnaire imposait des écritures dans les tables
correspondantes lors de chaque allocation ou libération d’espace. L’écriture de données
bitmap est plus rapide et évite ce goulot d’étranglement. Oracle peut supporter encore plus
d’utilisateurs.
Lors de la libération d’espace, le stockage dans les tables du dictionnaire ne permettait pas à
Oracle de détecter que deux espaces libres contigus pouvaient être agrégés. Cette opération
devait être effectuée par l’ordre ALTER TABLESPACE… COALESCE. La gestion locale
automatise cette opération.
Vous n’avez plus besoin de paramétrer la clause storage pour les tablespaces, tables et index.
Cette opération est automatique en gestion locale.
Vous pouvez maintenant déplacer un tablespace d’une base pour la raccrocher à une autre.
C’est très utile pour créer très rapidement un environnement de test. La composition du
tablespace étant locale, elle se déplace en même temps que le tablespace.
Mode DICTIONARY

INITIAL précise la taille de la première extension. Tout segment


possède une taille initiale à sa création.
CREATE TABLE emp ( NEXT précise la taille de la deuxième extension. Lorsque la
... première est remplie, Oracle alloue automatiquement une
liste des colonnes de la table... seconde de NEXT octets. Toutes les extensions futures se
... fondent sur cette valeur.
) PCT_INCREASE est un paramètre que nous positionnons
STORAGE ( toujours à zéro, mais que certaines personnes utilisent. Ce
INITIAL 100K pourcentage dirige l’incrément de taille des extensions
NEXT 100 K suivantes. Par exemple, INITIAL = 1 Mo, NEXT = 1 Mo et
PCT_INCREASE = 50 %. La première extension sera de 1 Mo,
PCTINCREASE 0 )
la deuxième de 1 000 + 50 % (1 000) = 1,5 Mo, la troisième de
TABLESPACE user_data; 2,25 Mo, etc. Calculez la taille nécessaire pour la vingtième
extension !
TABLESPACE indique le tablespace cible dans lequel sera créée
la table EMP.
Gestion LOCALE
CREATE TABLESPACE test1
DATAFILE 'c:\oracle\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

CREATE TABLESPACE test1


DATAFILE 'c:\oracle\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

CREATE TABLESPACE test1


DATAFILE 'c:\oracle\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SPACE MANAGEMENT AUTO ;

CREATE TABLESPACE test1


DATAFILE 'c:\oracle\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SPACE MANAGEMENT MANUAL ;
La défragmentation
Index
DROP INDEX..CREATE INDEX
ALTER INDEX REBUILD
ALTER INDEX COALESCE
Table
RENAME TEST to TEST_OLD ;
CREATE table TEST as select * from TEST_OLD
Tablespaces

CREATE USER nouvel_utilisateur


IDENTIFIED BY son_mot_de_passe
DEFAULT TABLESPACE tablespace_utilisateur
QUOTA UNLIMITED ON tablespace_utilisateur ;

ALTER DATABASE
DEFAULT TABLESPACE tablespace_utilisateur;
Les tablespaces temporaires

Zones mémoires utilisé pour les tris :


SORT_AREA_SIZE de la SGA
TEMPORARY TABLESPACE
SYSTEM

CREATE TEMPORARY TABLESPACE temp_data


TEMPFILE 'c:\oracle\oradata\TEST\temp_data01.dbf' size 50M
extent management local ;
CREATE USER nouvel_utilisateur
IDENTIFIED BY son_mot_de_passe
TEMPORARY TABLESPACE temp_data;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_data;


Tablespaces
Les tablespaces UNDO ou d’annulation
(remplacement des rollback segments).
Les tablespaces BIGFILES : Les tablespaces BIGFILES
permettent d’utiliser les possibilités des systèmes 64
bits de gérer de très gros fichiers. Un tablespace
BIGFILE ne contient qu’un seul fichier qui peut
comporter jusqu’à 232 blocs Oracle, soit environ 8
exaoctets ou à peu près 8 millions de teraoctets…

Vous aimerez peut-être aussi