Hoþgeldiniz           
   
"SQL Server baþvuru kaynaðýnýz"
Skip Navigation Links
=========
Anasayfa
Makaleler
Hatalar \ Çözümler
Duyurular
Diðer
Ýpuçlarý
Yararlý Adresler
Mesaj TahtasýExpand Mesaj Tahtasý
HakkýmdaExpand Hakkýmda
Ýletiþim
Kullanýcý Adý:
Þifre:
 

Ne Mutlu Türküm Diyene!

SQL Server ile ilgili soru sormak için buraya týklayýn!


Yazýlarýmý nasýl buluyorunuz?






En Son SQL Server ile Ýlgili Okuduðum Kitaplar
- Inside Microsoft SQL Server 2005: Query Tuning and Optimization - MS Press (Ýngilizce)
- Accelerated SQL Server 2008 - Apress (Ýngilizce)
- Designing and Optimizing Data Access by Using SQL Server 2005 - MS Press (Ýngilizce)
- Microsoft SQL Server 2005 Database Solutions Design - Wiley Publishing (Ýngilizce)- Optimizing and Maintaining a Database Administration Solution by Using SQL Server 2005 - MS Press (Ýngilizce)- Designing a Database Server Infrastructure Using SQL Server 2005 - MS Press (Ýngilizce)- SQL Server 2005 Implementation and Maintenance - MS Press (Ýngilizce)
- SQL Server 2005 Administrators Companion - MS Press (Ýngilizce)


Database Mirroring

    
Merhaba,

     Bu makalemde, Database Mirroring çözümünün nerede, ne zaman ve nasýl kullanýlabileceðinden bahsedeceðim.

     Bundan önceki yazýmda SQL Server Failover Clustering konusundan bahsetmiþtim. Sürekli Kullanýlabilirlik seçenekleri olarak SQL Server Fileover Clustering ve SQL Server 2005 SP1 ile birlikte gelen Database Mirroring en çok kullanýlan seçeneklerdir. Aslýnda Database Mirroring, SQL Server 2005’ in RTM (Release to Manufacturer) versiyonunda da vardý. Fakat Microsoft tarafýndan sadece test amaçlý kullanýlmasý öneriliyordu. SQL Server 2005’ in birinci Servis Paketi ile herkes tarafýndan kullanýlabilir olduðu açýklandý ve kullanýlmasý teþvik edildi. Database Mirroring özelliði sadece SQL Server’ ýn Standard ve Enterprise Edition’ larýnda kullanýlabilir durumdadýr. SQL Server Express Edition ise, Þahit Rolü için kullanýlabilir.

     Database Mirroring’ in özelliklerinden bahsettikten sonra Database Mirroring’ in, SQL Server Failover Clustering’ e karþý eksileri ve artýlarý konusundan da bahsedeceðim. Meselâ Failover Clustering yerine, neden ve ne zaman Database Mirroring Kullanabiliriz? Database Mirroring’ in, Failover Clustering’ e karþý avantajlarý ve dezavantajlarý nelerdir?


Database Mirroring’ in Çalýþma Biçimleri:

     Database Mirroring’ in üç adet çalýþma biçimi bulunmaktadýr. Bunlar:
          - High Availibility Mode
          - High Performance Mode
          - High Protection Mode’ dur.

     Her çalýþma biçimi, deðiþik durumlara göre uygulanabilir. Bununla birlikte, High Protection Mode, Microsoft tarafýndan çok gerekmedikçe önerilmiyor. Nedenini konu baþlýklarýndan bahsederken anlatacaðým. Þimdi çalýþma biçimlerinden biraz daha ayrýntýlý bahsedelim.

     1- High Availibility Mode: Otomatik Geçiþ özelliði sadece bu çalýþma biçiminde bulunmaktadýr. Bu çalýþma biçiminin çalýþma mantýðýný aþaðýdaki Þekil 1’ de betimlemeye çalýþtým:

                                     
                                                                    
Þekil 1
 
     Þekil 1’ de de gösterdiðim gibi, High Availibility Mode’ da, tüm sunucular sürekli birbirleriyle haberleþiyorlar. Bu topolojide, etkin olarak kullanýlan veritabaný Birincil SQL Server’ dadýr. Fakat Birincil sunucudaki veritabanýnda bir deðiþiklik yapýlýrken, ayný deðiþikliðin Kopya SQL Server’ daki veritabanýnda da yapýldýðýndan emin olunur. Bu da senkron bir sistem demektir. Sistem, ayný iþlemin iki veritabanýnda da yapýlmasýndan emin olmak zorundadýr. Bu nedenle, Birincil veritabaný, ancak iþlemin Kopya veritabanýnda da gerçekleþtirildiðinden emin olduktan sonra diðer iþlemleri iþlemeye baþlayabilir.Bu senkronizasyon zorunluðu nedeniyle de bazý performans sorunlarý yaþanabilir. Bu, kesinlikle dikkate alýnmalýdýr.

     SQL Server Express Edition’ ýn, Þahit Rolü için kullanýlabileceðinden önceden bahsetmiþtim. Fakat Birincil ve Kopya sunucularda SQL Server’ ýn Standard veya Enterprise Edition’ larýnýn yüklü olmasý gerekmektedir.

     Þahit, sunucularýn çalýþtýðýndan emin olmak için kullanýlýr. Otomatik Geçiþ iþlemi, Þahit sayesinde gerçekleþtirilir. Þahit, Birincil ve Kopya rollerini üstlenen sunuculara belirli aralýklarla PING atar. Böylece çalýþýp çalýþmadýklarýný kontrol eder. Þayet Birincil sunucudan attýðý PING’ e cevap alamazsa, bu rolü otomatik olarak Kopya sunucuya devreder ve eskiden Kopya rolünü oynayan sunucu, artýk Birincil rolü alýr ve kullanýcýlar da bu veritabanýný kullanmaya baþlarlar. Peki kullanýcýlar, daha doðrusu, kullanýcýlarýn kullandýðý program bunu nereden bilecek? SQL Server Native Client ve ADO.Net 2.0 bunu hallediyor.

     Peki, eski Birincil sunucu tekrar ayaða kaldýrýldýðýnda ne mi oluyor? Þu oluyor, eski Birincil sunucu, artýk Kopya sunucu rolünü üstleniyor ve yeni Birincil sunucu ile eþleþiyorlar. Tabii ki illa da eski Birincil sunucuyu kullanacaðým derseniz, bu sunucuyu ayaða kaldýrdýktan sonra ve eþleþtirmeyi (senkronizasyon) de tamamladýktan sonra el ile Geçiþ yapabilirsiniz. Böylece eski Birincil sunucunuz yine Birincil sunucu olur.

     2- High Performance Mode: Bu çalýþma biçiminde Otomatik Geçiþ özelliði yoktur. Sadece elle geçiþ yapabilirsiniz. Ayrýca bu, asenkron bir moddur. Aþaðýda gene bir þekil yaptým, onun üzerinden anlatmaya çalýþayým.

                                     
                                                                    Þekil 2     

     Görüldüðü gibi, bu çalýþma biçiminde bir Þahit bulunmamaktadýr. Sadece iki rol söz konusudur. Ayrýca, High Availibility Mode’ dan farklý olarak, senkron deðil, asenkron bir iþlem süreci söz konusudur. Bunu bir örnekle açýklayayým: Meselâ kullanýcýlar Birincil sunucuda bir iþlem yaptýklarýnda, Birincil sunucu, bu iþlemi gerçekleþtirmek için Kopya sunucudan gelecek teyidi beklemez. Bu da herhangi bir performans sorununa neden olmayacak demektir. Fakat bununla birlikte, Kopya sunucunun, Birincil sunucu ile ne derecede eþleþmiþ olduðunu da takip edemeyeceksiniz. Yani Kopya sunucusunda veri kaybý söz konusu olabilir.

     Veri kaybýnýn söz konusu olmasý, ayrýca Otomatik Geçiþ niteliðinin de bulunmamasý nedeniyle, “üretim” ortamlarýnda bu çalýþma biçiminin kullanýlmasýný þahsen önermiyorum.

     3- High Protection Mode: Bu çalýþma biçimi bazý yönleriyle High Availibility Mode’ a benzer. Hatta tek farklýlýklarý, bu çalýþma biçiminin Otomatik Geçiþ özelliðinin olmamasý da diyebiliriz.

     Bu çalýþma biçiminde de Þahit bulunmamaktadýr. Gene Birincil ve Kopya rollerini üstlenen suncular birbirleriyle haberleþirker. Senkron bir çalýþma söz konusudur. Birincil’ e gelen iþlem, Kopya’ da da iþlenmeden Birincil’ deki diðer iþlemlere geçilmez.

     Bu açýdan, eðer bu çalýþma biçimini kullanacaksanýz hem performans yükünü hem de Otomatik Geçiþ özelliðinin olmamasýný kabul edeceksiniz demektir. Madem olasý performans yükü göze alýnýyor, o zaman High Availibility Mode’ u kullanmanýz çok daha iþe yarar olacaktýr.
Sonraki sayfa >





 
Bu sitenin tüm haklarý, Ekrem Önsoy' a aittir.