Cours02 03
Cours02 03
Cours02 03
de données
Dr. Cheikh Tidiane DIENG
Université Gaston Berger de Saint-Louis
UFR Sciences Appliquées et Technologie
Section Informatique
[email protected]
Module 3: Les processus d’arriére plan
• Les processus d’arrière plan (background process ou shadow process)
permettent d'assurer le bon fonctionnement de l’instance.
• Ils gèrent les flux entre la mémoire et les disques, et sont nécessaires
au bon fonctionnement de la base de données.
Les processus d’arriere plan (DBWn) (1)
• DBWn( Database Writer)
• Transfert les blocs de données modifiées du data buffer dans les fichiers disque de la
base de données.
• Le paramètre d’initialisation DB_WRITERS_PROCESSES permet de démarrer plusieurs
processus DBWR, afin d ’augmenter le taux d ’écriture sur disque. Le processus LGWR
est active a chaque écriture du DBWRn,
Les processus d’arriere plan (DBWn) (2)
• DBWn copie les blocs modifiés des tables, index, les segments d’annulation et les segments
temporaires à chaque occurrence d’un des évènements suivants:
• Toutes le 3 secondes DBWn copie une petite partie des blocs modifies sur disque
• Dès que la longueur de la « liste CHECKPOINT » dépasse un seuil défini en interne
• Chaque fois qu’un processus consulte la liste des blocs récemment utilisés (LRU list) et ne peut
trouver un emplacement libre après un nombre prédétermine en recherche de blocs. Ainsi la
lecture d’une table de très grande taille peut forcer l’ écriture des blocs modifies sur disque
• Lors de chaque CHECKPOINT
• Chaque fois que la base de données est arrêté anormalement
• Chaque fois qu’une table est effacée ou tronquée
• Chaque fois qu’un tablespace est mis en mode hors ligne ou lecture seule ou s’il fait partie d’une
sauvegarde en ligne.
Les processus d’arriere plan (DBWn) (3)
Plusieurs processus DBWn (numérotés DBW1, DBW2, DBW3, DBW4, etc .)
peuvent s’executer simultanément selon la plateforme et le système
d’exploitation, ce qui limite les risques de contention lors d’importantes
opérations portant sur plusieurs fichiers de données. Le nombre de ces
processus est défini à l’aide du paramètre « DB_WRITER_PROCESSES ». Si
votre système n’accepte pas les opérations d’E/S asynchrones, vous avez la
possibilité de créer un seul processus DBWn avec plusieurs esclave d’E/S
DBWn. Le nombre de esclave est spécifié au moyen du paramètre
d’initialisation « DBWR_IO_SLAVES ».
Les processus d’arriere plan (LGWR)
• LGWR(Log Writer)
• Écrit les données modifiées depuis la zone mémoire redo-log buffer dans
les fichiers redo-log. Cela est nécessaire pour éviter une incohérence de la
base de données en cas de panne d’instance. Les informations journaux
des blocs modifies doivent être écrites dans le fichier journaux avant que
les blocs modifies eux-mêmes ne soient écrits dans les fichiers de
données. Les fichiers de journaux doivent toujours être plus récents que
les fichiers de données. Le processus LGWR maintient toujours l’état le
plus à jour de la base, puisque le processus DBWn peut attendre avant de
consigner les blocs de données modifies dans les blocs de données.
Les processus d’arriere plan (LGWR)
• L’ecriture des tampon de reprise (Buffer redo log) doit etre termine physiquement avant
que le controle ne soit rendu au processus serveur demandant la validation.
• LGWR ecrit le tampon de journaux de reprise (Buffer redo log) dans les fichiers journaux
(fichiers redo log), sous l’une quelconque des conditions:
• Toutes les secondes (independamment du DBWn)
• Lors de la validation d’une transaction en cours COMMIT.
• Chaque fois que le tampon des journaux de reprise est rempli
• Lors de chaque Checkpoint (Voir processus CKPT)
• Lorsqu’il est déclenché par le processus DBWn.
Les processus d’arriere plan (CKPT) (1)
• CKPT(Checkpoint)
• Les points de contrôle (checkpoint) créent et enregistrent des points de synchronisation
dans la BD, de manière à faciliter sa récupération en cas de défaillance d’une instance ou
d’un media.
• Le processus CKPT exécute des points de contrôle (checkpoints), met à jour l’en-tête des
fichiers de données; lui-même n’écrit pas les données modifiées sur disque, c’est le role
du processus DBWn.
• Signe à des intervalles réguliers, le moment d ’écriture des données modifiées dans la
SGA dans les fichiers de la base de données.
• Ce processus s’execute naturellement à chaque basculement des fichiers journauux
(fichier redo log) ou peut etre execute manuellement par un DBA.
Les processus d’arriere plan (CKPT) (2)
• Le processus Checkpoint (CKPT) a un rôle important dans le bon fonctionnement d'une Instance.
Checkpoint inscrit les informations de point de reprise dans les fichiers de Controles et dans l'entête
de chaque fichier de données. C'est ce point de reprise (SCN) qui permet de rendre cohérent les
fichiers de controles et les fichiers de données, indispensable pour un processus de récupération.
• Le processus Checkpoint n'écrit pas les blocs sur le disque, c'est le role du processus
Database Writer DBWn.
Les processus d’arriere plan (CKPT) (3)
• Les numéros SCN enregistrés dans les fichiers garantissent que toutes les
modifications apportées aux blocs de base de données avant un numéro SCN ont été
écrites sur le disque.En cas d'arrêt anormal de l'instance, ce SCN marque le début
début des données à utiliser pour la récupération de l'instance.
Le processus Log Writer (LGWR) n’écrit pas dans le fichier de journalisation (REDO
LOG) tant que le processus CKPT n'a pas synchronisé, car tant que cette
synchronisation n'est pas faite, le fichier de journalisation contient des données
nécessaires à une éventuelle récupération après défaillance de l'instance.
ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE temp;
Créer un tablespace TEMPORARY
par défaut
• Pendant la création de la base de données :
ALTER TABLESPACE
• Mettre userdata
un tablespace OFFLINE;
en ligne :
ALTER DATABASE
DATAFILE '/u03/oradata/userdata02.dbf'
RESIZE 200M;
Ajouter des fichiers de données
à un tablespace
• Augmente l'espace alloué à un tablespace en ajoutant des fichiers de
données.
• La clause ADD DATAFILE permet d'ajouter un fichier de données.
• Exemple :
• Modifier
ALTER de manière
TABLESPACE dynamique ADD
text_data l'emplacement
DATAFILE;du fichier
par défaut :
ALTER SYSTEMunSET
• Supprimer tablespace supprime également des fichiers
db_create_file_dest = '/u01/oradata/dba01';
du système d'exploitation.
Obtenir des informations
sur les tablespaces
•Vous pouvez obtenir des informations sur les tablespaces et les fichiers de
données en interrogeant les éléments suivants :
• Tablespaces :
• DBA_TABLESPACES
• V$TABLESPACE
• Informations sur le fichier de données :
• DBA_DATA_FILES
• V$DATAFILE
• Informations sur les fichiers temporaires :
• DBA_TEMP_FILES
• V$TEMPFILE
Quelques exemples SQL pour les tablespaces
et les fichiers
• rem creation d'un tablespace nommé RBS contenant un fic de 10MO et des EXTENTS
de 1MO
CREATE TABLESPACE RBS DATAFILE 'E:\orant\database\TEST\Rbs1TEST.ora' SIZE 10M
DEFAULT STORAGE ( INITIAL 1024K NEXT 1024K PCTINCREASE 0);
ALTER TABLESPACE toto OFFLINE;
• rem changement des parametres d'un tablespace existant
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 1
MAXEXTENTS 300 PCTINCREASE 1);
• rem Ajout ajout d'un ficheir auto exyensible jusqu'a 100 MO
ALTER TABLESPACE toto ADD DATAFILE 'E:\orant\database\TEST\TEST.ora' SIZE 10M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
• rem passage en AUTO extension d'un fichier de tablespace existant
ALTER DATABASE DATAFILE 'E:\orant\database\TEST\Usr1TEST.ora' AUTOEXTEND ON;