26 Ekim 2010 Salı

ORACLE-Shared server opsiyonu

Oracle database , kendisine gelen request(istek) leri cevaplamak için
server tarafında server process ler oluşturur. Bu oluşturulan process ler
bizim query(insert,update ..) lerimizi gerçekleştirirler.

Kullanıcı isteklerini karşılamak için Oracle ın kullandığı
server process lerinin iki türü vardır. Dedicated ve shared.

Kısaca; dedicated server process leri yalnız bir session a hizmet eder.
Yani her farklı session için ayrı bir dedicated server process i tahsis edilir.
Shared server process leri birden çok session a hizmet eder.
Yani her farklı session için ayrı bir shared server process i tahsis edilmez.
Başlangıçtaki shared server sayısı ve max shared server sayısı
tanımlanabilir.

Pek çok kaynakta dedicated ve shared server process leri arası farkı
açıklamak için lokanta-garson ilişkisi kullanılıyor.
Ben de burada aynı örneği vereceğim.

Diyelim ki bir lokantaya gittiniz. Bu lokantada, bir garson size tahsis edilmiş durumda ve bu garson başka hiçbir işle uğraşmadan sizin ihtiyaçlarınızla ilgileniyor.
İşte dedicated server bağlantısıda aynen bu şekilde çalışıyor.

Bu lokantadaki 3 garson sizin ve diğer müşterilerin ihtiyaçları ile
ilgileniyor olursa, bu durumda shared server connection larının çalışma
şeklini örneklemekte.

Anlattıklarımızı gerçek dünyaya ölçeklendirelim.
Diyelimki database imize bağlanan ortalama 200 user session ı oluyor.
Bu durumda shared server mimarisini kullanarak, bu 200 user session ı
10 ile 30 arası shared server process i kullansın diyebiliriz.

Ne zaman tercih edilmeli ?
----------------------------

* Eğer connection sayınız 100 üzeri ise,
* 32 bit server kullanıyorsanız,
* Uygulama web uygulaması ise,
* Oracle, yeterince güçlü bir donanım üzerinde çalıştırılmıyorsa,
bu opsiyon değerlendirilebilir diye düşünüyorum.

Eğer zaman zaman veya devamlı olarak, yeni connection açarken
oracle hatası alıyor ve connection açamıyorsanız sorun
yeni dedicated process oluşturmak için yeterli boş bellek bulunmaması olabilir.
Bu durumdaysanız, ya acilen server
belleğini arttırmalı(64 bit işletim sistemi kullanmıyorsanız işe yaramayabilir)
yada shared server konfigurasyonu yapmalısınız.

Acılan her dedicated server process i için memory ve
kaynak tahsis edilir. Shared server bağlantıarı kullanılan durumda
gerekli kaynak ihtiyacı da düşmektedir.

Shared database connection larının en iyi kullanım şekli,
database e bağlı kalan fakat çoğu zaman aktif olarak iş yapmayan kullanıcılar
için kullanılmalarıdır.


Dedicated ve shared server bağlantıları bir arada kullanılabilir.
Yani mesela, database e giriş yapan bir kullanıcı grubu
shared connection kullanırken, raporlama yapan bir başka kullanıcı grubu
dedicated connection kullanabilir.

Daha fazla bilgi için aşağıdaki bağlantılara gözatabilirsiniz.

http://www.dba-oracle.com/t_mts_multithreaded_servers_shared.htm
http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/manproc001.htm

Hiç yorum yok:

Yorum Gönder