L’installation d’un serveur Oracle définit un nombre maximal de processus à accepter pour ne pas saturer le SGBD et on peut arriver à cette limite lorsqu’un nombre important d’utilisateurs se connecte simultanément aux BDD. Pour connaitre quelle base est concernée, quel logiciel métier ouvre trop de sessions ou quel développeur n’a pas fermé ses connexions ou a mal codé son script, voici comment lister toutes les sessions ouvertes sur les bases de données hébergées sur un serveur Oracle au moyen d’une requête à exécuter en SQLPlus ou via SQL Developer. Cette information peut aussi être disponible via la console web Oracle Enterprise Manager (OEM ou EM).
Ces requêtes sont compatibles avec les différentes versions du SGBDR Oracle : 9i, 10g, 11g, 12c (à chaque fois dans les mises à jour R1 et R2).
Liste simple des connexions à un serveur Oracle
Cette commande va simplement lister les bases ouvertes par session :
SELECT username FROM v$session WHERE username IS NOT NULL ORDER BY username ASC;
Résultat par SQL Plus :
Résultat par Oracle SQL Developer :
Liste détaillée des connexions à un serveur Oracle
Pour avoir plus d’informations, comme connaitre le programme qui est connecté ou quel serveur / poste de travail travaille actuellement sur une base, ce script va donner des détails sur les sessions en cours sur le SGBD Oracle.
select substr(a.spid,1,9) pid, substr(b.sid,1,5) sid, substr(b.serial#,1,5) ser#, substr(b.machine,1,15) box, substr(b.username,1,10) username, -- b.server, substr(b.osuser,1,15) os_user, substr(b.program,1,30) program from v$session b, v$process a where b.paddr = a.addr and type='USER' order by username;
Résultat par SQL Plus :
Résultat par Oracle SQL Developer :
Ce résultat est beaucoup plus détaillé, plus facile à lire avec SQL Developper et indique les informations suivantes :
- BOX : nom de la machine (hostname) qui a établi la session
- USERNAME : nom de l’utilisateur connecté (user Oracle)
- OS_USER : profil du système (login Windows par exemple)
- PROGRAM : logiciel ou outil utilisé par la connexion
Dans les programmes, on peut retrouver sqlplus.exe (SQL Plus), Oracle SQL Developer, JDBC Thin Client (application Java)…