3 Mayıs 2012 Perşembe

MS SQL 'de Mirroring (Aynalama)-Giriş

Merhaba arkadaşlar.
"Mirroring", Microsoft 'un felaket senaryolarına önlem olarak geliştirmiş olduğu veriye yüksek erişebilirlik çözümüdür. Önceleri "Log shipping", "Failover Cluster" gibi yapılar kullanıyordu.
Log shipping 'de, ana sunucu loglama yaparak, log dosyalarını yedek sunuculara gönderir.
Failover cluster, diğer bir sunucuya anlık yedekleme yapıyor. "Log Shipping" 'e göre daha kolay ayağa kaldırılabilir bir yapıdır. Paralı bir hizmettir. Sunucudaki tüm databaseler yedeklendiği için maliyetlidir.
SQL Mirroring, Sql Server 2005 SP 1 ile gelmiştir. Microsoft 'un geliştirdiği en son ve iyi önlemdir. Maliyeti sıfıra indirdi. Ağ üzerinden başka bir sunucuya bağlanarak, hangi veritabanının yedeğini almak isteniyorsa o veritabanının yedeği tutulur. Sunuculara roller verilir. Ana sunucuya "principle server", yedek sunucuya "mirror server" denir.

Ama hala çok küçük bir veri de olsa veri kaybı ihtimali var. Ana sunucuda sorun yaşanırsa "Commit" dönmesi için diğer sunucuya gider. Bu durumda roller değişecektir. Yedek sunucu yani "Mirror Server" değişince "Principle Server" olarak çalışacaktır. Rolleri değiştirme işlemini elle yaparsak (High Safety Withot Auto) zaman kaybı olacaktır. Bunun için "Vitness Server" (tanık sunucu) adında veri taşımayan, görevi sadece rolleri değiştirmek olan, üçüncü bir sunucu sisteme dahil olur (High Safety With Auto). Ama bu teknik bir felaket senaryosu için tasarlanmışsa: tabi bu sunucuların aynı ortamda olmaması istenir. "Vitness Server" varsa fakat "failover" tipi olarak "manual" ayarlandıysa yine rolleri değiştirme işlemini elle yapmak durumundayız. Değiştirmezsek ana sunucuda sorun yaşanması durumunda, yansı sunucudaki veritabanına bağlanmaya çalıştığımızda burada veritabanı olmadığıyla ilgili bir hata almak durumundayız.
ALTER DATABASE <Database_Adı> SET PARTNER OFF
Komutuyla "mirroring" işlemi durur ve yedek sunucum, ana sunucu görevini üstlenir.


"Mirroring" işleminde farklı modlar(High Availability, High Protection) var. Bu modlar yüksek hız ve yüksek güvenlik için kullanılır. "Mirroring" modu "High Availability" yani yüksek erişebilirlik modu ve "failover" tipi de "Automatic" olarak ayarlandıysa zaten tanık sunucu (Witness Server) bu işlemi otomatik olarak yapmaktadır ve kullanıcılara kesintiyi hissettirmez. Ancak "failover" tipi "manual" yani elle ayarlı ise ya da "mirroring" modu "High Protection" yani yüksek koruma ise bu komutu kullanmak zorundayız.

Ana sunucudaki sorun giderildikten sonra elle rolleri değiştirmek gerekir. Rolleri değiştirince ana sunucnun yapacağı ilk iş, yedek sunucuyla verileri eşitleme işlemi olacaktır. Microsoft bu hizmeti normalde ücretsizdir. Fakat ana sunucuda sorun yaşandıktan sonra, yedek sunucuyu kullanım süresi 60 günü aşarsa "mirroring lisans" ücreti ödenmesi gerekiyor.

Daha sonraki yazılarımda "Mirroring Configuration" nasıl yapıldığını anlatmayı düşünüyorum. Umarım yardımcı olabilmişimdir. Bir başka yazıda görüşmek dileğiyle, hoşçakalın... 

Hiç yorum yok:

Yorum Gönder