Architectures locales et réparties
On peut distinguer essentiellement 3 types d’architecture globale de systèmes d’information basés sur Oracle :
- architecture locale
Tout est sur le même serveur matériel, programme client et serveur de données Oracle
- architecture client/serveur
On a 2 poles : client + serveur
On a un programme client (un exécutable) sur le poste client, dit alors ‘client lourd’ . Le PC communique avec le serveur de données sur un serveur distant, via le réseau, et la couche Oracle Net.
- architecture 3 tiers
On a 3 poles : cleint / serveur d’application /serveur de donnéesPas de programme client. Un navigateur suffit sur le poste de travail (dit alors ‘client léger’). Il dialogue avec le seveur de données distant via http.
note : il existe également des architectures n- tiers plus anecdotiques, mais conceptuellement intéressantes
Instance ?
Rappel : Une instance est caractérisée par son identificateur : SID, généralement une variable ORACLE_SID positionnée dans l’environnement.
Une instance active en mémoire ce sont :
- des programmes de fond, services ou processus, qui assurent la maintenance du serveur de données et les entrées / sorties fichiers
- des process server (dédiés ou non à un utilisateur)
- une zone globale partagée : la SGA, qui contient essentiellement du cache de buffers
- des zones mémoires dédiées aux utilisateurs : les PGAs (Private Global Area)
Schéma de l’architecture générale en mémoire
La SGA
La SGA est essentiellement un cache mémoire qui contient des infos partagées de la base.
Les process de fond
Ils permettent de paralléliser et désynchroniser les accès multi-utilisateur à la base.
Nous allons lister les principaux :
- DBWn Database Writer
Ecrit les données modifiées, du cache de données de la SGA vers les fichiers de données. On peut en avoir plusieurs (max 20) suivant la valeur du parametre DB_WRITER_PROCESSES
- LGWR Log Writer
Ecrit les mises à jour, du cache de LOG de la SGA vers les ou le fichiers REDOLOG, suivant qu’on utilise des LOGs multiplexés ou non.
- CKPT Checkpoint
Signale l’occurence d’un point de reprise (flush de tous les buffers de données), à DBWR
- PMON Process Monitor
Libère les ressources et nettoie le cache en cas d’échec d’un process utilisateur
- SMON System Monitor
Surveille les process de l’instance et assure les restaurations d’instance
- RECO Recoverer
Gère les transactions distribuées (commit à 2 phases)
et optionnellement :
- ARCn Archiver
sauvegarde le REDOLOG qui vient d’être terminé
- Dnnn Dispatcher
Distribue les accès utilisateurs, vers les serveurs partagés, en architecture multiplexée (Shared Server)
- Snnn Shared Server
Process utilisateurs partagé, en architecture multiplexée
- CJQn Coordinateur de jobs batch
Jnnn Process fils dédiés aux Jobs
- QMNn - Queue monitor
gestionnaire de file d’attente, pour l’option Oracle Advanced QUeuing
- Pnnn Esclave d’execution Parallele
Exécution des requêtes parallèles. Le nb max de process est donné par : PARALLEL_MAX_SERVERS
- LCKn Lock monitor
verrouillage des ressources utilisées par plusieurs instances
- LMS Global cache service
Gestion des ressources inter-instances en architecture cluster (RAC)
note : sous Unix/Linux ces process correspondent à des process Unix, qui appartiennent à l’utilisateur Oracle et s’exécutent de manière ‘déconnectée’ (background).
On peut facilement en avoir la liste avec la commande suivante :
$> ps -ef |grep oracle
Sous Windows ils correspondent à des services :