DATABASE KİLİT MEKANİZMASI


Database kilit işlemleri çeşitli aşamalrda olabilir.Örneğin statemnt bazında oluşan hata aşağıdaki gibi olabilir.
Örneğin aynı anda iki kullanıcı tablo üzerinde statemnt çalıştırıp kilide yol açabilirler.
1
Bu şu an bir probleme yol açmaz ama aşağıdaki gib bir durum olursa,
1
Bu kaosu önlemenin yolu 1.transactionun commit edilmesidir.
1
İki tip lock tipi vardır.DML işlemleri için ve DDL işlemleri için.
DML işlemleri için bir örnek daha verirsek.
1
Transcation 1 henüz commit edilmediğinden Transcation 2 işlemi yürütülemez.
Eğer tablo istenirse manuel olarakta kitlenebilir.
SQL> LOCK TABLE table_name IN mode_name MODE;
SQL> LOCK TABLE employee IN exclusive MODE;
Table(s) Locked.
1
DDL Kilit mekanizması ise şu şekilde olmaktadır.
1
Bu Exclusive DDL kilitlerine örnektir.
Kilit Durumlarını izlemek içinde viewlardan ayarlanarak çeşitli sorgular yazabiliriz.
1
SQL> SELECT xidusn, object_id, session_id, locked_mode
FROM v$locked_object;
XIDUSN OBJECT_ID SESSION_ID LOCKED_MODE
--------- --------- ---------- -----------
3 2711 9 3
0 2711 7 3
SQL> SELECT object_name FROM dba_objects
WHERE object_id = 2711;
OBJECT_NAME
-------------
EMPLOYEE
Yukarıdaki sorgudan da anlaşılabileceği gibi hangi tablo üzerinde lock var görebilmekteyiz.
Kilitler şu şekildede bertaraf edilebilir
1
SQL> SELECT sid,serial#,username
FROM v$session
WHERE type=’USER’;
SID SERIAL# USERNAME
--------- --------- ------------------------------
8 122 SYSTEM
10 23 SCOTT
SQL> ALTER SYSTEM KILL SESSION '10,23';
System altered.
Bazen kilit işlemleri karşılıklıda olabilmektedir.Bunada deadlock denilmektedir.Şu şekilde olmaktadır.
1
1
Deadlockları izlemek daha kolaydır.Bu yapılan hatanın sonuçları trace fillera yazılır.
1
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: