Veritabanı İnstance’ a bağlı olan user procesleri
taleplerini işlemek için server
tarafında server process oluşturulur. Ve
User işlerini bu server prosesler yapar. Server process’ ler bir veritabanında dedicated server ve shared server olarak iki şekilde oluşturulur.
Dedicated Server Konfigrasyonu:
Dedicated server’ da, talep eden user processlerden gelen her bir session için ayrı ayrı oluşturulan server processleridir. Session işi bittikten sonra bu dedicated server process sonlandırılır. Her bir session için oluşturulduğu için sistem kaynaklarını çok kullanmaktadır. Dolayısı ile database bağlanan user sayısı da arttıkça kullanacağı memory miktarı da artacağından sistem kaynakları olumsuz etkilenir. Oracle database Instance kurulumu yapılırken bağlantı yöntemini belirliyoruz. Burada dedicated konfigrasyonunda default process sayısı 150 ‘dir. Bu uygun bir sayıdır.
Bu yapıda Client/server ilişkisi içerisinde client’den gelen
istekler server tarafında listener’ a gelir. Dedicated server işleme tipi listenerden
aldığı bilgiye göre session için bir server process’i oluşturur.
Dedicated server ‘ larda
User Global Area PGA
içerisindedir. UGA içinde Session bilgisi,PLSQL değişkenleri , bind değişkenleri
vardır. Ve Her session için bir PGA oluşturulur.
Not: Batch
işlemleri ve RMAN işlemleri(özellikle Backup – restore – recovery ) dedicated
server modunda yapılması gerekir.
Shared Server Konfügrasyonu:
Her bir shared server prosesi(Snnn) bir çok kullanıcı
taleplerine hizmet eder. Shares server mimarisi sistem kaynaklarını verimli
kullanmanın bir yoludur.
Shared server konfügrasyonu , Listener prosesi ,request queue, response
queue ,shared server prosesi ve dispatcher prosesinden oluşur.
Shared server konfigrasyonunda Listener prosesi gelen talep doğrultusunda user prosesi dinler.
Gelen talep dedicated istenmişse bu listener prosesi bir
dedicated process başlatır. Bu konfigrasyonda örneğin veritabanı yöneticisi dedicated
da bağlanabilir. Taki önemli sistem kaynaklarını etkili bir şekilde kullanacağı
yığın işleri yada backup- restore-recover işlemi yapması gerekebilir.
Gelen talep shared
server istenmişse bu talep dispatcher prosesine iletilir. Shared server
mimarisinde en az bir tane dispatcher prosesinin konfigrasyonu şarttır.
Dispatcher prosesi(Dnnn)
talep kuyruğu(request queue) ‘ndaki talepleri yerleştirir. Talep listesi SGA
içerisinde oluşturulur ve tüm dispatcher prosesleri tarafından paylaştırılır.
Çalışma anında o an boş olan shared server prosess talep listesindeki sırası gelen işlemi alır
ve onu işletir. İşlem bittikten sonra sonuç listesini (Response Queue) günceller.
Dispacther prosesi(Dnnn) user prosese yanıt listesine göre yanıtları ilgili
user prosese dönüt olarak verir.
Shared server proses yapısına sahip sistemlerde PGA’ deki UGA(user
global Area) SGA içinde yer alır. Eğer large pool configure edilmişse UGA
burada, edilmemişse Shared pool içerisinde yer alır. Ve paylaşımlı yapıya
sahiptir. Bu yapıdaki sessionlar için PGA sadece stack space ve proses değişkenlerinden oluşur.
Shared Server mimarisi RMAN’ ı desteklemez. Yani RMAN
kullanmak istiyorsanız Dedicated bağlanmanız gerekiyor.
Oracle server, request queue(yapılacaklar listesi) uzunluğuna bakarak shared server proses
sayısını dinamik olarak ayarlar. Shared server proses sayısı SHARED_SERVER ve
MAX_SHARED_SERVER başlangıç parametresi değerleri arasında belirlenir.
SHARED_SERVERS parametresi ile kaç tane shared server
parametresi başlayacağını belirliyoruz. Bununla birlikte ayrı dispacther
prosesler de kendiliğinde başlayacaktır. Bunun için ayrı bir Dispatcher başlatmaya
gerek yok.
V$SHARED_SERVER dinamik performans view lerini de
sorgulayarak bilgi alabiliriz.
V$DISPATCHER view’ lrin sorgulayarak çalışsan Dispatcher ile
ilgili detaylı bilgileri öğrenebiliriz.
ALTER SYSTEM SET SHARED_SERVERS=3;
MAX_SHARED_SERVER parametresi ile shared server proses sayısının üst
limitini belirlemek için kullanılır.
Bir instance’ da dedicated ve shared server konfigrasyonu eş
zamanlı olarak çalışabilir. Default olarak listener prosesi shared server
konfügrasyonu kullanır. Dedicated bağlanmak istiyorsak sqlnet.ora dosyasına USE_DEDICATED_SERVER=ON
yada local naming metodu tercih
ediyorsak connect data içindeki SERVER
parametresine “dedicated” set etmemiz gerekiyor. Connect data içindeki SERVER
parametresine “shared” girersek shared yapıda bağlanılacaktır.
örnek bir tnsname.ora dosyası
XDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
mhm.oracle.com)(PORT = 2241))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XDB.oracle.com)
)
)
Başka bir makale ile görüşmek üzere...
0 yorum:
Yorum Gönder