2. 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
initSID.ora ; fichiers de trace et d’alerte générés par
Oracle; fichiers paramètres d’outils
Les fichiers
3. Sous UNIX : processus
Sous Windows : exécutables > processus
> threads
Les programmes
4. 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 indispensables,
5. 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é.
Les threads optionnels
7. 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
SGA
8. 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 10g
engendre donc la création d’un thread
utilisateur et de sa mémoire associée, la
PGA.
PGA
13. 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
14. 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
16. tablespaces : la gestion locale et
dictionnaire
CREATE TABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL ;
CREATE TABLESPACE test2
DATAFILE 'c:oracleoradataTESTtest2_01.dbf' SIZE
20M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( INITIAL 100 K
NEXT 100 K
MINEXTENTS 2
MAXEXTENTS 100
PCTINCREASE 0 );
17. 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.
tablespaces : la gestion locale et
dictionnaire
18. INITIAL précise la taille de la première extension. Tout
segment possède une taille initiale à sa création.
NEXT précise la taille de la deuxième extension. Lorsque
la première est remplie, Oracle alloue automatiquement
une seconde de NEXT octets. Toutes les extensions
futures se fondent sur cette valeur.
PCT_INCREASE est un paramètre que nous positionnons
toujours à zéro, mais que certaines personnes utilisent.
Ce pourcentage dirige l’incrément de taille des extensions
suivantes. Par exemple, INITIAL = 1 Mo, NEXT = 1 Mo et
PCT_INCREASE = 50 %. La première extension sera de
1 Mo, la deuxième de 1 000 + 50 % (1 000) = 1,5 Mo, la
troisième de 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.
tablespaces : mode
DICTIONARY
CREATE TABLE emp (
...
liste des colonnes de la
table...
...
)
STORAGE (
INITIAL 100K
NEXT 100 K
PCTINCREASE 0 )
TABLESPACE user_data;
19. tablespaces en gestion
LOCALE
CREATE TABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;CREATE TABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SPACE MANAGEMENT AUTO ;
CREATE TABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE
20M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
20. 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
La défragmentation
21. 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;
22. SORT_AREA_SIZE de la SGA
TEMPORARY TABLESPACE
SYSTEM
Les tablespaces temporaires
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE 'c:oracleoradataTESTtemp_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;
23. 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…
tablespaces
25. SYS (mot de passe par défaut :
CHANGE_ON_INSTALL)
SYSTEM (mot de passe par défaut :
MANAGER)
Utilisateur
26. Utilisateur
CREATE USER utilisateur IDENTIFIED
{ BY motdePasse | EXTERNALLY | GLOBALLY AS
'nomExterne' }
[ DEFAULT TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ] ]
[TEMPORARY TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ].]
[PROFILE nomProfil ] [PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK } ] ;
27. IDENTIFIED BY motdePasse permet d’affecter un mot de passe à un
utilisateur local (cas le plus courant et le plus simple).
IDENTIFIED BY EXTERNALLY permet de se servir de l’authenticité du
système d’exploitation pour s’identifier à Oracle (cas des compte OPS$
pour Unix).
IDENTIFIED BY GLOBALLY permet de se servir de l’authenticité d’un
système d’annuaire.
DEFAULT TABLESPACE nomTablespace associe un espace disque de
travail (appelé tablespace) à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace associe un espace disque
temporaire (dans lequel certaines opérations se dérouleront) à l’utilisateur.
QUOTA permet de limiter ou pas chaque espace alloué.
PROFILE nomProfil affecte un profil (caractéristiques système relatives au
CPU et aux connexions) à l’utilisateur.
PASSWORD EXPIRE pour obliger l’utilisateur à changer son mot de passe
à la première connexion (par défaut il est libre). Le DBA peut aussi changer
ce mot de passe.
ACCOUNT pour verrouiller ou libérer l’accès à la base (par défaut
UNLOCK).
Utilisateur
29. SESSIONS_PER_USER : nombre de sessions concurrentes autorisées.
CPU_PER_SESSION : temps CPU maximal pour une session en centièmes de
secondes.
CPU_PER_CALL : temps CPU autorisé pour un appel noyau en centièmes de
secondes.
CONNECT_TIME : temps total autorisé pour une session en minutes (pratique pour
les examens de TP minutés).
IDLE_TIME : temps d’inactivité autorisé, en minutes, au sein d’une même session
(pour les étudiants qui ne clôturent jamais leurs sessions).
PRIVATE_SGA : espace mémoire privé alloué dans la SGA (System Global Area).
Profil
30. FAILED_LOGIN_ATTEMPTS : nombre de tentatives de connexion avant de
bloquer l’utilisateur (pour la carte bleue, c’est trois).
PASSWORD_LIFE_TIME : nombre de jours de validité du mot de passe (il
expire s’il n’est pas changé au cours de cette période).
PASSWORD_REUSE_TIME : nombre de jours avant que le mot de passe
puisse être utilisé à nouveau. Si ce paramètre est initialisé à un entier, le
paramètre PASSWORD_REUSE_MAX doit être passé à UNLIMITED.
PASSWORD_REUSE_MAX : nombre de modifications de mot de passe
avant de pouvoir réutiliser le mot de passe courant. Si ce paramètre est
initialisé à un entier, le paramètre PASSWORD_REUSE_TIME doit être
passé à UNLIMITED.
PASSWORD_LOCK_TIME : nombre de jours d’interdiction d’accès à un
compte après que le nombre de tentatives de connexions a été atteint (pour
la carte bleue, ça dépend de plein de choses, de toute façon vous en
recevrez une autre toute neuve mais toute chère…).
PASSWORD_GRACE_TIME : nombre de jours d’une période de grâce qui
prolonge l’utilisation du mot de passe avant son changement (un message
d’avertissement s’affiche lors des connexions). Après cette période le mot
de passe expire.
Profil
31. Privilèges système
GRANT { privilège Système | nomRôle | ALL PRIVILEGES }
[, { privilègeSystème | nomRôle | ALL PRIVILEGES }]…
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle
| PUBLIC } ]…
[ IDENTIFIED BY motdePasse ]
[ WITH ADMIN OPTION ] ;
32. Privilège Système : description du privilège système
(exemple CREATE TABLE,CREATE SESSION, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant
dans la base. Cette option n’est pas valide si le
bénéficiaire est un rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux
bénéficiaires le droit de retransmettre le(s) privilège(s)
reçu(s) à une tierce personne (utilisateur(s) ou rôle(s)).
Privilèges système