Rollback users
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic (Rollback segments) |
| Voir aussi | Rollback segments · Sess current user transactions |
Rollback users identifie les sessions actuellement liées à un segment d'annulation
manuel (rollback segment) actif, via un verrou de type TX en mode
exclusif (lmode = 6) sur v$lock. Comme Rollback segments, ce
script s'adresse aux instances encore en gestion manuelle de l'annulation
(UNDO_MANAGEMENT=MANUAL) — sur une instance en Automatic Undo Management,
préférer Sess current user transactions ou Sess uncommited transactions.
Script
SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report : Rollback Users |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET LINESIZE 180
SET PAGESIZE 50000
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN rollback_name FORMAT a25 HEADING 'Rollback Name'
COLUMN sid FORMAT 999999 HEADING 'SID'
COLUMN serial_id FORMAT 99999999 HEADING 'Serial ID'
COLUMN session_status FORMAT a9 HEADING 'Status'
COLUMN oracle_username FORMAT a18 HEADING 'Oracle User'
COLUMN os_username FORMAT a18 HEADING 'O/S User'
COLUMN session_machine FORMAT a30 HEADING 'Machine' TRUNC
COLUMN session_program FORMAT a40 HEADING 'Session Program' TRUNC
SELECT
r.name rollback_name
, s.sid sid
, s.serial# serial_id
, s.status session_status
, s.username oracle_username
, s.osuser os_username
, s.machine session_machine
, s.program session_program
FROM
v$lock l
, v$rollname r
, v$session s
WHERE
s.sid = l.sid
AND TRUNC(l.id1(+) / 65536) = r.usn
AND l.type(+) = 'TX'
AND l.lmode(+) = 6
ORDER BY
s.sid
/
Le calcul TRUNC(l.id1 / 65536) extrait le numéro de segment d'annulation
(usn) encodé dans le premier identifiant du verrou TX — une astuce
classique de diagnostic Oracle antérieure à l'existence de colonnes dédiées plus lisibles.
Voir aussi
- Rollback segments — état global des segments d'annulation manuels
- Sess current user transactions — équivalent moderne (Automatic Undo Management)