KILL sessioni UTENTE Oracle su RAC

Pubblicato da Patrizia Gardis il

Lo statement nell’articolo KILL sessioni UTENTE Oracle su RAC, è da me tanto amato per via del suo prezioso utilizzo, poichè attraverso il campo INST_ID, riusciamo ad eseguire il KILL su ogni istanza che compone il RAC Oracle.

Nelle numerose richieste che arrivano dai clienti che gestisco, spesso mi vengono assegnate attività di allineamento dati da ambiente di produzione ad ambiente di test.

Questo comporta: l’export dei dati dall’ambiente di produzione, il trasferimento del dump di export dal server di produzione al server di test, drop dello SCHEMA da importare in ambiente di test e successiva import dei dati e metadati ossia di tutto lo SCHEMA.

Però nel caso in cui sono connessi utenti o sono presenti sessioni applicative legate allo SCHEMA, il comando di DROP fallirà segnalando che sono presenti sessioni connesse al DB.
Andando più nello specifico, si presenterà il seguente messaggio d’errore:

ORA-01940: cannot drop a user that is currently connected

Come possiamo risolvere il problema?

Prima di tutto dobbiamo individuare le sessioni e successivamente dovremo eseguire il KILL delle stesse.

Quindi, nel caso in cui abbiamo la necessità di eseguire il kill di tutte le sessioni Oracle di un determinato utente, con la seguente query dinamica,
costruiremo il comando da lanciare per eseguire il kill di tutte le sessioni su tutte le istanze del RAC da una sola istanza.

KILL sessioni UTENTE Oracle su RAC

select  'alter system kill session ''' || sid || ',' || serial# || ','||'@'|| INST_ID || ''' immediate;' 
from gv$session where USERNAME = '&USERNAME';

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin


0 commenti

Lascia un commento

Segnaposto per l'avatar