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.
“Database Mirroring Nedir ve Nasıl Yapılır? Mirroring Hataları ve Çözümleri..“,
“SQL Server Always ON AG(Availability Group) Oluşturmak“,
“SQL Server Failover Cluster Kurulumu“,
“SQL Server Replication Nedir?“,
“Transactional Replication Kurulumu“,
“Peer to Peer Transactional Replication Kurulumu“,
“Snapshot Replication Kurulumu“,
“SQL Server Log Shipping Kurulumu“
Merhaba,
SQL Server Failover Cluster Always ON,Replication ve Log Shipping ile birlikte çalışabilir demişsiniz.
SQL Server 2016 Standard Failover Cluster kurulu bir yapımız var. (HA olarak kullanılıyor)
Sql server Standard versiyon olduğu için 3 node’a da Always-On kurulamadığından Uzaktaki 2. bir lokasyona log shipping yapılıyor ama performans sorunları çıkıyor. (Burası da DR olarak kullanılıyor)
Log shipping yerine Always on kurabilir miyiz? 2. Lokasyonda kurulu olan DR Sql Server’i clustera nasıl dahil edebiliriz?
Teşekkürler
3 node’lu bir Always On kurarak çözüme ulaşabilirsiniz. 1. ve 2. sunucular HA için 3. Sunucu’da DR için kullanılabilir. Bu yapıyı sağlamak için Multi Subnet Cluster ya da Distributed AG kullanabilirsiniz. 3.Sunucusu ASENKRON şekilde yapmazsanız performans sorunlarınız olacaktır.