The Geek Diary
L’exemple suivant décrit les opérations de base de données Oracle au niveau le plus élémentaire. Il illustre une configuration de base de données Oracle dans laquelle l’utilisateur et le processus serveur associé se trouvent sur des ordinateurs distincts, connectés via un réseau.
1. Une instance a démarré sur un nœud où la base de données Oracle est installée, souvent appelé hôte ou serveur de base de données.
2. Un utilisateur démarre une application engendrant un processus utilisateur. L’application tente d’établir une connexion au serveur. (La connexion peut être locale, client/serveur ou une connexion à trois niveaux à partir d’un niveau intermédiaire.)
3. Le serveur exécute un écouteur doté du gestionnaire Oracle Net Services approprié. L’écouteur détecte la demande de connexion de l’application et crée un processus serveur dédié au nom du processus utilisateur.
4. L’utilisateur exécute une instruction SQL de type DML et valide la transaction. Par exemple, l’utilisateur modifie l’adresse d’un client dans une table et valide la modification.
5. Le processus serveur reçoit l’instruction et vérifie dans le pool partagé (un composant SGA) toute zone SQL partagée contenant une instruction SQL identique. Si une zone SQL partagée est trouvée, le processus serveur vérifie les privilèges d’accès de l’utilisateur aux données demandées par l’utilisateur et la zone SQL partagée existante est utilisée pour traiter l’instruction. Si une zone SQL partagée n’est pas trouvée, une nouvelle zone SQL partagée est allouée à l’instruction afin qu’elle puisse être analysée et traitée.
6. Le processus serveur récupère toutes les valeurs de données nécessaires, soit à partir du fichier de données réel (table), soit à partir des valeurs stockées dans le cache tampon de la base de données.
7. Le processus serveur modifie les données dans le SGA. Étant donné que la transaction est validée, le processus d’écriture de journaux (LGWR) enregistre immédiatement la transaction dans le fichier journal de restauration. Le processus d’écriture de base de données (DBWn) écrit des blocs modifiés de manière permanente sur le disque lorsqu’il est efficace de le faire.
8. Si la transaction réussit, le processus serveur envoie un message sur le réseau à l’application. En cas d’échec, un message d’erreur est transmis.
9. Tout au long de cette procédure, les autres processus d’arrière-plan s’exécutent, surveillant les conditions nécessitant une intervention. De plus, le serveur de base de données gère les transactions des autres utilisateurs et empêche les conflits entre les transactions qui demandent les mêmes données.