Date Tags oracle

Voici le début d'une suite de billets dédiée à Oracle, One of my Job in Professional life :)

Il était une fois un DBA qui en avait plein les bottes de demander aux utilisateurs de bien vouloir se déconnecter du schéma pour remonter un dump ... à leur demande de surcroit.

Ainsi donc il dégaina une requête pour leur envoyer un bon coup de pompe dans le derrière.

Pour trouver la/les connexions existantes sur un schéma oracle on fait :

SELECT sid,serial#,osuser,status from v$session where username='&1';

et on indique le nom du schéma voulu.

Quand on a une session on peut encore se faire "à la main" le fameux :

alter system kill session ',';

Mais quand vous avez une ribambelle de têtes de mule, il faut employer les grands moyens, et là, se faire la paire de kill à la main devient pénible et on maudit encore plus ces utilisateurs.

Donc on produit un script SQL, nommons le generate-kill.sql, qui va produire un "rapport" redirigeant les fautifs dans un script SQL qu'on lancera ensuite.

set head off
spool kill_session.sql
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username = '&1';
spool off
exit

On se connecte en tant que sysdba et on tape

@kill_session.sql

bye bye :

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

System altered.

Et on peut enfin faire son drop user/create user pépère pour remonter le dump .