Hoşgeldiniz           
   
"SQL Server başvuru kaynağınız"
Skip Navigation Links
=========
Anasayfa
Danışmanlık
Makaleler
Hatalar \ Çözümler
Duyurular
Diğer
T-SQL Öğreniyorum
İ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 Habergrubu

Yazılarımı nasıl buluyorunuz?






Uyumluluk

En Son SQL Server ile İlgili Okuduğum Kitaplar
- 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.