Cours Base de données avec Oracle
Cours Base de données avec Oracle
...
Introduction
L’administration de données consiste à :
- créer la base de données
- définir les objets de la base
- veiller à la bonne utilisation des données.
Utilisation de l’architecture ANSI/SPARC
- niveau conceptuel
- niveau externe
- niveau interne
Architecture ANSI/SPARC
Administration Oracle 5
Rôle de l’administrateur
L’administrateur peut avoir un double rôle:
- rôle organisationnel
- rôle technique
ces deux rôles peuvent être assurés par une ou plusieurs personnes.
Rôle technique
- Installation du SGBD et des outils associés
- Création de la base de données et assurer
son évolution
- Gestion des privilèges d’accès
- Amélioration des performances
- Sécurité et cohérence des données
- Echange de données entre la base et le monde extérieur
Assistance aux utilisateurs
Identification du produit Oracle
Pour identifier un des produits logiciels,
Oracle utilise jusqu’à 5 chiffres :
Num 7.2.2.3 éro de version Numéro de release du patch spécifique
Numéro de release de maintenance Numéro de release du patch
Identification du produit Oracle
Architecture d’Oracle
Oracle Universal Server inaugure une
nouvelle génération de systèmes d’information pour gérer tout type de données.
Architecture fonctionnelle
Architecture Interne du noyau
Administration Oracle 10
Architecture fonctionnelle
Relationnel
Spatial
Texte
Vidéo
OLAP
Web
Network Computer
Oracle InterOffice
Developer/2000
Designer/2000
Oracle
Warehouse
Oracle
Express
Discovrer
Architecture fonctionnelle (suite)
Caractéristiques de l’offre Oracle
Portabilité Portabilité : critère décisif pour les décideurs
Interopé Interopérabilit rabilit rabilité : client/serveur, protocoles
réseaux, passerelles
Conformité Conformité aux normes et standards aux normes et standards :
ANSI, ISO, OSF, X/OPEN, OMG etc.
Administration Oracle 12
Oracle Universal Server
Les options d’Oracle Universal Server sont
regroupées en deux types :
Options techniques : Oracle distributed, Oracle
Symmectric Replication, Oracle Parallel Server,
Advanced Networking Option, Entreprise Manager
Performance Pack, Oracle VLM.
Options fonctionnelles : Context Option,
TextServer Option, Video Option , Spatial Data
Option
Administration Oracle 13
L’architecture interne d’Oracle est composée:
Zone Mémoire
Processus Processus Processus
fichiers
Architecture Interne d’Oracle
...
Configuration en serveur dédié
Pour chaque processus client exécuté est associé un processus serveur.
System Global Area
Stations clientes
Serveur de bases de donné de données
Program
Interface
Les processus
Deux types de processus :
Processus utilisateurs : pour exécuter une application SQL*Plus, Pro*C, etc.
Processus Oracle
Processus SERVER : interaction entre processus utilisateur et l’instance ( mémoire de la SGA).
Processus en arrière plan (BACKGROUND) :
effectue des tâches bien définies pour l’ensemble des utilisateurs.
Administration Oracle 18
Les processus (suite)
PMON : Process Monitor est chargé du nettoyage en cas de crash d’un processus utilisateur.
SMON : System Monitor permet de restaurer la
base au démarrage de l’instance.
DBWR : Database Writer est chargé de l’écriture
des buffers de données sur disque.
LGWR : Log Writer est chargé de la gestion du
buffer redo log de la SGA.
Les processus (suite)
CKPT : Checkpoint est optionnel pour écrire les données les plus fréquemment modifiées.
ARCH : Archiver est chargé de copier le fichier
Redo Log courant dès qu’il est plein sur la destination des fichiers d’archives.
RECO : Recover est chargé de résoudre les anomalies de transactions distribuées.
LCKn : Lock prend en charge la gestion de verrous dans une architecture Parallel Server.
PMON (Process Monitor)
Assure le recouvrement des processus utilisateurs en cas de problème en libérant les ressources qui étaient utilisées par ces processus.
Assure la libération des segments temporaires qui ne sont pas utilisés.
réveillé régulièrement pour effectuer ce recouvrement.
SMON (System Monitor)
Assure le recouvrement d’instance lors du démarrage d’instance.
Assure la libération des segments temporaires qui ne sont pas utilisés.
réveillé régulièrement pour effectuer cette opération
peut être déclenché par un autre processus.
DBWR (Database Writer)
gère le buffer de base de données écrit les modifications apportées au buffer dans les fichiers de données
maintient ce buffer «propre» avec un minimum de tampons modifiés
Utilisation de l’algorithme LRU (Least
Recently Used) qui permet de minimiser les opérations d’entrée/sortie.
LGWR (Log Writer)
Ecrit les buffers Redo Log dans les fichiers de reprise.
En cas d’existence de groupe de fichiers de reprise,
LGWR effectue une écriture synchrone sur tous les fichiers activés.
Ce processus est activé de la façon suivante :
toutes les 3 secondes
lorsque le tiers du buffer Redo Log est plein
lorsque le DBWR effectue une écriture des buffers
modifiés sur disque.
CKPT (Checkpoint)
le processus DBWR effectue régulièrement une écriture sur les fichiers de données de toutes les modifications dans le buffer de données.
Cette opération est dite (checkpoint).
Utilité :
permet l’écriture des données qui sont dans le buffer de base de données et qui sont modifiées
fréquemment (l’algorithme LRU n’entraîne pas leur écriture).
Cette opération de checkpoint est normalement effectuée par le processus LGWR.
RECO (Recover)
Utilisé uniquement en cas de base de données répartie.
permet d’effectuer le recouvrement en cas d’échec d’une transaction répartie.
il effectue une connexion avec toutes les bases
distantes concernées par la transaction et active la transaction.
activé au moment du démarrage d’une
instance si l’option est installée.
ARCH (Archiver)
Effectue la copie des fichiers de reprise ayant atteint leur taille maximale sur un support d’archive.
Actif uniquement si la base est en mode
ARCHIVELOG et l’archivage automatique est activé.
LCKn (LOCKn)
N’existe qu’avec l’option Parallel Server
Permet de gérer le verrouillage interinstance.
On peut avoir jusqu’à 10 processus de type
(LCK0,LCK1,....,LCK9).
Dnnn (Dispatcher)
Permet le partage d’un nombre limité de processus
serveurs par les processus utilisateurs.
Utilisé avec la configuration Multi-Threaded Server.
Permet de minimiser le nombre des processus
serveurs lorsque le nombre d’utilisateurs est important.
Le nombre de processus dispatchers est fixé par l’administrateur dans init.ora.
Processus serveur
Utilise l’architecture client/serveur
Fonctions des processus serveurs :
analyser et exécuter les commandes SQL soumises par les applications (utilisateurs).
transférer les blocs de données nécessaires du disque vers la zone SGA.
communiquer les résultats de requêtes aux applications (utilisateurs).
La mémoire
Oracle utilise les structures suivantes au niveau de la mémoire centrale :
le code de l’applicatif
les informations relatives à une session ouverte
les données nécessaires pendant l’exécution d’un programme.
les informations partagées par différents processus Oracle (relatives au verrouillage par exemple).
les données échangées avec les mémoires auxiliaires (Bloc de données par exemple).
La mémoire (suite)
La structure de la mémoire est composée de trois types de zones :
zones réservées au code de l’applicatif.
zone globale système (System Global Area ou SGA).
zone globale programme (Program Global Area ou PGA).
Zone du code de l’applicatif
Permet de stocker le code des programmes en cours d’exécution
code du noyau
outils Oracle (SQL*Forms, SQL*Plus...)
programmes d’application en Pro*langage
le code du noyau est stocké dans une zone séparée des autres zones.
les zones réservées au code de l’applicatif sont
accessibles uniquement en lecture.
...
Estimation de la taille de la SGA
Déterminée en fonction des paramètres :
DB_BLOCK_SIZE
DB_BLOCK_BUFFERS
LOG_BUFFER
SHARED_POOL_SIZE
Formule :
Taille de la SGA = ( DB_BLOCK_SIZE * DB_BLOCK_BUFFERS) + LOG_BUFFER + SHARED_POOL_SIZE
Database buffer cache
ensemble de zones buffer contenant des copies de données lues à partir des fichiers de données.
taille déterminée par : DB_BLOCK_BUFFERS
Oracle gère l’espace de ce cache à l’aide de deux listes :
une liste des buffers modifiés mais non encore écrits sur disque (DIRTY LIST)
une liste des buffers les moins utilisés récemment
(LEAST RECENTLY USED LIST) LRU list.
Database buffer cache (suite)
La liste LRU contient :
les buffers libres pouvant être utilisés
les buffers utilisés actuellement par certains processus
les buffers modifiés mais non encore transférés dans la première liste (dirty list).