Come controllare per blocchi correnti in un database Oracle

March 24

Come controllare per blocchi correnti in un database Oracle


Oracle utilizza una funzione di blocco per garantire che i dati non sono aggiornati da più di una funzione alla volta per mantenere l'integrità dei dati. Bloccaggio avviene a molti livelli, tra le righe, tavoli e spazi di tabella. Sul blocco a livello di utente, il "commit" comando apporta modifiche permanenti e rimuove il blocco. Il comando "rollback" inverte i cambiamenti prima di rilasciare il blocco. record di Oracle di bloccaggio informazioni in una tabella di sistema denominata "v $ blocco" che può essere interrogato utilizzando la Structured Query Language (SQL).

istruzione

1 Rivedere la "v $ blocco" tabella di Oracle per il bloccaggio informazioni. Utilizzare il comando "selezionare" per visualizzare "sid", "tipo", "lMode" e "richiesta". Sid sta per il numero ID di sessione e identifica la sessione che possiede il blocco.

selezionare

sid,

Digitare,

lMode,

richiesta

da v $ serratura;

2 Partecipa alla tabella di Oracle "v $ session" al tavolo "v $ lock" per determinare chi sta chiudendo il database. Partecipa da Sid (ID di sessione) per trovare il nome utente.

selezionare

s.username,

V.vid,

l.type,

l.lmode,

l.request

da v $ blocco l, v $ session s

dove l.sid = V.vid;

3 Interrogare la tabella "v $ locked_object" per ulteriori informazioni su ciò che è bloccato. Partecipa con la tabella "dba_objects" per nome e tipo. Il nome dell'oggetto indica ciò che è bloccata e le colonne nome utente identificare chi ha creato il blocco.

selezionare

oracle_username

os_user_name,

locked_mode,

object_name,

object_type

da parte di

v $ locked_object ecco, dba_objects fanno

dove

lo.object_id = do.object_id;

Consigli e avvertenze

  • Prima di interrogare per serrature, richiedere l'accesso dal l'amministratore del database (DBA).
  • Se un blocco non rilascia in un tempo accettabile, il DBA può annullare la sessione e rilasciare la risorsa. Riciclaggio della banca dati è raramente necessaria per rilasciare un blocco.
  • Nella tabella "$ lock", digitare i valori sono "TM" per blocchi di tabella, "TX" per serrature di transazione, "MR" per i media serrature di recupero e "ST" per serrature di spazio su disco.
  • "LMode" e "richiesta" sono significative quando i loro valori vengono confrontati insieme. Solo uno può essere uguale a zero o uno allo stesso tempo. La colonna che non è zero o uno indica la modalità di blocco. modalità di blocco valide sono uno per nulla (o No Lock), due per la quota di fila (SS), tre per fila esclusivo (SX), quattro per azione (S), cinque per la quota di fila esclusivo (SSX) e sei per esclusivo (X ).
  • Annullamento di una sessione potrebbe causare errori fatali.