Oracle Lock Modların Tipleri

  • 0 - NONE: lock requested but not yet obtained
  • 1 - NULL
  • 2 - ROWS_S (SS): Row Share Lock
  • 3 - ROW_X (SX): Row Exclusive Table Lock
  • 4 - SHARE (S): Share Table Lock
  • 5 - S/ROW-X (SSX): Share Row Exclusive Table Lock
  • 6 - Exclusive (X): Exclusive Table Lock
  • EXCLUSIVE MODE: Bu seçenek tüm tabloyu LOCK eder ve tablo üzerinde DML işlemlerine tek bir satır için bile izin vermez. Bu tablo üzerinde sadece SELECT sorgularına izin verilir. Tablo üzerinde işlem yapılabilmesi için LOCK kaldırılmalıdır
  • ROW SHARE MODE: Bu seçenek tablo üzerinde DML ve SELECT işlemlerine izin verir. Tablonun tamamını LOCK edilmesini izin vermez
  • ROW EXCLUSIVE MODE: Bu seçenek Oracle’ın varsayılan LOCK mekanizmasıdır. DML işlemlerindeki ROW LOCK bu metot ile yapılır
  • SHARE MODE: Bu seçenek tabloya SELECT sorgusu atılmasına izin verilir fakat DML işlemlerine izin vermez. INDEX oluşturulurken kullanılan yöntemdir
  • SHARE ROW EXCLUSIVE MODE: BU seçenek tabloya SELECT sorguları atılmasını engellemez fakat başka kullanıcılar tarafından tablonun LOCK edilmesini engeller ve DML işlemlerine izin vermez
  • NOWAIT: Yukarıdaki komutlarla beraber NOWAIT parametresi kullanılması durumunda, başka kullanıcılar bu tabloları LOCK etmek isterse eğer bu kullanıcıları bekletmek yerine onlara HATA MESAJI döner.

Oluşan Lockları görüntülemek için aşağıdaki sorguyu kullanabiliriz

SELECT session_id "sid",
       SERIAL# "Serial",
       SUBSTR (object_name, 1, 20) "Object",
       SUBSTR (os_user_name, 1, 10) "Terminal",
       SUBSTR (oracle_username, 1, 10) "Locker",
       NVL (lockwait, 'active') "Wait",
       DECODE (locked_mode,
               2, 'row share',
               3, 'row exclusive',
               4, 'share',
               5, 'share row exclusive',
               6, 'exclusive',
               'unknown')
          "Lockmode",
       OBJECT_TYPE "Type",
       action
  FROM GV$LOCKED_OBJECT A, DBA_OBJECTS B, GV$SESSION c
 WHERE A.OBJECT_ID = B.OBJECT_ID AND C.SID = A.SESSION_ID;



Yorumlar

Bu blogdaki popüler yayınlar

DBA SCHEDULER JOB

Drop Edilen Tabloyu Geri Getirme

ORA-20001