4 Mart 2012 Pazar

Oracle Server' a Erişim Yöntemleri

Oracle database Instance ulaşmak için iki yöntem tercih edilir. Dedicated Server konfigrasyonu ve shared server konfigrasyonu kullanılarak erişim sağlanılır. Tercih edilmeler kullanım amacaına göre değişir.
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