SQL Server Failover Cluster, Database Mirroring, Always ON,Replication ve Log Shipping Farkları
Bu makaleyi SQL Server’ın HA(High Availability/Yüksek Erişilebilirlik) ve DR(Disaster Recovery/Felaket Kurtarma) için kullanılan teknolojiler arasında seçim yapmanızı kolaylaştırmak açısından yazmak istedim. Kısaca karşılaştırma yapacağımız teknolojileri aşağıda listeledim.
SQL Server Failover Cluster
Database Mirroring
Always ON
Replication
Log Shipping
SQL Server Failover Cluster:
HA için kullanılabilir.
Failover Cluster’a dahil olacak sunucuların aynı windows cluster’da olması gerekir.
Otomatik failover vardır. Sunucu üzerindeki SQL Servisi durursa failover işlemi otomatik olarak gerçekleşebilir.
Disk yedekliliği yoktur. Çünkü veritabanı dosyaları iki sunucunun da görebileceği bir shared disk kullanır.
Instance seviyesinde yapılabilir.(Bir veritabanını diğer sunucuya failover edemezsiniz. O instance’daki bütün veritabanları failover olacaktır. Bu yüzden bir DBA için çok pratik olduğu söylenemez)
Secondary sunucudan read ya da write yapılamaz.
Always ON,Replication ve Log Shipping ile birlikte çalışabilir.
Database Mirroring:
HA ya da DR çözümü olarak uygulayabilirsiniz. Senkron yaparsanız HA, asenkron yaparsanız DR çözümü olabilir.
Veritabanı bazında yapılır. Çok fazla veritabanınız varsa Instance üzerindeki tüm veritabanları üzerinde tek tek yapmanız gerekir. Ama veritabanı bazında failover yapıldığı için daha esnektir.
Disk yedekliliği vardır.
Witness Server koyarsanız ve senkron olarak set ederseniz otomatik failover gerçekleştirilebilir.
Secondary veritabanından read ya da write yapılamaz. Sadece secondary sunucunun snapshot’ını alarak okuma yapabilirsiniz.(“
Database Snapshot Nedir ve Nasıl Alınır?
” isimli makalemi okumak isteyebilirsiniz)
Microsoft’un sonraki sürümlerinde geçerli olmayacak bir teknolojidir. Bu teknolojinin yerine Always ON kullanılabilir.
Otomatik page repair var. DBA’lerin korkulu rüyası olan veritabanının suspect mode’a düşmesini engellemek için güzel bir özellik.
Always ON:
HA ya da DR çözümü olarak uygulayabilirsiniz. Senkron yaparsanız HA, asenkron yaparsanız DR çözümü olabilir.
Birden fazla veritabanını bir grup yaparak availability group oluşturabilirsiniz. Database Mirroring’e göre hem daha esnek hemde yönetmesi daha kolaydır. Örneğin bir uygulamanın 7 veritabanı var. Bu 7 veritabanını tek bir availability group’a alabilirsiniz. Kısaca istediğiniz gibi yönetebiliyorsunuz. Database Mirroring’in geliştirişmiş versiyonudur diyebiliriz.
Disk yedekliliği vardır.
Senkron olarak set ederseniz otomatik failover vardır. Witness server’a ihtiyaç duymaz.
Secondary sunucudan Read yapılabilir.
Otomatik page repair var. DBA’lerin korkulu rüyası olan veritabanının suspect mode’a düşmesini engellemek için güzel bir özellik.
Replication:
Replication’ın bir çok teknolojisi var ve herbiri değişik özellikler sunuyor. Bu yüzden Replication’da şu özellik var şu özellik yok demek doğru olmaz. Detaylar için makalenin sonunda vereceğim linklerdeki makaleleri okumanız gerekir. Genellikle HA için kullanılmaz. Ben şu ana kadar hep raporlama amaçlı kullandım.
Log Shipping:
DR çözümüdür.
Veritabanı bazında yapılabilir.
Secondary veritabanından Read yapılabilir.
Otomatik failover yoktur.
Benim favorim Always ON. Management’ı çok kolay. İstediğiniz kadar veritabanını bir Availability Group’a alabiliyorsunuz. Aynı sistemi hem HA hem DR için kullanabiliyorsunuz. Disk yedekliliği var. Secondary’den read yapılabiliyor. Microsoft’tan bir arkadaşımdan duyduğum kadarıyla hem read hem write yapabilmek için çalışmalar yapılıyormuş. Gün içinde bile kimse hissetmeden availability group’larınızı diğer sunucuya failover yapabiliyorsunuz.
Veritabanlarını gruplayabildiğiniz için bazı availability group’larınızı 1.sunucudan, bazılarını ise 2.sunucudan çalıştırarak 2 sunucununda kaynaklarından maksimum faydayı elde edebiliyorsunuz.
Bahsettiğim tüm bu teknolojilerin detaylarına aşağıdaki makalelerden erişebilirsiniz. Ayrıca aradığınız şeye ulaşmak için sitemizin arama kısmınıda kullanabilirsiniz.