INSIA – SIGL Bases de données

publicité
INSIA – SIGL
Bases de données
ARCHITECTURE ORACLE
http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm
http://st-curriculum.oracle.com/
Bertrand LIAUDET
ARCHITECTURE ORACLE
Méthodes de connexion
La connexion
Les fichiers oracle
Structure des fichiers de la BD
Problème conceptuel : la notion de base de données, BD
Architecture de l’instance
Les processus d’arrière-plan et le processus serveur
La mémoire : SGA et PGA
Le shared pool (pool partagé)
Le buffer cache
Principe
Notion de bloc oracle
Bloc oracle et buffer cache
L’exécution d’un requête
Principe
Le buffer redo log : tampon des journaux de reprise
Le java pool
Les processus d’arrière plan
DBWn : DataBase Write
LGWR
ARCn 10
CKPT 11
SMON
PMON
Gestion des processus : vue v$session – v$process
Les fichiers d’alerte (alert.log) et de trace (.trc)
Principe
Localisation
Ménage des fichiers de trace !
Remarque sur les erreurs
Le LISTENER
Le contrôleur du Listener : LSNRCTL
11
11
11
12
12
12
12
12
13
13
INSTANCE ET BD
14
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 1/34 - Bertrand LIAUDET
3
3
3
4
4
5
5
6
6
7
7
7
7
8
8
8
10
10
10
10
10
Gestion d’une instance
Notion d’instance
Utilisateur SYS et SYSTEM
Le fichier de paramètres : PFILE
Le fichier de paramètres serveur : SPFILE
Création d’une instance : utilitaire ORADIM
Démarrage et arrêt d’une instance et d’une BD
Les vues dynamiques
Gestion d’une BD
Notion de BD
Les fichiers de la BD
Création manuelle d’une BD : CREATE DATABASE
Création du dictionnaire
Changer d’instance pour une BD
Sauvegarder : lister tous les fichiers de la BD
14
14
14
16
17
18
19
20
22
22
22
22
23
23
24
DICTIONNAIRE
Dictionnaire et dictionnaire des données
Présentation
La vue « dictionnary » ou le synonyme « dict »
Dictionnaire des données
Premiers usages du dictionnaire des données
Les vues du dictionnaires des données
Les 3 catalogues
Les différents objets
Accès aux statistiques
Les utilisateurs et leurs privilèges
25
25
25
25
26
26
27
27
27
27
27
CONTROLE, JOURNAUX ET UNDO
Les fichiers de contrôle
Les fichiers de journaux
Présentation
Gestion de base
Le segment UNDO
29
29
29
29
29
31
TABLESPACE
32
LES ASSISTANTS ORACLE
Oracle Net
OEM : Oracle Entreprise Manager
L’assistant DBCA
32
32
32
32
TP
33
33
Installation d’une instance
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 2/34 - Bertrand LIAUDET
ARCHITECTURE ORACLE
Méthodes de connexion
1) client-serveur mono-machine.
2) client-serveur multi-machines. Le lien entre le client et le serveur est assuré par le
middleware comprenant Oracle Net et le protocole de communication, généralement TCP/IP.
3) Architecture double serveurs : client – serveur d’application – serveur de BD.
Le protocole de communication client-serveur d’application est indépendant du protocole
serveur d’application-serveur de BD.
4) Architecture triple serveurs : client – serveur web – serveur d’application – serveur de BD.
Le client exécute un navigateur qui communique avec le serveur web via le protocole HTTP.
Ce dernier demande l’exécution des commandes du client au serveur d’applications. Ce dernier
est client de la BD et formate les résultats en HTML avant de les retourner au client.
5) Architecture multi serveurs de BD : client – serveur de BD – serveur de BD. Les BD se
situent sur des serveurs séparés et se partagent les données.
La connexion
Le client est un processus utilisateur (SQL*Plus, une application, etc.)
Pour se connecter, il faut un nom et un mot de passe.
C :> sqlplus nomUtilisateur / password
SQL > show user
User est : “NomUtilisateur”
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 3/34 - Bertrand LIAUDET
C :> sqlplus / nolog
SQL > show user
User est : “”
Il existe deux sortes de processus serveurs (oracle.exe) :
•
les serveurs dédiés
• les serveurs partagés
Le principe du serveur dédié est que chaque utilisateur est pris en charge par un serveur dédié.
Le principe du serveur partagé est que plusieurs utilisateurs partagent le même serveur. Un
processus DISPATCHER gère l’ordonnancement des requêtes des utilisateurs. Par défaut, les
serveurs sont partagés.
Les fichiers oracle
Les fichiers oracle sont les suivants :
•
Les fichiers de la BD :
1. Les fichier de données : les plus volumineux. Fichiers binaires.
2. Les fichiers de contrôle : fichier binaires qui décrivent tous les fichiers oracle.
3. Les fichier journaux (redo-log) : ces fichiers conservent les modifications successives de la
BD. Ce sont des journaux de transactions de la base. Ils servent pour une restauration de la
BD.
•
Le fichier de paramètres : paramètres de démarrage qui déterminent l’environnement.
•
Le fichier de mot de passe : pour établir l’authenticité des utilisateurs privilégiés..
•
Les fichiers journaux archivés : les fichier journaux fonctionnent de façon circulaire. Les fichiers
journaux archivés sont des copies des fichiers journaux avant leur réutilisation par circularité.
Structure des fichiers de la BD
STRUCTURE
LOGIQUE
STRUCTURE
PHYSIQUE
BASES DE DONNEES
1
1
*
SCHEMAS
*
*
*
*
T ABLESPACES
FICHIERS
1
1
1
*
*
T ABLES, INDEX, CLUST ERS,
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 4/34 - Bertrand LIAUDET
Niveau logique :
Les objets de la BD (tables, indexs, etc.) appartiennent à un schéma et à un tablespace.
Schéma et tablespace appartiennent à une BD.
Le schéma peut être réparti dans plusieurs tablespace. Un tablespace peut contenir plusieurs
schémas.
Niveau physique :
Un fichier correspond à un tablespace, mais un tablespace peut être réparti sur plusieurs fichiers.
Rappel sur les objets logiques de la BD :
•
Tables, vues, procédures, fonctions, déclencheurs (triggers), packages (regroupements
de procédures et de fonctions)
•
Tables temporaires : créée le temps d’une session ou d’une transaction.
•
Clusters : Un cluster est constitué par plusieurs tables stockées physiquement ensemble.
L’objectif est d’optimiser les temps de traitement en lecture-écriture.
•
Index : table triée pour accéder aux données. Il existe des index de table, de clusters et
bitmap (pour les attributs avec peu de valeurs distinctes).
•
Tables organisées en index : toute la table est indexée à partir de sa clé primaire.
•
Séquences : pour gérer les auto-incréments
•
Vues matérialisées : pour synthétiser, répliquer ou distribuer des données.
•
Synonymes : pointeur vers n’importe quel objet
•
Liens de BD : pointeur vers n’importe quelle BD.
Problème conceptuel : la notion de base de données, BD
Le terme BD est polysémique : il peut se rapporter à :
1. L’instance (mémoire vive) et les fichiers physiques de la base (au SGBD et à la BD), c’est-àdire la totalité de la mémoire (vive et fichiers) utilisée par la BD.
2. La structure logique des données.
3. Les fichiers de données de la BD.
L’usage le plus courant est le premier.
Architecture de l’instance
Une instance est l’ensemble des :
•
processus d’arrière-plan
• zones mémoires allouées
qui permettent l’exploitation d’une base de données.
Show parameter INSTANCE_NAME
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 5/34 - Bertrand LIAUDET
Généralement, le nom de l’instance (SGBD) et de la BD (de la structure logiques) sont
identiques.
Les processus d’arrière-plan et le processus serveur
Ce sont les processus qu’Oracle utilise, en plus du serveur, pour gérer la BD.
Le processus serveur prend en charge les requêtes des processus utilisateurs (SQL-Plus,
applications, etc.)
Les processus d’arrière-plan ont chacun une tâche déterminée pour la gestion des données :
écriture sur disques, calcul, gestion mémoire, etc.
La mémoire : SGA et PGA
le SGA
Quand on interroge une BD, les données des fichiers sont chargées en mémoire. Oracle gère la
mémoire pour améliorer les performances.
Le SGA (System Global Area) est la principale zone mémoire employée.
Le SGA contient particulièrement :
•
Un shared pool (pool partagé)
•
Un buffer cache
•
Un buffer redo-log
•
Un java pool
La taille maximum du SGA peuvent être paramétrée dans le fichier de paramètres. Elle n’est pas
modifiable dynamiquement.
Show parameter SGA_MAX_SIZE
La taille de chaque composant mémoire peuvent être paramétrée dynamiquement.
Show parameter SHARED_POOL_SIZE
Show parameter DB_CACHE_SIZE
Show parameter LOG_BUFFER
Alter system set SHARED_POOL_SIZE = 10M
L’augmentation de la taille des composants mémoire permet une amélioration des performances.
le PGA
Le PGA (Program Global Area) est la zone mémoire allouée pour le fonctionnement de chaque
processus utilisateur.
Le PGA contient :
•
Un buffer pour la gestion des tris
•
Un buffer pour les informations de la session
•
Un buffer pour les curseurs
•
Un buffer pour les variables utilisées par la session
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 6/34 - Bertrand LIAUDET
A noter que les buffers de tri et de session sont dans le PGA si le serveur est dédié et dans le
shared pool si le serveur est partagé.
Le shared pool (pool partagé)
Le shared pool est une zone mémoire du SGA est constitué de :
•
Le cache du dictionnaire des données
•
Le cache de bibliothèque
• Le cache de tri et de session (UGA : user global area).
Le cache du dictionnaire des données permet de stocker les données du dictionnaire des
données (comptes utilisateur, fichiers de données, tables, privilèges). Ce cache se remplit au fur
et à mesure de l’utilisation de la BD. Quand il est plein, l’algorithme de gestion retire les
données dont l’utilisation est la plus ancienne : algorithme LRU (Least Recently Used) de
gestion de file (on cherche dans la file l’élément cherché. S’il n’y ait pas, on le récupère dans les
fichiers. Dans tous les cas, on le sort de la file pour le ré-enfiler. Si la file est pleine, on défile un
élément).
Le cache de bibliothèque permet de stocker les plans d’exécution des requêtes les plus
courantes. Il est géré par un algorithme LRU.
Le cache de tri est de session permet de gérer les ordres de tri et les informations de session
dans le cas d’un serveur partagé. Si le serveur est dédié, le shared pool ne contient plus cette
mémoire qui se retrouve dans la PGA.
Le buffer cache
Principe
Le buffer cache est une zone mémoire du SGA qui permet de stocker les données des requêtes
de consultation et de modification ( Select et DML ). Le buffer cache permet donc de limiter les
accès disque.
Notion de bloc oracle
Présentation
Un bloc oracle est une structure logique de données qui contient des enregistrements d’une
table. La taille d’un bloc oracle est un multiple du bloc physique manipulé par l’OS.
Le bloc oracle permet de faciliter les échanges entre les fichiers, la mémoire et les processus.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 7/34 - Bertrand LIAUDET
STRUCTURE
LOGIQUE
STRUCTURE
PHYSIQUE
BASES DE DONNEES
1
1
*
SCHEMAS
*
*
*
*
TABLESPACES
FICHIERS
1
1
1
1
*
TABLES, INDEX, CLUST ERS,
*
1
*
*
BLOCS ORACLE
*
BLOCS OS
1
Taille du bloc oracle
Une fois la BD créée, la valeur du DB_BLOCK_SIZE ne peut plus être modifiée (en KO).
Pour visualiser le DB_BLOCK_SIZE :
Show parameter DB_BLOCK_SIZE
L’augmentation de la valeur du BD_BLOCK_SIZE limite les accès disques.
Bloc oracle et buffer cache
Le buffer cache contient les blocs oracle où sont stockés les données des requêtes SQL
(Select et DML).
Il est géré par un algorithme LRU (Least Recently Used, gestion de file).
La taille du buffer cache est un paramètre important de l’optimisation.
Généralement, ce cache représente 1 à 2% de la taille de la BD.
L’exécution d’un requête
Principe
L’exécution d’une requête se fait en trois temps
•
L’analyse (« parse »)
•
L’exécution
•
La récupération des résultats (« fetch »)
L’analyse : « parse »
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 8/34 - Bertrand LIAUDET
L’analyse consiste d’abord à vérifier la syntaxe et les contrôles de sécurité (droits d’accès aux
données).
L’analyse consiste ensuite à chercher si l’instruction, son arbre d’exécution et son plan
d’exécution sont déjà dans le cache de librairie. Si ce n’est pas le cas, l’analyse va produire
l’arbre et le plan d’exécution et les mettre dans le cache de librairie.
Ensuite le processus serveur valide l’existence des objets et de la requête (tables, vues, etc.)
et de leurs composants (attributs, etc.), les droits de l’utilisateur à partir des informations du
cache du dictionnaire des données si possible ou à partir des fichiers de données sinon.
L’exécution
L’exécution consiste à appliquer le plan d’exécution. Le processus détermine les blocs qui
doivent être chargés à partir des fichiers, en accès direct par indexation ou en accès séquentiel.
Les blocs qui ne sont pas déjà dans le cache sont chargés et mis dans le buffer cache. Le calcul
(filtre des lignes et des colonnes) est effectués à partir des données des blocs du buffer cache.
La récupération des résultats : « fetch »
Le processus serveur renvoie les lignes sélectionnées et mise en forme.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 9/34 - Bertrand LIAUDET
Le buffer redo log : tampon des journaux de reprise
Le tampon des journaux de reprise permet d’assurer la cohérence du système même en cas
d’échec.
En cas de modifications des structures ou des données (DDL ou DML), le processus de
traitement écrit dans le tampon des journaux de reprise l’image des lignes avant la modifications.
Ce tampon est de petite taille et utilisé de manière circulaire.
Le java pool
L’initialisation du moteur Java dans la base de données Oracle est facultative.
Si le moteur Java est installé, le Java pool est obligatoire et stocke les commandes java préanalysées.
Les processus d’arrière plan
Les processus d’arrière plan gère les relations entre les buffers et les fichiers ainsi que les
processus eux-mêmes.
DBWn : DataBase Write
Processus d’écriture par lots des blocs de données modifiées du buffer cache dans les fichiers de
la BD.
Buffer Cache -----> DBWn -----> Fichier de données
------> LGWR
L’écriture se fait par lots : donc certains événements déclenche cette écriture : toutes les 3
secondes, au delà d’un certain nombre de blocs modifiés, à chaque checkpoint (processus
CKPT), etc.
Le processus DBWn lance d’abord un processus LGWR
LGWR
Processus d’écriture séquentielle par lots des entrées du buffer redo log dans les fichiers
journaux.
Buffer Redo Log -----> LGWR -----> Fichier journaux
C’est le processus LGWR qui maintient l’état le plus à jour de la BD (et pas le processus
DBWn). L’écriture du buffer redo log doit donc être terminée pour valider une transaction.
L’écriture se fait par lots : toutes les 3 secondes, à chaque COMMIT, au delà d’un certain taux
de remplissage du buffer redo log, , à chaque chedkpoint, par le processus DBWn.
ARCn
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 10/34 - Bertrand LIAUDET
Le processus ARCn s’occupe de copier un fichier journal plein dans un fichier journal archivé.
Ce n’est pas un processus obligatoire.
CKPT
Le processus checkpoint gère les points de synchronisation dans la BD qui faciliteront sa
récupération en cas de défaillance.
Il signale l’échéance de déclenchement au processus DBWn (toutes les 3 secondes) et
commence par mettre à jours l’en-tête des fichiers de données.
CKPT -----> Fichier de données
------> DBWn
SMON
Le processus SMON assure le monitoring (la surveillance) du système.
Il se charge particulièrement des redémarrage après un arrêt brutal.
Il se charge aussi de faire le ménage dans la mémoire : mémoire des tris, regroupement des
espaces libres des fichiers de données.
PMON
Le processus PMON assure le monitoring des processus utilisateur défaillant.
Gestion des processus : vue v$session – v$process
consultation
SQL> column sid format 9999
SQL> column username format a12
SQL> column machine format a18
SQL> column program format a20
SQL> select sid, serial#, username, machine, program from
v$session;
SID
SERIAL# USERNAME
----- ---------- -----------25
1
29
5 BERTRAND
31
23 SYS
33
1
36
3
37
5
39
1
41
1
42
1
43
1
44
1
45
1
46
1
47
1
48
1
49
1
MACHINE
-----------------LIAUDET
MSHOME\LIAUDET
MSHOME\LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
LIAUDET
PROGRAM
-----------------ORACLE.EXE (q000)
sqlplus.exe
sqlplus.exe
ORACLE.EXE (QMNC)
ORACLE.EXE (MMON)
ORACLE.EXE (q001)
ORACLE.EXE (MMNL)
ORACLE.EXE (CJQ0)
ORACLE.EXE (RECO)
ORACLE.EXE (SMON)
ORACLE.EXE (CKPT)
ORACLE.EXE (LGWR)
ORACLE.EXE (DBW0)
ORACLE.EXE (MMAN)
ORACLE.EXE (PSP0)
ORACLE.EXE (PMON)
16 ligne(s) sélectionnée(s).
Ici, on voit que deux clients sqlplus sont connectés.
On voit aussi les processus d’arrière plan du serveur oracle.exe : DBW0, LGWR, etc.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 11/34 - Bertrand LIAUDET
La liste des processus d’arrière plan peut être obtenue par la commande :
SQL> select username, program, background from v$process
2 order by background, program ;
ou, sous unix, par
ps –ef | grep ora_
Suppression
Les champs SID et SERIAL# identifient une session.
On peut supprimer les sessions utilisateurs (les clients).
La commande :
SQL> alter system kill session '29,5';
va déconnecter l’utilisateur « Bertrand ».
Les fichiers d’alerte (alert.log) et de trace (.trc)
Principe
Le fichier d’alerte (alert_<SYS>.log) est un tableau de bord historique de tous les événements
de la BD.
C’est un outil vital pour la gestion quotidienne d’une BD.
Les fichiers de trace (.trc) sont générés pas chaque processus d’arrière plan. Ils donnent des
détails supplémentaires par rapport au fichier d’alerte
Localisation
Dans le paramètre : background_dump_test
...\app\oracle\admin\<SYS>\bdump
A noter que le paramètre : user_dump_test permet d’accéder aux alertes du serveur.
Ménage des fichiers de trace !
A noter que le processus MMON génère des fichiers <SID>_mmon_XXXX.trc de taille
importante (plusieurs mégas) régulièrement (toutes les x minutes) dans le répertoire
C:\oraclexe\app\oracle\admin\XE\bdump !
Ces fichiers *.trc peuvent être supprimées sans risques d’erreur.
Le paramètre MAX_DUMP_FILE_SIZE permet de limiter la taille de ces fichiers.
Remarque sur les erreurs
Les erreurs Oracle sont numérotées : ORA-XXXX
A partir de ce n°, on peut trouver des explications sur l’erreur en cherchant sur internet.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 12/34 - Bertrand LIAUDET
Le LISTENER
La connexion au serveur est établie via un processus d’écoute : le LISTENER.
Le protocole est le suivant :
1. L’application demande la connexion au LISTENER
2. Le LISTENER transmet la demande au serveur
3. Le serveur demande confirmation au client
4. Le client confirme
5. Le serveur notifie la connexion
Ce mécanisme permet, entre autre, de protéger le serveur de demandes de connexion
intempestives
Connection :
Connect nomUser / password@ // nomDuServeur:nomDuPort / service
Un processus application sur la machine serveur peut contourner le LISTENER.
Une fois connecté, le LISTENER n’intervient plus dans la vie des processus applications.
Le contrôleur du Listener : LSNRCTL
•
LSNRCTL.exe permet d’entrer dans le contrôleur du LISTENER.
•
Help : liste les commandes disponibles.
•
Status : pour connaître l’état du LISTENER.
•
Stop : pour arrêter le LISTENER.
•
Start : pour démarrer le LISTENER (ou start LISTENER).
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 13/34 - Bertrand LIAUDET
INSTANCE ET BD
Gestion d’une instance
Notion d’instance
Les concepts d’instance et de base de données sont les concepts centraux de l’architecture
Oracle.
•
La base de données (BD) correspond essentiellement aux fichiers de données.
•
Une instance est l’ensemble des processus d’arrière plan et des zones mémoires qui
permettent l’exploitation d’une BD. Une instance peut être vue comme une instanciation
du serveur pour une BD donnée.
Les caractéristiques de l’instance (nom du ficher de contrôle, nombre de processus pouvant se
connecter simultanément, taille d’un bloc de données, etc.) sont contenues dans le fichier de
paramètres associé à l’instance.
Une instance correspond à une BD et une seule. Une BD peut être utilisées par plusieurs
instances.
Pour accéder à la BD, il faut que l’instance soit disponible. Le démarrage et l’arrêt de l’instance
sont des tâches d’administration.
L’utilisateur se connecte à la base de données, avec des droits, à travers une instance.
Utilisateur SYS et SYSTEM
SYS et SYSTEM sont deux utilisateurs administrateurs créés automatiquement à l’installation
d’Oracle.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 14/34 - Bertrand LIAUDET
« SYS » désigne en général l’instance.
L’utilisateur SYS a tous les privilèges, dont celui d’administrer l’instance.
SYSTEM peut créer tous les objets de la base mais ne peut pas administrer l’instance.
Rappels sur les utilisateurs et la connexion
SYSDBA est un rôle qui donne tous les privilèges (c’est le rôle de l’administrateur : « DBA » de
l’instance « SYS ») : privilèges sur l’instance et sur la BD.
Connect sys / password as sysdba
L’utilisateur est SYS.
SYSOPER est un rôle équivalent à SYSDBA sans la possibilité de créer une BD.
Connect sys / password as sysoper
L’utilisateur est PUBLIC.
Pour se connecter en tant que SYSTEM :
Connect system / password
L’utilisateur est SYSTEM
Consultation de l’utilisateur connecté :
Show user
Rappels sur les privilèges
Vue SESSION_PRIVS : privilèges de l’utilisateur
Select * from session_privs order by privilege ;
Vue DBA_SYS_PRIV : privilèges système de tous les utilisateurs de la base
Select privilege, admin_option from dba_sys_privs ;
Les vues DBA_TAB_PRIVS et DBA_COL_PRIVS listent les privilèges accordés aux tables et
aux colonnes ;
L’authentification des administrateurs
Pour se connecter à la base en tant qu’administrateur, on peut être authentifier par l’OS ou par
un fichier de mots de passe d’Oracle.
L’authentification par l’OS
L’utilisateur qui a installé le serveur est membre du groupe ORA_DBA.
Le groupe ORA_DBA est un groupe d’utilisateurs qui reçoit les privilèges SYSDBA.
Connect / as sysdba
L’utilisateur est SYS.
Le « / » veut dire « pas de nom d’utilisateur / pas de mot de passe »
L’authentification par fichier de mot de passe
Un fichier de mots de passe permet d’authentifier les utilisateurs.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 15/34 - Bertrand LIAUDET
Ce fichier peut se créer avec l’utilitaire ORAPWD.
Nom et localisation du fichier :
ORACLE_HOME / database / pwd<SID>.ora
ORACLE_HOME est le nom du répertoire dans lequel on trouve les programmes Oracle.
<SID> est le nom de l’instance
Création du fichier : ORAPWD
L’outil ORAPWD permet de créer un fichier de mots de passe
Modification du fichier : Alter
La commande
SQL > alter user system identified by newPassword
Permet de donner un nouveau mot de passe à l’administrateur SYSTEM.
Le fichier de paramètres : PFILE
Le fichier de paramètres décrit les caractéristiques du serveurs tel que la taille du SGA, le
nombre de processus utilisateurs maximum, etc.
Il existe un fichier de paramètres par instance.
C’est un fichier texte.
Nom et localisation du fichier
ORACLE_HOME / database / init<SID>.ora
ORACLE_HOME est le nom du répertoire dans lequel on trouve les programmes Oracle.
<SID> est le nom de l’instance
Typologie des paramètres
Il existe plus de 1250 paramètres dont 250 documentés.
Les paramètres non documenté ont un nom commençant par « _ »
Les paramètres documentés se divisent en paramètres de base (environ 30) et paramètres
avancés.
Quelques paramètres de base
DB_BLOCK_SIZE : taille du bloc Oracle
DB_CREATE_FILE_DEST : répertoire des fichiers de données, de contrôle et journaux.
DB_NAME : nom de la BD. Non modifiable.
INSTACE_NAME : nom de l’instance.
NLS_LANGUAGE : langue par défaut
PROCESSES : nombre maximal de processus utilisateurs connectés simultanément.
REMOTE_LOGIN_PASSWORDFILE : authentification des administrateur par OS ou fichier.
SESSIONS : nombre max. de sessions (toujours supérieur à PROCESSES : sessions
récursives).
SGA_TARGET : taille max. du SGA.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 16/34 - Bertrand LIAUDET
Consultation des paramètres utilisés : la vue V$PARAMETER
SQL> select name, type, value
from v$parameter where name like 'nls_language';
est équivalent à :
SQL> show parameter nls_language
Résultats :
NAME
TYPE
VALUE
-------------------------- ----------- ----------------nls_language
string
AMERICAN
Modification dynamique des paramètres
Modification au niveau de la session (du processus utilisateur connecté) :
SQL> Alter session set nomParamètre=valeur ;
Modification au niveau de l’instance (pour tous les processus utilisateurs connectés) :
SQL> Alter system set nomParamètre=valeur ;
Pour savoir à quel niveau on peut modifier un paramètre :
Attributs ISSES_MODIFIABLE et ISSYSMODIFIABLE de la vue V$PARAMETER
SQL> Select name, isses_modifiable, issys_modifiable
from v$parameter where name='nls_language';
NAME
ISSES ISSYS_MOD
-------------- ----- --------nls_language
TRUE FALSE
Exemple :
SQL> alter session set nls_language='ITALIAN';
Modificata sessione.
SQL> select to_char(sysdate,'dd month yyyy') from dual;
TO_CHAR(SYSDATE,'DDMONTHYYYY')
-------------------------------------------24 febbraio 2010
SQL> show parameter nls_language
NAME
TYPE
VALUE
-------------------------- ----------- -------------------nls_language
string
AMERICAN
A noter que la valeur ‘ITALIEN’ a bien été prise en compte dans le traitement, mais on ne la
retrouve pas dans les paramètres.
On verra à la fin du paragraphe où on peut la retrouver ! Ce qui n’est pas évident !!!
Le fichier de paramètres serveur : SPFILE
Le fichier de paramètres serveur est un fichier binaire et dynamique géré par le serveur oracle.
Nom et localisation du fichier
ORACLE_HOME / database / spfile<SID>.ora
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 17/34 - Bertrand LIAUDET
ORACLE_HOME est le nom du répertoire dans lequel on trouve les programmes Oracle.
<SID> est le nom de l’instance
Dans le fichier, les paramètres « spfile » et « ifile » déterminent l’emplacement du SPFILE et
d’un éventuel fichier complémentaire.
Priorité entre les fichiers de paramètres
Le SPFILE, s’il existe, est prioritaire sur le PFILE.
Le serveur choisit prioritairement dans l’ordre :
•
spfile<SID>.ora
•
spfile.ora
•
init<SID>.ora
Toutefois, au démarrage d’une instance, on peut forcer le choix d’un fichier plutôt que d’un
autre.
Création d’un SPFILE par copie du PFILE
SQL >Create spfile from pfile
Création d’un PFILE par copie du SPFILE
SQL >Create pfile from spfile
Création d’une instance : utilitaire ORADIM
L’étape OS : utilitaire ORADIM
Les répertoires de travail
Il existe trois répertoires de travail à noter:
•
un pour les fichiers d’administration : C:\oraclexe\app\oracle\admin\maBase
•
un pour les fichiers de données : C:\oraclexe\oradata\maBase
Pour créer le service Windows :
C:\>set oracle_sid=mabase
C:\>ORADIM –new –sid mabase –intpwd monPwd –startmod a
Pour supprimer le service Windows :
C:\>ORADIM –delete –sid mabase
Pour que le service démarre automatiquement
C:\>ORADIM –edit –sid mabase –srvcstart system
ORADIM permet aussi de lancer et d’arrêter une instance.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 18/34 - Bertrand LIAUDET
Pour plus de détails :
C:\>ORADIM \?
Pour créer le fichier de paramètres SPFILE :
C:\>set oracle_sid=mabase
C:\ sqlplus /as sysdba
Connecté à une instance inactive
SQL>create spfile from pfile=’C:\...\initMaBase.ora’;
Fichier créé
PFILE = ‘C:\oraclexe\app\oracle\product\10.2.0\server\database/initMABASE.ora’
SPFILE = 'C:\oraclexe\app\oracle\product\10.2.0\server\dbs/spfileMABASE.ora'
Pour lancer l’instance
SQL>startup nomount
Instance oracle lancée
Démarrage et arrêt d’une instance et d’une BD
Les 3 étapes du démarrage : nomount, mount et open
L’étape « nomount » : démarrage de l’instance
Lire le fichier de paramètres
Allouer la mémoire du SGA
Démarrer les processus d’arrière plan
Ouvrir les fichiers de trace et d’alerte
L’étape « mount » : montage de la BD
Associer la BD à l’instance démarrée
Ouvrir les fichiers de contrôle.
A cette étape, seul les administrateurs SYSDBA ou SYSOPER peuvent accéder à la BD.
L’étape open : ouverture de la BD
Vérifier que les fichiers de données et les fichiers journaux sont accessibles.
Permettre la connexion de tous les utilisateurs.
Lancer un processus d’arrière plan SMON pour restaurer la BD si nécessaire.
La commande startup
Startup permet de démarrer l’instance et la BD.
SQL > startup
On peut limiter le startup au « nomount » ou au « mount ».
SQL > startup mount
On peut préciser le fichier de paramètres.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 19/34 - Bertrand LIAUDET
SQL > help startup
La commande alter database
La commande alter database permet de passer d’un état (« mount ») à un autre (« open »).
SQL > startup nomount
SQL > alter database open;
Les 4 types d’arrêt
Shutdown abort
Arrêt le plus brutal et le plus rapide. Pas de rollback avant pendant l’arrêt. Ce shutdown
nécessite une récupération d’instance au redémarrage.
Shutdown immediate
Ce shutdown évite de perdre des données mais les transactions en cours sont arrêtées avec un
rollback.
C’est le mode qui, associé au redémarrage est le plus rapide, car le redémarrage ne nécessite pas
de récupération.
Shutdown transactionnal
Ce shutdown évite de perdre des données et attend que toutes les transactions en cours soient
validées par un commit. Aucune nouvelle transaction n’est autorisée.
Shutdown normal
Ce shutdown évite de perdre des données et attend que toutes les connexions en cours soient
arrêtées. Aucune nouvelle connexion n’est autorisée.
Les vues dynamiques
Les vues associées aux étapes de démarrage
Vues dynamiques
Etapes
Eléments montés
V$PARAMETER
V$SPPARAMETER
V$SGA
V$SGA_DYNAMIC_COMPONENTS
V$OPTION
V$SESSION
V$INSTANCE
NOMOUNT
Fichier de paramètres
Instance (SGA,
processus d’arrière plan)
V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$LOGFILE
MOUNT
Fichier de contrôle
Vues du dictionnaire
OPEN
Fichiers de données
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 20/34 - Bertrand LIAUDET
des données
Fichiers journaux
La vue de toutes les vues dynamique : V$FIXED_TABLE
Dans cette vue on peut trouver :
SQL> select * from v$fixed_table where name like 'V$%PARAM%';
NAME
-----------------------------V$PARAMETER
V$SYSTEM_PARAMETER
V$PARAMETER2
V$SYSTEM_PARAMETER2
V$OBSOLETE_PARAMETER
V$SPPARAMETER
V$PARAMETER_VALID_VALUES
V$NLS_PARAMETERS
V$LOGMNR_PARAMETERS
V$HS_PARAMETER
OBJECT_ID
---------4294950940
4294951200
4294951591
4294951592
4294951488
4294951748
4294952696
4294951071
4294951547
4294951608
TYPE
TABLE_NUM
----- ---------VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
VIEW
65537
10 ligne(s) sélectionnée(s).
Dans la vue V$NLS_PARAMETERS, on trouve :
SQL> select * from v$nls_parameters where parameter='NLS_LANGUAGE';
PARAMETER
VALUE
-------------- --------NLS_LANGUAGE
FRENCH
SQL> alter session set nls_language='ITALIAN';
Modificata sessione.
SQL> select * from v$nls_parameters where parameter='NLS_LANGUAGE';
PARAMETER
VALUE
-------------- --------NLS_LANGUAGE
ITALIAN
A noter qu’il y a 1383 vues dans la vue V$FIXED_TABLE !!!
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 21/34 - Bertrand LIAUDET
Gestion d’une BD
Notion de BD
Les concepts d’instance et de base de données sont les concepts centraux de l’architecture
Oracle.
La BD est l’ensemble des trois fichiers obligatoire : les fichiers de contrôle, les fichiers de
données et les fichiers journaux.
Les fichiers de la BD
Les fichiers de données sont les fichiers contenant les données de la base.
Le fichier de contrôle est un fichier qui permet de contrôler tous les fichiers oracle.
Les fichiers journaux (fichier redo-log) contiennent les modifications successives de la BD.
Le fichier de paramètre contient les paramètres de démarrage de l’instance.
Le fichier de mots de passe vérifie l’authenticité des utilisateurs privilégiés.
Création manuelle d’une BD : CREATE DATABASE
La création d’une BD est une tâche importante.
Le nom de la BD et la taille des blocs ne pourront plus être modifiés.
On peut créer une BD à partir de rien ou à partir d’une BD existante en effaçant les fichiers de
données.
La BD est créée à partir d’un administrateurs connecté à une instance démarré en « nomount »
avec des privilèges SYSDBA.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 22/34 - Bertrand LIAUDET
C:\ sqlplus /as sysdba
Connecté à une instance inactive
SQL>create spfile from pfile=’C:\...\initMaBase.ora’;
Fichier créé
SQL>startup nomount
Instance oracle lancée
La création de la BD va créer les fichiers de données de la BD. Ces fichiers seront lus par les
processus d’arrière plan de l’instance.
La création des fichiers de données se fait par commande : CREATE DATABASE
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/create.htm#i1008985
SQL>create database “maBase” ...;
SQL > alter database open;
Une fois l’instance démarrer en « nomount », on peut créer la BD. On peut ensuite la monter et
l’ouvrir avec l’alter database.
Pour visualiser le DB_NAME (nom de la BD, 8 caractères maximum)
Show parameter DB_NAME
DB_UNIQUE_NAME : nom de la BD sur 30 caractères.
Pour visualiser le INSTANCE _NAME (nom de l’instance, en général même nom que la BD) :
Show parameter INSTANCE _NAME
Création du dictionnaire
Pour créer le dictionnaire des données, il faut exécuter des scripts qui sont dans le répertoire :
%ORACLE_HOME% / RDBMS / admin
Les deux scripts obligatoires sont :
•
catalog.sql
• catproc.sql
Mais il y en a d’autres !
Exemple de code :
SQL
SQL
SQL
SQL
SQL
>
>
>
>
>
connect / as sysdba
spool ./createCatalog.log
@%ORACLE_HOME \ rdbms \ admin \ catalog.sql ;
@%ORACLE_HOME \ rdbms \ admin \ catproc.sql ;
spool off
On commence par se connecter en tant qu’administrateur avec privilèges SYSDBA.
On redirige les résultats dans le fichier createCatalog.log pour pouvoir les lire ensuite.
On exécute les deux fichier catalog.sql et catproc.sql.
On ferme le fichier spool.
Changer d’instance pour une BD
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 23/34 - Bertrand LIAUDET
Oradim -DELETE -SID XE
Set ORACLE_SID=bertrand
Oradim -NEW -SID bertrand -INTPWD liaudet -STARTMODE m
Sqlplus / as sysdba
Create spfile from
pfile=’C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE
.ora’;
Startup
Select instance_name from v$instance ;
Select name, open_mode from v$database ;
Sauvegarder : lister tous les fichiers de la BD
Pour sauvegarder, il suffit de copier tous les fichier résultats de la requêtes suivante :
Select name from v$datafile
Union all -- all évite le tri
Select name from v$controlfile
Union all -- all évite le tri
Select member from v$logfile ;
NAME
------------------------------------------------------------------C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF
C:\ORACLEXE\ORADATA\XE\UNDO.DBF
C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF
C:\ORACLEXE\ORADATA\XE\USERS.DBF
C:\ORACLEXE\ORADATA\XE\CONTROL.DBF
C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_50R
MMBVC_.LOG
C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_50R
MM9TV_.LOG
7 ligne(s) sélectionnée(s).
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 24/34 - Bertrand LIAUDET
DICTIONNAIRE
Dictionnaire et dictionnaire des données
Présentation
Le dictionnaire
Le dictionnaire est un ensemble de tables, de vues et de synonymes contenant toutes les
informations concernant tous les objets de la base, que ce soit du point de vue de l’utilisateur ou
de l’administrateur, que ce soit d’un point de vue logique ou d’un point de vue physique.
Le dictionnaire est mis à jour automatiquement à chaque modification de la BD.
Le propriétaire du dictionnaire est l’utilisateur SYS.
Le dictionnaire des données
Le dictionnaire des données est une partie du dictionnaire.
Le dictionnaire des données contient les données des bases de données pour les utilisateurs.
La vue « dictionnary » ou le synonyme « dict »
Description du dictionnaire
C’est une table avec deux attributs : « table_name » et « comments »
Il contient environ 1800 tuples.
SQL> select count(*) from dict ;
COUNT(*)
---------1821
Chaque tuple du dictionnaire concerne une table, une vue ou un synonyme.
Les attributs de chaque table sont accessibles à partir de la vue : « dict_columns ».
Les 4 types d’objets du dictionnaire
Le dictionnaire contient :
•
Environ 1000 objets du dictionnaire des données tous préfixés par DBA (env. 500), ALL
(env. 250) ou USER (env. 250)
•
Environ 400 vues des performances toutes préfixées par « V_$ », accessibles par des
synonymes tous préfixées par « V$ ».
•
Environ 350 Les vues des performances des bases en cluster, toutes préfixées par
« GV$ »
•
Environ 30 objets relevant en général du dictionnaire des données.
La vue de toutes les performances est dans « v$fixed_table ».
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 25/34 - Bertrand LIAUDET
Exemple de requête
column table_name format a30
column comments format a80
select table_name, comments from dict
where substr(table_name, 1, 2)!='V$'
and substr(table_name, 1, 3)!='GV$'
and substr(table_name, 1, 4)!='ALL_'
and substr(table_name, 1, 4)!='DBA_'
and substr(table_name, 1, 5)!='USER_';
Dictionnaire des données
Premiers usages du dictionnaire des données
Lister toutes les tables
SQL> select * from cat;
SQL> select * from user_catalog;
SQL> select * from all_catalog;
SQL> desc user_tables ;
SQL> select table_name from user_tables ; // lister les tables
Description des attributs d’une table
SQL> desc nomTable
// description d’une table
Tous les utilisateurs
desc all_users ;
select * from all_users
Utilisateur courant
desc user_users ;
select username from user_users
Utilisateur courant
desc user_objects;
select object_name, object_type from user_objects;
Principales vues du dictionnaire des données
all_catalog
all_objects
all_views
cat
user_catalog
user_objects
user_tables
user_constraints
user_indexes
etc.
-- tables, sequence, synonyme, vue, environ 4000
-- 19 types d’objets, environ 5000
-- les vues, environ 1000
-------
équivalent à user_catalog
les tables et les séquences
tous les objets
les tables
les contraintes
les index
La vue des vues : all_views
Les tables du dictionnaires des attributs sont des vues.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 26/34 - Bertrand LIAUDET
En général, les vues sont préfixées soit par « all » soit par « user ».
La vue qui contient toutes les vues : « all_views »
Desc all_views
select count(*) from all_views ;
-- pour chercher les vues qui concernent les sequences :
Select view_name from all_views where view_name like « %SEQ% » ;
-- pour chercher les vues qui concernent les privilèges :
Select view_name from all_views wher view_name like « %PRIV% » ;
Etc.
Les vues du dictionnaires des données
Ce sont les vues du dictionnaire préfixées par « DBA_ », « ALL_ » ou « USER_ ».
•
Les vues « DBA_ » contiennent des informations sur tous les objets de tous les schémas.
•
Les vues « ALL_ » contiennent des informations sur les objets accessibles par le groupe
PUBLIC et par l’utilisateur courrant. Les vues « ALL » sont les vues accessibles à tous.
•
Les vues « USER_ » contiennent les informations sur les objets accessibles par l’utilisateur
courant.
Les 3 catalogues
Le catalogue est la vue contenant tous les objets accessibles.
Il y a 3 catalogues : « DBA_Catalog », « ALL_Catalog » et « USER_Catalog »
« CAT » est un synonyme de la vue « USER_catalog ».
Les différents objets
On peut ensuite accéder aux OBJECTS, TABLES, TAB_COLUMNS, VIEWS, SYNONYMS,
SEQUENCES, CONSTRAINTS, CONS_COLUMNS, INDEXES, IND_COLUMNS,
CLUSTERS, CLU_COLUMNS.
Exemple
Select object_name, object_type, created, last_ddl_time
From DBA_OBJECTS
Where owner like ‘Toto’
Accès aux statistiques
Les tables DBA_TABLES et DBA_TAB_COLUMNS permettent d’accéder aux informations
d’identification (owner, table_name, column_name, etc.), d’espace de stockage
(tablespace_name, cluster_name) pour les tables et de définition pour les colonnes (data_type,
data_length, nullable, etc.).
Elles permettent aussi d’accéder à des informations de statistiques qui interviendront dans le
calcul d’optimisation : num_rows, blocks, cache, num_distinct, num_null, etc.)
Les utilisateurs et leurs privilèges
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 27/34 - Bertrand LIAUDET
Vues des utilisateurs
La vue « USERS » permet de lister les utilisateurs et leurs caractéristiques
Select * from all_users ;
Vues des roles
Les vues « ROLES » et « ROLE_PRIVS » permettent de lister les rôles des utilisateurs.
Pour un utilisateur ayant le rôle DBA,
SQL> select * from dba_roles order by role;
Permet de lister les rôles de l’utilisateur. Ca donne le même résultat que :
SQL> select * from user_role_privs order by granted_role;
Et
SQL> select * from dba_role_privs order by granted_role;
permet de lister tous les rôles de tous les utilisateurs.
Pour un utilisateur ayant simplement les rôles « CONNECT » et « RESSOURCE » seul la vue
« USER_ROLE_PRIVS » est accessible :
SQL> select * from user_role_privs order by granted_role;
USERNAME
-------------------BERTRAND2
BERTRAND2
GRANTED_ROLE
-----------------------------CONNECT
RESOURCE
ADM
--NO
NO
DEF
--YES
YES
OS_
--NO
NO
Autres droits
Les vues « SYS_PRIVS », « TAB_PRIVS » et « COL_PRIVS » permettent de détailler les
droits.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 28/34 - Bertrand LIAUDET
CONTROLE, JOURNAUX ET UNDO
Les fichiers de contrôle
Un fichier de contrôle est un fichier binaire de petite taille associé à une base de données.
Il contient des informations concernant : la BD, les fichiers, les tablesspaces, la taille d’un bloc
de données, les journaux, les archives, les points de contôle (checkpoint).
Il précise aussi, entre autres, le nombre maximum de journaux (MAXLOGFLES,
MAXLOGMEMBERS), d’archives (MAXLOGHISTORY).
Pour créer un fichier de contrôle (CREATE CONTROLFILE), il faut préciser tous les
paramètres cités.
Show parameter control_file permet de connaître le nom et l’emplacement du fichier de
contrôle.
Les vues V$CONTROLFILE, V$PARAMETER permettent aussi de connaître des informations
sur les fichiers de contrôle.
Etant donné l’importance de ce fichier, il est conseillé d’avoir au moins deux fichiers de
contrôle.
La commande : ALTER SYSTEM SET CONTROL_FILES = NOM DU FICHIER permet de
spécifier le fichier de contrôle qu’on veut utiliser.
La commande SHOW PARAMETER CONTROL_FILES permet de connaître le nom et de
répertoire du fichier de contrôle actuellement utilisé.
Les fichiers de journaux
Les fichiers de JOURNAUX sont aussi appelés : fichiers REDO ou fichiers de REPRISE.
Présentation
Les fichiers journaux sont des fichiers qui conservent toutes les modifications successives de la
BD : toutes les opérations validées (transaction terminée) ou non validées (transaction en cours)
effectuées sur les données de la BD sont d’abord écrites dans les fichiers journaux.
Ils sont utiles lors d’une restauration à la suite d’un problème.
Gestion de base
Principes
Les fichiers de journaux prennent un volume important.
Il faut les placer sur un périphérique différent de celui des fichiers de la BD
Le processus LGWR écrit dans les fichiers journaux. L’utilisation est circulaire : quand le
dernier est plein, LGWR reprend au premier. Les fichiers sont numérotés mais quand on revient
au premier le numéro ne reste pas 1 mais suit la progression.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 29/34 - Bertrand LIAUDET
Gestion des groupes et des membres
Les fichiers de journaux ont intérêt à être dupliqués (comme le fichier de contrôle) pour se
protéger du dysfonctionnement d’un fichier. Les copies ont intérêt à être placées sur des disques
distincts.
Un fichier et ses copies forment un « groupe » dont chaque fichier est un « membre ».
MAXLOGFILES fixe le nombre maximum de fichiers gérés en tout (nombre maximum de
membres en tout). MAXLOGMEMBERS fixe le nombre maximum de membres par groupe.
CF. fichier de controle/
La vue V$LOGFILE permet de récupérer les informations sur les fichiers de journaux.
Les commandes suivantes permettent de gérer les groupes et les membres :
•
ALTER DATABASE ADD LOGILE GROUP
•
ALTER DATABASE ADD LOGFILE MEMBER
•
ALTER DATABASE DROP LOGILE GROUP
•
ALTER DATABASE DROP LOGFILE MEMBER
Gestion des performances
Augmenter la taille des fichiers de journaux améliore les performances d’utilisation mais ralentit
le temps de reprise et augmente la taille des pertes en cas de problème.
NOARCHIVELOG et ARCHIVELOG
En mode ARCHIVELOG, le système fait une copie de chaque fichier journal quand il est plein
(processus ARCn).
Le mode NOARCHIVELOG réduit l’utilisation de la mémoire sur le disque et améliore les
performances mais il réduit les chances de reconstruire correctement les fichiers de données à
partir des fichiers journaux.
ARCHIVE LOG LIST permet de consulter l’état courant de la base à ce sujet.
L’attribut LOG_MODE de la vue V$DATABASE permet aussi de connaître l’état de la base à
ce sujet.
On peut sélectionner le mode ARCHIVELOG ou NOARCHIVELOG au démarrage du
serveur :
•
STARTUP MOUNT
•
ALTER DATABASE ARCHIVELOG
•
ALTER DATABASE OPEN
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 30/34 - Bertrand LIAUDET
Le segment UNDO
Chaque BD gère un ou plusieurs segments UNDO qui contiennent les anciennes valeurs des
enregistrements en cours de modification dans les transactions.
Ces segments sont stockées dans un tablespace spécial appelé UNDO.
Seul ORACLE peut lire ces segments. Les utilisateurs et les administrateurs ne le peuvent pas.
Ces segments servent à ORACLE pour :
•
Gérer une lecture cohérente des données
•
Gérer l’annulation d’une transaction
•
Gérer la récupération en cas d’arrêt brutal du serveur
•
Interroger les données dans l’état où elles étaient avant des modifications (FLASHBACK
ORACLE 9i)
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 31/34 - Bertrand LIAUDET
TABLESPACE
LES ASSISTANTS ORACLE
Oracle Net
Gestion des paramètres du fichier SPFILE
Arrêter et démarrer le serveur
OEM : Oracle Entreprise Manager
Gestion des paramètres du fichier SPFILE
Arrêter et démarrer le serveur
L’assistant DBCA
Création et configuration d’une BD
http://download.oracle.com/docs/cd/B19306_01/server.102/b14196/install003.htm#CHDFGJEI
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 32/34 - Bertrand LIAUDET
TP
Installation d’une instance
Méthode de travail
Conserver une trace écrite de toutes les commandes que vous effectuez, avec les résultats.
Fonctionner au maximum par essai – erreur, en analysant les messages d'erreurs
Essayer d'être autonomes. Lisez les messages d'erreurs sont le plus souvent explicites, ils
mettent sur la voie d’une solution.
Chercher dans la documentation et sur google.
Quelques pistes google :
http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm
http://orafrance.developpez.com/dbahelp/ : pense-bête DBA Oracle
http://mbouayoun.developpez.com/Fctladm/ : sur les fichiers de contrôle
etc...
Objectif
Obtenir une première base avec son instance, sans être regardant sur les paramètres, les
emplacements des fichiers…
Le nom de l’instance sera (en majuscules) : DB suivi des 2 premières lettres de votre prénom,
suivi des 3 premières lettres de votre nom (ex. : DBELIA).
Paramètres de l'instance :
On définie les paramètres suivants, les autres gardant leurs valeurs par défaut :
•
nom de base : identique au nom de l'instance,
•
un fichier de contrôle,
•
50 processus utilisateurs peuvent se connecter simultanément à l'instance,
•
taille d'un bloc de données : 8 192 octets,
•
taille du tampon de données (db_cache_size) : 2 516 582 octets,
•
taille de la zone SQL partagée (shared_pool_size) : 54 525 953 octets,
•
taille du tampon Java (java_pool_size) : 0 octets,
•
les fichiers de dump (background, core et user) doivent être rangés dans des sousrépertoires de votre compte.
Paramètres de la base :
•
32 groupes de fichiers redo-log pourront être créés,
•
taille des fichiers redo-log : 6 Mo,
•
taille du fichier de données système : 30 Mo,
•
taille du fichier de données auxiliaires : 10 Mo.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 33/34 - Bertrand LIAUDET
A la fin de la séance, il faut arrêter votre instance.
INSIA - BASES DE DONNÉES – SIGL – ARCHITECTURE ORACLE - page 34/34 - Bertrand LIAUDET
Téléchargement