Kategoriler
ORACLE

Oracle 11g: DBA-1||Managing Data Concurrency

9.Managing Data Concurrency ( Aynı anda kullanılan Verilerin Yönetimi)

Yetkilerle alakalı olacak şekilde resource manager tarafında oluşturulan farklı gruplar arasında istenilen gruba öncelik tanınabilir. Rol olarak öncelik kavramı diye bir şey yoktur.

Locks

Aynı dataların farklı kullanıcılar tarafından aynı anda değiştirilme durumuyla ortaya çıkan bir kavramdır. Bu kavram veritabanında müdahale edilmediği sürece çözüme kavuşturulamayan bir kavramdır.

locks

Transcation 1 ve transcation 2 isimli 2 sorgu yapıldığını düşünelim. 1.sorguda commit yaparsak, rollback yaparsak, DDL gibi seçeneklerden birini yapınca sonlanır. Ancak bunları yapmadan 2.sorgu da yapılırsa;  aynı satıra müdahale ettiğinden ( veritabanında çalışma mantığı her zaman şudur: sütun ve satırlardan oluşan bir tablo vardır, maaş hücresine işlem yapacağımız zaman komple o satırı kapatır(locklar) ve müdahale edilemez) bekleme oluşur.  Bu bekleme dba müdahale etmediği, transcation’lardan herhangi birinin işlemden vazgeçmediği bir senaryoda hiç bitmez.

Tabloya yönelik bir aksiyon gerçekleştirilen bir sorgulama yapılırken başka bir sorguda da tablonun yapısına yönelik ( kolon ekle, var olan kolonu sil) işlem olursa yine lock işlemi olur. Tablonun yapısı ile ilgili kimsenin aksiyon olmasına izin vermez. Yapıyla alakalı olacak şekilde kimse hareket edemez.

Enqueue Mechanism ( Kuruğa Alma Mekanizması)

Çözüm süreci ise; arka arkaya dizilen bir lock mekanizması düşünelim bunu en önceki çözecektir. En öndeki transcation’u sonlandırsa arkaya doğru akar işlemler. Ya da DBA müdahalesi ile çözüme kavuşur.

Enqueue Mechanism

Bekleme işlemi Enterprise Edition tarafında aşağıdaki gibi görüntülenir.

wait

Uygulama tarafından gelen bir iş var ve bu işte bir sıkıntı olduğunu aşağıdaki performans ekranından görebiliriz:

performance

Performans ekranından Blocking Sessions’a ulaşıp işlemlere müdahale edebiliriz.

blocking sessions

kill session

 

Kill Session ile de beklemeye neden olan ve daha basit bir işlem yapan session öldürülür.

Resolving Lock Conflicts with SQL

Blocking Session’a neden olanların SID, SERIAL VE USERNAME bilgilerini getirdik ve 2. sorgu ile de öldürdük.

Deadlock

Saat 9:00’da gerçekleştirilen işlemlerde sorun olmaz. 1 row updated alırız.  Ancak 9:15’de Transcation 1 işlemi yaparsa lock’a düşer.  Transcation 2 ‘de işlemi yaparsa lock’a düşer.İki tarafta lock’a düşer.(Deadlock olur) Bu durumda kullanıcının çözme şansı yoktur. 3 sn. bu operasyon çözülmezse Oracle Server devreye girer ve ilk lock’a düşen session’ın yaptığı işlemleri iptal eder ve bu operasyonun çözülmesi adına Transcation 1 ya da DBA aksiyon almaya başlar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir