Hvor å Sjekk for Current Låser i en Oracle Database

Hvor å Sjekk for Current Låser i en Oracle Database


Oracle benytter en låsefunksjon for å sikre at data ikke er oppdatert av mer enn en funksjon ved en tid for å opprettholde dataintegritet. Låsing skjer på mange nivåer, inkludert rader, tabeller og tabellplasser. På brukernivå låsing, den "begå" kommandoen gjør endringer permanent og fjerner låsen. Den "rollback" -kommandoen reverserer endringene før du slipper låsen. Oracle poster låsing informasjon i et system tabell kalt "v $ lock" som kan spørres hjelp av Structured Query Language (SQL).

Bruksanvisning

1 Gjennomgå "v $ lock" Oracle tabellen for låsing informasjon. Bruk "velg" -kommandoen til å vise "sid", "type", "lmode" og "forespørsel". Sid står for session ID-nummer og identifiserer økten som eier låsen.

velge

sid,

type,

lmode,

be om

fra v $ lås;

2 Bli med Oracle "v $ session" bordet til "v $ lock" tabellen for å avgjøre hvem som er å låse databasen. Bli med sid (session ID) for å finne brukernavn.

velge

s.username,

s.sid,

l.type,

l.lmode,

l.request

fra v $ låsen l, v $ session s

hvor l.sid = s.sid;

3 Query "v $ locked_object" tabell for mer informasjon om hva som er låst. Bli med "dba_objects" tabell for navn og type. Objektet navnet indikerer hva som er låst og brukernavn kolonner identifisere hvem som har opprettet låsen.

velge

oracle_username

os_user_name,

locked_mode,

objekt,

objekt

fra

v $ locked_object lo, dba_objects gjøre

hvor

lo.object_id = do.object_id;

Hint

  • Før spørring for låser, be om tilgang fra databaseadministrator (DBA).
  • Hvis en lås ikke slipper i en akseptabel tid, kan DBA avbryte økten og slipp ressurs. Resirkulering av databasen er sjelden nødvendig å frigjøre en lås.
  • I "$ lock" tabellen, skriv verdiene inkluderer "TM" for bord låser, "TX" for transaksjons låser, "MR" for medie utvinning låser og "ST" for diskplass låser.
  • "Lmode" og "forespørsel" er meningsfulle når deres verdier sammenlignes sammen. Bare en kan være lik null eller én samtidig. Kolonnen som ikke er null eller én indikerer låsemodus. Gyldige låsemodi er én for null (eller ingen lås), to for rad aksje (SS), tre for rad eksklusivt (SX), fire for aksjen (S), fem for aksjen rad eksklusivt (SSX) og seks for eksklusiv (X ).
  • Avbryte en økt kan føre til alvorlige feil.