12 Aralık 2012 Çarşamba


                  Oracle Shared Server Configuration
 
Shared server modelinde her bir client için server process oluşturmak yerine istenilen sayıda server process oluşturup bu server process client isteklerini yerine getirmesi sağlanır.Gelen client istekleri yönetimi dispatcher lar ile saplanır.


İnitialization Parameters For Shared Server
shared_Servers: Bu parametre shared server enable edileceği zaman kullanılır ve kaç tane shared server kullanılacağını belirtir. Bu değer 0 ise shared server disable dır.Shared server enable edildiği zaman dispatcher konfigurasyonunu gerçekleştirmezsek database otomatik olarak oluşturulacaktır.

max_shared_servers: Shared_servers parametresi ile database instance start edildiğinde kaç tane shared server başlatılacağını belirtir.bu parametre ise aynı anda en fazla kaçtane shared server çalışacağını belirtir.
shared_server_sessions:Shared server aynı anda ne kadar user session tutacağını belirtir.Bu değer session initialization parameter dan küçük olmalıdır.
dispatcher:Shared server yapısı için kullanılacak dispatcher belirtir
max_dispatcher: Aynı anda en fazla kaçtane dispatcher process çalışacağını belirtirir
Enable Shared Server: Shared_servers parametresi 0 dan farlı bir değer olduğu zaman enable olur.Shared server çalışması için en az bir tane dispatcher ihtiyaç duyar.
SQL>alter system set shared_servers=5;

Determining Value for shared_servers: İnitialization parametre dosyasında shared server parameteresi belirtilir. Ancak database çalışırken shared server ların yoğunluğuna ve request queue uzunluğuna göre dinamik olarak değiştirilebilinir.Genel olarak sistemde her 10 connection için bir shared server create edilir.

Decrase Number Of Shared Server Process: Shared server dinamik olarak arttırabiliriz Ancak sistem kullanılmayan shared server gereksiz yere yavaşlamaya neden olduğunda inactive olarak belirtmeye başlar.Bu değere bakarak shared server parametresi ile shared server sayısını azaltabilriz.
SQL>alter system set shared_servers=4;
Limiting Number of Shared Server Process: Max_shared_servers parametresi aynı anda en fazla kaç tane shared server çalışacağını belirtir.Bunun için default bir değer yoktur. Herhangi bir değer belirtilmezse iş yüküne göre shared server çalıştırılır.Bu limit bu işlen için ayrılan resources dan kaynaklanır.

Limiting Number of Shared Server Sessions: Shared_server_session  shared server aynı anda  user session çalışacağını belirtir.Bu parametrenin default değeri yoktur. Bu parametre için bir değer belirtilecekse sessions initialization parametresinden küçük bir değer belirtilmelidir.


Disabling Shared Servers: Shared_servers parametresi 0 olarak set dildiği zaman shared server disable edilmiş olur.Artık client request  shared server modda yönetilmeyecektir.Shared server disable edildiği zaman connectionlar kapanan kadar bazı shared server database tarafından tutulur.Bütün shared server clients disconnect olduktan sonra dispatcher terminate edilir.
 SQL>alter system set dispatchers='';


Configure Dispatcher

     Dispatchers parametresi ile shared server yapısında kullanılacak dispatcher belirtiriz. Shared server yapısının çalışması için en az bir tane dispatcher gereklidir.Eğer shared server yapısını enable edip dispatcher konfigure etmezsek database otomatik olarak tcp protokolü için bir dispatcher oluşturulur.İnitialization  parameter file aşağıdaki satır eklenir.İstenildiği zaman dinamik olarak dispatcher eklenebilir.
SQL>alter system set dispatchers='(address=(protocol=tcp))(dispatchers=4)'; 

SQL>select * from v$dispatcher;
SQL>select * from v$dispatcher_config;


1)Determinig Number of Dispatcher: Shared server yapısında örneğin her bir server process 970 connection yönetebilsin.
    a)Eş zamanlı olarak tcp/ıp ile maksimum 4000 bağlantı gerçekleşsin. (dispatcher=4000/970=5 disp)
    b) Eş zamanlı olarak tcp/ıp ssl ile maksimum 2500 bağlantı gerçekleşsin.(dispatcher=2500/970=3 disp)
SQL>alter system set dispatchers='(prtocol=tcp)(dispatchers=5)' ,  '(protocol=tcps)(dispatchers=3)'-->tcp protokolü için 5 tcps protokolü için 3 dispatcher oluşturulur.Connection performansı dispatcher sayısına bağlıdır.

2)Altering Number of Dispatchers:İstenildiğinde dispatcher sayısı dinamik olarak değiştirilebilinir. Dispatcher sayısı shared server gibi ihtiyaç duyulduğunda otomatik olarak değişmez.İhtiyaç duyulduğunda manual olarak  işlem yapılmalıdır.
SQL>alter system set dispatchers='(protokol=tcp) (dispatchers=2)' ;-->
Daha önceden tcp/ıp için varolan 5 dispatcher 3 e düşürdük.
3)Shutting Down Specific Dispatcher Process:Dispatcher sayısını azaltacağımız zaman dispatcher shutdown ederiz.İstenilen bir dispatcher number vererek shutdown edebiliriz.v$dispatcher view sorgulayarak dispatcher numarasını öğrenebiliriz.
SQL>alter system shutdown immediate 'D0002';
NOT:
İmmediate parametresi ile dispatcher yeni connection kabul etmesi iptal edilir ve bu dispatcher yoluyla sağlanan connection terminate edilir ve ilgili session memory den temizlenir ve dispatcher shutdown edilir.İmmediate belirtilmezse dispatcher user ların disconnect olması beklenir ve connection terminate edilmesi beklenir.

Monitoring Shared Server and Dispatcher:
Dispatcher ve shared server hakkındaki bilgi edinmek için aşağıdaki views sorgulayabiliriz.
v$dispatcher

v$dispatcher_config
v$shared_server

v$shared_server_monitor

Hiç yorum yok: