Vous êtes sur la page 1sur 14

COMPLEMENTS ORACLE (Ateliers)

O. EL BEQQALI

I/ Les paramètres d’initialisation


dynamiques et statiques
(consultables par la vue V$PARAMETER)
Toute instance Oracle nécessite des paramètres d’initialisation utilisés à chaque
démarrage. Ils peuvent être conservés sous forme d’un fichier texte (initSID.ora) ou
enregistrés dans un fichier d’initialisation persistant (spfileSID.ora).
􀁹 instance_name : nom de l’instance qui doit correspondre à la variable
d’environnement ORACLE_SID. Souvent nommé SID, il est codé sur 8 caractères
maximum et ne peut plus être changé une fois la base créée.
􀁹 db_name : nom interne de la base de données. Attribuer à la base de données et au
SID le même nom.

 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 <parameter_name> = <value>
COMMENT=<comment_text>
SCOPE=<MEMORY | SPFILE | BOTH>
SID=<sid_name | *>;

 Show parameters=====>>> liste de paramètres

 alter system set paramètre=valeur scope= memory ;
 alter system set paramètre=valeur scope=
spfile ;
 alter system set paramètre=valeur scope= both ;
II/ 5 principaux processus lancés pour
une instance Oracle

PMON (processus Process Monitor) :


nettoie les ressources lors de l'échec d'un processus
CKPT : Synchronise et assure la cohérence des
données5 principaux processus lancés pour une
instance Oracle
DBWR (processus d'écriture des blocs
de données modifiés) : écrit les données modifiées
dans la base de données
LGWR (processus d'écriture des modifications) :
enregistre les modifications enregistrées dans le
cache de reprise dans les fichiers de reprise
SMON (processus System Monitor) :
vérifie la cohérence et redémarre la base de données
après panne
PMON (processus Process Monitor) : nettoie les
ressources lors de l'echec d'un processus
CKPT : Synchronise et assure la cohérence des
données
III/ Processus optionnels
ARCH ou Archiver
􀁹 Le thread ARCH (Archiver) n’existe que si la
base de données est en mode ARCHIVELOG. Il
est responsable de
la copie des fichiers redo‐log, lorsqu’ils sont
saturés, vers leur destination de stockage.
􀁹 Si la base est en mode ARCHIVELOG sans
démarrer le thread ARCH, la base de données se
bloquera dès qu’elle aura besoin « d’historiser »
un fichier redo‐log saturé. Un message sera alors
écrit dans le fichier d’alerte.

􀁹 Pour démarrer le thread ARCH, le paramètre


d’initialisation LOG_ARCHIVE_START doit
avoir pour valeur TRUE et la base de données
doit être en mode ARCHIVELOG.

Listener
􀁹 Le listener Oracle n’est généralement pas
compris dans la liste des processus
indispensables au fonctionnement d’Oracle.
Pourtant, il doit être lancé
pour permettre d’établir des connexions
client‐serveur avec la base de données.

􀁹 Son lancement n’est pas lié à celui de la


base de données et il possède ses propres
fichiers de configuration.
[L’utilitaire Lutilitaire Assistant Configuration Oracle Net est accessible
depuis le menu : Démarrer>Programmes>Oracle–
Oradb10g_home1>Configuration
and Migration Tools.]

IV/ Fichiers d’une base de données (oracle 10G)

A.Les fichiers de données


L’administrateur peut visualiser le nom des fichiers de
données dans la base en interrogeant la vue
V$datafile
 Name : nom du fichier
 Bytes : taille en octets
 Creation_date : date de création du fichier
 Block_size : taille du bloc
 Db_files : nombre maximal de fichiers gérés dans
l’instance

B. Les fichiers REDO-LOG


 Les fichiers redo‐log sont des fichiers de
journalisation utilisés pour le fonctionnement
interne d’Oracle, ils enregistrent et conservent
toutes les modifications successives de la base de
données. Ils sont utiles lors d’une restauration à la
suite d’un problème d’instance ou de disque.
Cette restauration consiste à rejouer le contenu des
fichiers redo‐log dans la base.
 Avant la réutilisation d’un fichier redo‐log, Oracle
le sauvegarde à un autre emplacement si la base
fonctionne en mode archivage (ARCHIVELOG
MODE). Dans les autres cas, Oracle le réemploie en
supprimant son contenu sans sauvegarde préalable.
 Pour des raisons de sécurité, ces fichiers
peuvent être multiplexés (dupliqués) dans des
groupes (Groups). Si chaque groupe est situé sur
un disque différent, cela évite une perte
d’informations en cas de panne d’un disque.
 Lorsqu’une une base est en mode
ARCHIVELOG, les fichiers redo‐log sont
archivés à mesure de leur remplissage. Si le
répertoire de destination des archives est saturé, la
base de données se bloque et un message s’inscrit
dans le fichier d’alerte.

Informations sur le mode ARCHIVELOG


 V$DATABASE (log_mode): identifie si la base de données
est en mode ARCHIVELOG ou NOARCHIVELOG
 V$ARCHIVED_LOG : affiche des informations issues du
fichier de contrôle concernant les fichiers redo‐log archivés
 V$ARCHIVE_DEST : décrit la destination des fichiers
archivés ;
 V$LOG et V$LOGFILE : décrivent les fichiers redo‐log et
indique celui qui est actif ;

 Interroger la vue V$logfile pour visualiser les fichiers redolog.


Group# : groupe auquel appartient le fichier
Member : nomdu fichiermembre d’un groupe
Status : online ou offline
 Interroger la vue V$log pour connaître le nombre de
membres d’un groupe (Member), le fichier courant(status).
 Utiliser l’instruction ‘Alter system switch logfile’ pour
forcer un changement de fichier de journalisation
 Afficher la valeur de Sequence# de la vue V$log pour
visualiser le changement de numéro de séquence.

Exemple : Donnez le tableau résultat suite à l’exécution de la


commande : Alter system switch logfile;
[select group#, sequence#,byte, archived, status from v$log ]

Atelier sur les fichiers REDO-LOG (TP)


1 Démarrer le thread ARCH (log_archive_start) et définir un
répertoire destination (log_archive_dest) des fichiers de
journalisation archivés.
􀁹 log_archive_start = true (ALTER SYSTEM log_archive_start =true)
􀁹 log_archive_dest = 'C:\oracle\admin\TEST\arch‘
2. Démarrez la base avec SQL*Plus et positionnez‐la en mode
archivelog :
􀁹 sqlplus /nolog
􀁹 connect sys as SYSDBA
􀁹 startup mount;

􀁹 alter database archivelog ;


􀁹 shutdown immediate ;
􀁹 startup ;
3. Arrêtez la base (Le processus Log Writer (LGWR) sera lancé aux prochains
démarrages)
4. Vérifiez que la base est en mode Archivelog :
select name, log_mode from v$database ;
NAME LOG_MODE
TEST ARCHIVELOG
5. Identifiez le fichier redo-log courant:
select group#, sequence#, bytes, archived, status from v$log ;
GROUP# SEQUENCE# BYTES ARC STATUS
1 269 1048576 NO INACTIVE
2 270 1048576 NO INACTIVE
3 271 1048576 NO CURRENT

6 Forcez la création d’un fichier log archivé :


alter system switch logfile;
vérification
select group#, sequence#, bytes, archived, status from v$log ;
GROUP# SEQUENCE# BYTES ARC STATUS
1 272 1048576 NO CURRENT
2 270 1048576 NO INACTIVE
3 271 1048576 YES ACTIVE
7. Vérifiez que le fichier d’archive a été créé au moment du« switch logfile
» en « regardant » le répertoire pointé par le paramètre
LOG_ARCHIVE_DEST.
8. Basculer la base en mode NOARCHIVELOG
alter database noarchivelog ;
Ajouter des fichiers redo-log
alter database add logfile
('c:\oracle\oradata\TEST\redo04.log' ,
'c:\oracle\oradata\TEST\redo05.log' ,
'c:\oracle\oradata\TEST\redo06.log' )
size 30M ;
Supprimer les fichiers redo-log inactifs.
alter database drop logfile
('c:\oracle\oradata\TEST\redo01.log',
'c:\oracle\oradata\TEST\redo02.log',
'c:\oracle\oradata\TEST\redo03.log' );

C.Les fichiers de contrôle


Les fichiers de contrôle sont créés en même temps que la
base de données. Ils sont principalement utilisés à chaque
démarrage de celle‐ci, puis mis à jour automatiquement par
Oracle.
􀁹 Il est possible de créer plusieurs fichiers de contrôle,
mais ils sont tous identiques.
􀁹 Le fichier d’initialisation utilisé pour lancer l’instance
situe l’emplacement des fichiers de contrôle.
Chacun d’eux précise la localisation de tous les autres
fichiers (données et redo-log) qui composent la base.
􀁹 Les fichiers de contrôle indiquent si la base de données a
été correctement fermée et si une restauration est
nécessaire.
􀁹 La vue V$CONTROLFILE permet de connaître la liste des fichiers de
contrôle d’une instance en cours de fonctionnement.
Select * from V$CONTROLFILE ;
Sauvegarder un fichier de contrôle base « en marche »
alter database backup controlfile to 'c:\temp\backup.ctl' ;
Remarques (OFA) :
OFA (Optimal Flexible Architecture). C’est un ensemble de
règles d’installation et de configuration qui vous donneront des
bases Oracle rapides, fiables, faciles à installer et nécessitant
peu de maintenance. Pour bien structurer les fichiers
d’administration de chaque base, Oracle crée sous
ORACLE_BASE\admin\SID les répertoires :

􀁹 \bdump : trace des threads de la base


􀁹 \cdump : fichier d’erreur du « noyau Oracle »
􀁹 \create : fichiers de création de la base
􀁹 \exp : fichiers d’export de la base (optionnel, à ajouter)
􀁹 \pfile : fichier d’initialisation de la base (initSID.ora)
􀁹 \udump : fichiers trace d’ordres SQL

V/ Fichiers d’une base de données (oracle 10G)

1/ Introduction
Structure logique de stockage
􀁹 Opérations possibles sur un Tablespace
 Création
 Modification
 Suppression
 Ajout de fichiers
 Suppression de fichiers
Extension (Extent) = ensemble de blocs contigus [voir support de cours]
Segment (4 types) = ensemble d’extensions [voir support de cours]
Fichier = ensemble de segments

Pour connaître les caractéristiques de chaque tablespace, les vues utiles du


dictionnaire de données sont :
􀁹 DBA_DATA_FILES : détail des fichiers de données.
􀁹 DBA_TEMP_FILES : détail des fichiers des tablespaces
temporaires.
􀁹 DBA_TABLESPACES : détail des tablespaces (affiche tous les
TS).
􀁹 DBA_FREE_SPACE : espace disponible restant dans les
tablespaces.

Noms des fichiers de données ainsi que les tablespaces auxquelles ils correspondent:
SELECT tablespace_name, file_name
FROM DBA_DATA_FILES
ORDER BY tablespace_name;

2/ Création : Un tablespace peut être créé selon des modes différents

CREATE TABLESPACE test1


DATAFILE 'oracle_home\oradata\TEST\test1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
AUTOALLOCATE : c’est l’option par défaut. Oracle gère automatiquement
toutes les allocations d’espace dans le tablespace. Elles peuvent être de
tailles différentes ;

CREATE TABLESPACE test1


DATAFILE 'oracle_home\oradata\TEST\test1_01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
SPACE MANAGEMENT AUTO|MANUAL
UNIFORM SIZE : toute allocation d’espace sera de cette taille (minimum 1
Mo). Le tablespace TEMPORARY utilise cette option par défaut.
􀁹 SPACE MANAGEMENT AUTO|MANUAL;
 Pour connaître les détails de la clause STORAGE d’un tablespace particulier, il
faut consulter la vue SYS.DBA_TABLESPACES.

Select tablespace_name, initial_extent, next_extent……..from


sys.dba_tablespaces ;

>CREATE TABLE emp ( employee_id NUMBER,


employee_name VARCHAR2(50),
salary NUMBER,
hire_date DATE )
STORAGE (
INITIAL 100K
NEXT 100 K
PCTINCREASE 0 )
TABLESPACE test1 ;
 L’ordre Lordre SQL suivant visualise le nombre d’extensions de tous les
segments propriété de l’utilisateur SYS.
> select segment_name,tablespace_name,
segment_type,extents,max_extents,bytes,owner
from sys.dba_segments
where owner = ‘SYS’

 L’ordre SQL suivant fournit le détail de chacune des extensions de la table


TEST.
select owner, segment_name, segment_type, tablespace_name,
extent_id, bytes
from sys.dba_extents
where segment_name = ‘TEST’ and owner = ‘SYS

sys’
 L’ordre Lordre SQL suivant donne le détail de la clause STORAGE de la table
TEST.
select owner, table_name, initial_extent, next_extent, min_extents,
max_extents, pct_increase
from sys.dba_tables
where table_name = ‘TEST’ and owner = ‘SYS’

3/ Modification
Un tablespace peut être online (actif, accessible à tous les utilisateurs) ou offline
(inactif, inaccessible aux utilisateurs, même administrateur).

alter tablespace user_data online ;


Renommer un tablespace : A l’exclusion des tablespaces SYSTEM et SYSAUX réservés par Oracle.

alter tablespace test rename to test1

Supprimer un tablespace :
drop tablespace test ;
drop tablespace test including contents ;
drop tablespace test including contents and datafiles

Extension d’un tablespace


Un tablespace peut ne pas disposer de place dans les fichiers pour y créer un nouvel
extent lorsqu’un segment (de données, d’index, de tri, de rollback) cherche à
s’étendre. Oracle permet que les fichiers des tablespaces augmentent
automatiquement de taille :
Exemple ( la taille du fichier peut augmenter automatiquement, par palier de 25 Mo jusqu’à la
limite maximale de 2000 Mo)

alter database
datafile ‘oracle_home\oradata\TEST\user01.dbf'
autoextend on
next 25M
maxsize 2000M;

² (TEMPORARY)
Si un tablespace temporaire n’est pas créé, les tris sont effectués dans le tablespace
SYSTEM qui contient le dictionnaire (valable pour tous les utilisateurs) .
create temporary tablespace temp_data
tempfile 'oracle_home\oradata\TEST\temp_data01.dbf’
size 50M
extent management local ;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;


=>tous les utilisateurs créés après utiliseront le tablespace temporaire indiqué.

alter temporary tablespace temp_data


add tempfile 'oracle_home\oradata\TEST\temp_data02.dbf'
size 50M
 Ajout d’un fichier temporaire (accès aux TS temporaires …V$TEMPFILE et
DBA_TEMP_FILES)

4/ Tablespace d’annulation de type UNDO


Un nouveau type de tablespace destiné à remplacer l’ancien mode, les rollback
segments. C’est dans cet espace que sont gérées par Oracle les données en attente de
validation ou d’annulation.

Create UNDO TABLESPACE UNDOTBS


DATAFILE 'c:\oracle\oradata\TEST\undotbs01.dbf‘
SIZE 50M,
AUTOEXTEND ON
NEXT 5120K
MAXSIZE 1000M
Atelier sur la gestion des fichiers d’un tablespace
(TP)
Déplacer/renommer les fichiers de données
1. Positionnez le tablespace concerné offline ;
alter tablespace users offline;
=> Espace de tables (TABLESPACE) modifié.
2. Copiez/renommez sous Windows les anciens fichiers dans leur
nouvelle destination.
3. Indiquez au dictionnaire de la base ce changement d’emplacement :
alter tablespace users rename datafile
‘C:\oraclexe\app\oracle\oradata\XE\USERS.dbf'
to ‘C:\oraclexe\app\oracle\oradata\XE\USER_NEW.dbf' ;
4. Mettez le tablespace concerné online :
alter tablespace users online;
=>Espace de tables (TABLESPACE) modifié.
. Vérifiez par la vue DBA_DATA_FILES la prise en compte des
modifications, puis supprimer sous Windows l’ancien fichier.

Exemple d’utilisation de tablespaces :

CREATE USER admin


IDENTIFIED BY admin
DEFAULT TABLESPACE TS1
TEMPORARY TABLESPACE tempTS
QUOTA 15m ON TS1
PASSWORD EXPIRE
Annexe :
 Les fichiers de journalisation contiennent toutes les modifications effectuées sur les données
depuis une certaine durée.
 En cas de crash du système, ou d’altération des fichiers de données, on peut reconstituer les données
à partir des fichiers journaux.
 L’écriture sur les fichiers journaux est multiplexée et cyclique.
 L’ensemble des fichiers multiplexés (qui contiennent donc les mêmes informations) sont appelés
membres et forment un groupe.
 L’écriture est donc multiplexée à l’intérieur d’un groupe, et cyclique entre les groupes.

 L’écriture des fichiers journaux est cyclique, ce qui fait qu’à un certain moment, certaines
transactions seront écrasées.
 La solution, c’est d’archiver les fichiers journaux avant de les écraser.
 Les fichiers journaux archivés peuvent être stockés sur des disques (serveurs) distants, ce qui
optimisera la sécurité de la BD.
 Une base de données n’est pas forcément en mode ARCHIVELOG, si elle ne l’est pas, les fichiers
journaux ne sont pas archivés.
Fichiers paramères
 Un fichier de paramètres inclut l’ensemble des paramètres de configuration du serveur BD.
-Consultable via la vue V$PARAMETER
SELECT name, value FROM V$PARAMETER
 L’instance lit ce fichier et fonctionne selon les valeurs des paramètres qui y sont spécifiés.
 Il existe deux types de fichiers de paramètres:

PFILE (parameter file) SPFILE (server parameter file)


Fichier texte Fichier binaire
Modifiable via un éditeur texte Modifiable via SQL
Disponible sur la machine de démarrage Centralisé (sur le serveur uniquement)
Nommé init%.ora Nommé spfile%.ora
Modification à froid Modification à chaud

Vous aimerez peut-être aussi