|
|
|
|
|
 |
SQL Habergrubu |
|
 |
|
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 >
|
|