Primary server replicating to two secondary servers with a shield, representing SQL Server Always On availability groups

SQL Server Always On Nedir? Availability Group ve Failover Cluster Instance Rehberi

SQL Server Always On nasıl çalışır: availability group veri akışı, commit modları ve failover türleri, listener ve read-only routing, secondary’de yedek, FCI, quorum, 2025 sürüm sınırları ve hazırlık kontrolleri.

Eylül 17, 2026

“Always On” tek bir özellik değil. Microsoft bu adı iki farklı teknolojinin ortak çatısı olarak kullanıyor: veritabanlarının kopyasını başka sunucularda tutarak koruyan Always On availability groups (AG) ve SQL Server instance’ını bütünüyle cluster node’ları arasında taşıyan Always On failover cluster instance (FCI). İkisi de bir sunucu çöktüğünde uygulamanın çalışmaya devam etmesini sağlar; ancak failover’ı farklı yapar, farklı şeyleri korur ve farklı şekillerde sorun çıkarırlar.

Bu rehberde bir availability group’un veriyi nasıl taşıdığını, commit modlarını ve failover türlerini, listener ile read-only routing’i, secondary replica üzerinde yedeklemeyi, AG’nin sizin yerinize kopyalamadığı nesneleri, FCI’nin çalışma mantığını, SQL Server 2025’te sürüm ve lisans sınırlarını ve bir replica’nın failover’a gerçekten hazır olup olmadığını gösteren sorguları ele alıyoruz. Yüksek erişilebilirlik seçenekleri arasında henüz karar vermediyseniz önce SQL Server high availability rehberimize bakmanızı öneririz. Bu yazı doğrudan Always On’un içine giriyor.

Kısa cevap

SQL Server Always On, Microsoft’un iki teknoloji için kullandığı şemsiye addır. Availability group’lar bir grup veritabanının kopyalarını kendi depolamasına sahip başka instance’larda tutar ve grup bazında failover yapar. Failover cluster instance’lar ise paylaşımlı depolamadaki tek bir instance’ı cluster node’ları arasında taşır. Veritabanı seviyesinde HA ve DR için AG, instance seviyesinde koruma için FCI seçin. İkisi de backup’ın yerini tutmaz.

SQL Server HA/DR Değerlendirmesi

Always On mimarinizin gerçekten hazır olup olmadığını görün

Aryasoft availability group ve FCI yapınızı, quorum tasarımınızı, yedekleme düzeninizi ve failover hazırlığınızı RPO ve RTO hedeflerinizle karşılaştırır; riskleri bir kesinti yaşanmadan ortaya çıkarır.

HA/DR Değerlendirmesi Talep Edin

Son doğrulama: 19 Ekim 2026. Microsoft Learn’deki availability group genel bakışı, availability mode’ları, failover ve failover mode’ları, flexible failover policy, veritabanı seviyesinde sağlık algılama, okunabilir secondary’ler, secondary’de backup, basic/contained/distributed availability group’lar, failover cluster instance’lar ve SQL Server 2025 sürümleri sayfalarına karşı kontrol edildi.

Hangisine İhtiyacınız Var? Hızlı Karar Tablosu

İhtiyacınız Seçim Dikkat edin
Ayrı depolamada ayrı kopyası olan, DR sitesini de kapsayan bir grup veritabanı Availability group (AG) Login, Agent job ve linked server’lar kopyalanmaz; senkron tutmak sizin işiniz.
Login, job ve linked server’ların otomatik taşındığı, instance’ın tamamını koruyan çözüm Failover cluster instance (FCI) Paylaşımlı depolamada tek veri kopyası vardır; depolama tek hata noktasıdır.
Standard sürüm Basic AG (iki replica, grup başına bir veritabanı, okunabilir secondary yok, secondary’de backup yok) ya da iki node’lu FCI Basic AG’ler birbirinden bağımsız failover yapar; ilişkili veritabanlarının birlikte taşınması garanti edilemez.
Birlikte failover yapması gereken birkaç veritabanı Enterprise sürümde AG ya da FCI Express ne AG ne de FCI destekler.
Bir kopya üzerinde okuma ölçekleme ya da raporlama Okunabilir secondary’li AG (Enterprise) Secondary artık pasif değildir ve tam lisanslanmalıdır. Sorgular snapshot isolation altında çalışır.
Failover’da veri kaybı olmaması SYNCHRONIZED durumdaki senkron-commit secondary Her commit bir ağ gidiş-dönüşü öder. Asenkron replica’lar send queue’daki veriyi kaybedebilir.
Tek bir cluster’ı uzatmadan başka bölgede DR Asenkron replica ya da distributed AG (Enterprise) Bir WAN sorununun birincil siteyi düşürmemesi için quorum ve witness yerleşimini kontrol edin.
Hatalı UPDATE, silinen tablo ya da fidye yazılımına karşı koruma İkisi de değil. Restore edilebilir backup kullanın. Değişiklik birkaç an içinde tüm secondary’lere kopyalanır.

Bir Bakışta Availability Group ve FCI

Availability group veritabanı seviyesinde çalışır. Bir grup kullanıcı veritabanı, primary replica’dan secondary replica’ya birlikte geçer. Her replica kendi depolamasına ve verinin kendi kopyasına sahip ayrı bir SQL Server instance’ıdır; primary, transaction log kayıtlarını secondary’lere gönderir.

Failover cluster instance ise instance seviyesinde çalışır. Paylaşımlı depolamada verinin tek bir kopyası ve aynı anda yalnızca bir cluster node’unda çalışan tek bir SQL Server instance’ı vardır. O node çöktüğünde Windows Server Failover Clustering (WSFC) instance’ı başka bir node’da başlatır ve instance kendisine ait her şeyle birlikte geri gelir: sistem veritabanları, login’ler, Agent job’ları, linked server’lar ve sertifikalar.

Kriter Availability group Failover cluster instance
Koruma birimi Bir grup kullanıcı veritabanı SQL Server instance’ının tamamı
Verinin kopyası Her replica’da bir kopya, ayrı depolamada Tek kopya, paylaşımlı depolamada
Depolama arızası Atlatılır, diğer replica’ların kendi kopyası vardır Tek hata noktasıdır
Instance seviyesi nesneler (login, job) Kopyalanmaz, senkron tutmak size kalır (contained AG hariç) Instance ile birlikte taşınır
Okunabilir kopya Var, Enterprise’da readable secondary Yok, pasif node’larda SQL Server çalışmaz
Failover Rol değişimi; veritabanları secondary’de zaten açıktır Servis diğer node’da yeniden başlar, ardından crash recovery
Mesafe Veri merkezleri veya bölgeler arası async replica Genellikle tek lokasyon; multi-subnet cluster mümkün

İkisi birlikte de kullanılabilir: bir FCI, availability group’ta replica olabilir. Sık görülen bir tasarım, lokal yüksek erişilebilirlik için FCI’yi, felaket kurtarma için ise başka bir veri merkezindeki asenkron AG replica’sını kullanır.

Availability Group Veriyi Nasıl Taşır?

Veri akışını anlamak, canlı ortamda karşılaşacağınız AG belirtilerinin neredeyse tamamını açıklar.

  1. Primary’deki bir transaction log kaydı üretir. Commit edildiğinde log bloğu primary’nin transaction log dosyasına yazılır.
  2. Aynı log bloğu database mirroring endpoint’i (varsayılan TCP 5022) üzerinden her secondary replica’ya gönderilir.
  3. Her secondary bloğu kendi log dosyasına yazar (“harden” eder) ve primary’ye onay döner.
  4. Secondary’deki redo thread’i log kayıtlarını veri dosyalarına uygular ve secondary’deki kopya güncellenir.

Bu akıştan iki kuyruk çıkar ve bunlar herhangi bir AG’deki en önemli iki sayıdır:

  • Log send queue: primary’de olup henüz secondary’ye ulaşmamış log. Primary şu an kaybolursa kaybedeceğiniz veri budur; gerçek RPO‘nuzu ölçer.
  • Redo queue: secondary’nin yazdığı ama henüz uygulamadığı log. Failover’da veritabanlarının açılabilmesi için secondary’nin önce redo’yu bitirmesi gerekir; gerçek RTO‘nuzu belirler.

Send queue’su sıfıra yakın ama redo queue’su birkaç gigabayt olan bir secondary veri kaybettirmez; ancak ona failover etmek saniyeler yerine dakikalar sürebilir.

Senkron ve Asenkron Commit

Her replica’nın bir availability mode’u vardır.

Senkron commit‘te primary, uygulamaya commit onayını vermeden önce secondary’nin log bloğunu diske yazmasını bekler. Commit edilen transaction’lar iki replica’da da bulunur; bu yüzden SYNCHRONIZED durumdaki bir secondary’ye failover hiçbir şey kaybettirmez. Bedeli gecikmedir: her commit bir ağ gidiş-dönüşü ve secondary’de bir log yazması kadar uzar. Bunu primary’de HADR_SYNC_COMMIT bekleme türü olarak görürsünüz.

Asenkron commit‘te primary kendi log yazması biter bitmez commit eder ve log’u secondary’ye arka planda gönderir. Commit’ler mesafeden bağımsız olarak hızlıdır; ama primary kaybolduğunda send queue’da kalan her şey kaybolur.

Senkron commit Asenkron commit
Commit secondary’yi bekler mi? Evet Hayır
Failover’da veri kaybı Secondary SYNCHRONIZED ise yok Log send queue’da ne varsa
Commit gecikmesine etkisi Ağ gidiş-dönüşü + secondary log yazması Yok
Otomatik failover Mümkün Mümkün değil
Tipik konum Aynı veri merkezi veya düşük gecikmeli bağlantı Uzak DR lokasyonu

İpucu

Asenkron bir replica’ya da veri kaybı olmadan planlı failover yapılabilir. Önce o replica’yı senkron commit’e alın, veritabanlarının SYNCHRONIZED olmasını bekleyin, ardından failover edin ve gerekiyorsa tekrar asenkrona döndürün.

SQL Server 2017 ile gelen REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT ayarı, primary’yi her commit’te belirtilen sayıda senkron secondary’nin log’u yazmasını beklemeye zorlar. Secondary’ler düştükten sonra primary’nin tek başına commit etmeye devam etmesi açığını kapatır.

Uyarı

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT 1 veya daha yüksek bir değere ayarlıysa, yeterli sayıda senkron secondary bağlı ve senkronize değilken primary yazma kabul etmez. Bu veriyi korur; ama bir secondary kesintisinin uygulama kesintisine dönüşmesi anlamına da gelir. Bu ayarı varsayılan diye değil, bilinçli olarak açın.

Failover Türleri

Bir AG’de roller üç şekilde değişebilir ve sonuçları birbirinden çok farklıdır.

Tür Ne zaman kullanılır Koşullar Veri kaybı
Otomatik Primary veya sağlık kontrolü başarısız olduğunda Her iki replica’da senkron commit ve otomatik failover modu, hedef SYNCHRONIZED, cluster’da quorum var Yok
Planlı manuel Yama, bakım, kontrollü geçiş Hedef senkron ve SYNCHRONIZED Yok
Zorunlu (forced) Felaket; senkronize secondary yok Hedefte FORCE_FAILOVER_ALLOW_DATA_LOSS ile çalıştırılır Olabilir

Planlı manuel failover her zaman yeni primary olacak secondary üzerinde çalıştırılır:

-- Hedef secondary üzerinde çalıştırın
ALTER AVAILABILITY GROUP [AG_Sales] FAILOVER;

-- Yalnızca felakette: hedefin almadığı her şeyin kaybını kabul eder
ALTER AVAILABILITY GROUP [AG_Sales] FORCE_FAILOVER_ALLOW_DATA_LOSS;

Kritik

Zorunlu failover’dan sonra diğer secondary’lere veri akışı askıya alınır; eski primary geri geldiğinde veritabanları suspended durumda bir secondary olarak açılır. Onu resume etmek, yeni primary’ye hiç ulaşmamış transaction’ları siler. Eski primary üzerinde ALTER DATABASE … SET HADR RESUME çalıştırmadan önce bu transaction’ların oradan kurtarılması gerekip gerekmediğine karar verin.

Bir AG’yi asla Failover Cluster Manager’da cluster rolünü taşıyarak failover etmeyin. T-SQL, SSMS ya da PowerShell kullanın; böylece SQL Server geçişten önce senkronizasyon durumunu kontrol eder. Aynı kural yama sırasında da geçerlidir; bunu Always On ortamlarında rolling update rehberimizde anlatıyoruz.

Otomatik failover’ı ne tetikler?

Otomatik failover her hatada tetiklenmez. Kararı üç ayar verir:

  • Lease timeout (varsayılan 20 saniye): SQL Server ile cluster resource DLL’i lease’i yenileyemezse replica sağlıksız kabul edilir.
  • HEALTH_CHECK_TIMEOUT (varsayılan 30.000 ms): cluster’ın sp_server_diagnostics yanıtını ne kadar bekleyeceği.
  • FAILURE_CONDITION_LEVEL (varsayılan 3): hangi durumların arıza sayılacağı; “servis kapalı” (1) seviyesinden “orta düzey sunucu hataları” (5) seviyesine kadar. Seviye 3, orphaned spinlock ve write access violation gibi kritik sunucu hatalarını kapsar.

Veritabanı seviyesinde sağlık algılama (DB_FAILOVER = ON, SQL Server 2016’dan itibaren) bir tetikleyici daha ekler: gruptaki bir veritabanı, örneğin bir veri dosyasının kaybı nedeniyle online olmaktan çıkarsa failover başlar. Varsayılan olarak kapalıdır ve yeni AG’lerin çoğunda açmaya değer. SQL Server 2025’te ayrıca AG kaynağının RestartThreshold değerini 0 yapabilirsiniz; böylece cluster kalıcı bir sağlık sorununda kaynağı önce aynı node’da yeniden başlatmayı denemeden hemen failover eder.

Listener ve Read-Only Routing

Uygulamalar hiçbir zaman bir replica’nın instance adına bağlanmamalı. Availability group listener, her subnet için kendi IP adresi olan ve her zaman mevcut primary’yi gösteren sanal bir ağ adıdır.

Uygulamaların bir failover’ı ne kadar iyi atlatacağını connection string’deki üç ayar belirler:

  • MultiSubnetFailover=True: istemci listener IP’lerini sırayla değil, paralel dener. Tek subnet’te bile tüm modern sürücülerde kullanın; yeniden bağlanma süresini kısaltır.
  • ApplicationIntent=ReadOnly: listener’a bu oturumun yalnızca okuma yapacağını bildirir; böylece oturum okunabilir bir secondary’ye yönlendirilebilir.
  • Yeniden deneme (retry) mantığı: her failover’da o an açık olan transaction’lar hata alır. Uygulamanın yeniden bağlanıp işlemi tekrar denemesi gerekir.

Uyarı

Multi-subnet bir cluster’da listener SQL Server üzerinden oluşturulduğunda tüm IP adreslerini DNS’e kaydeder (RegisterAllProvidersIP = 1). MultiSubnetFailover kullanamayan eski istemciler kapalı IP’yi seçip zaman aşımına düşebilir. Bu sürücüleri güncelleyin; mümkün değilse RegisterAllProvidersIP’yi 0 yapın ve HostRecordTTL’yi varsayılan 1.200 saniyeden düşürün ki DNS failover’dan sonra daha hızlı güncellensin.

Okunabilir secondary’ler

Enterprise sürümde bir secondary salt okunur bağlantı kabul edebilir (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)). Bir routing listesi tanımlandığında, ApplicationIntent=ReadOnly bildirip listener üzerinden bağlanan oturumlar otomatik olarak bir secondary’ye gönderilir.

Raporları secondary’ye taşımak faydalıdır, ancak yan etkileri vardır:

  • Secondary’deki sorgular, hangi izolasyon seviyesini isterse istesin snapshot isolation altında çalışır. Satır versiyonları secondary’nin tempdb’sinde tutulur.
  • Okunabilir secondary’yi açmak, row versioning için primary’de değişen satırlara 14 bayt ekler.
  • Secondary’de uzun süren raporlar primary’deki ghost cleanup’ı geciktirebilir ve secondary’nin tempdb’sini büyütebilir.
  • Secondary’de oluşturulan istatistikler eskiden geçiciydi ve yeniden başlatmada kayboluyordu. SQL Server 2025, okunabilir secondary’ler için kalıcı istatistik getiriyor; secondary replica’lar için Query Store da artık varsayılan olarak açık.
  • Okunabilir secondary pasif replica değildir; tam olarak lisanslanması gerekir.

Raporlama tarafındaki ödünleşimleri ve lisans hesabını raporlama sunucusu eklemenin maliyeti yazımızda ele alıyoruz.

Secondary Replica Üzerinde Yedekleme

Yedeklemeyi primary’den almak, AG’nin en pratik faydalarından biridir.

  • SQL Server 2022’ye kadar: secondary’ler copy-only full backup ve normal log backup’ı destekler. Differential backup yalnızca primary’de alınabilir.
  • SQL Server 2025: copy-only backup’a ek olarak artık herhangi bir secondary replica üzerinde full ve differential backup da alınabiliyor.
  • Hangi replica’da alınırsa alınsın log backup’lar tek bir log zinciri oluşturur. Restore için nerede alındıklarından bağımsız olarak hepsine ihtiyaç vardır.
  • Secondary SYNCHRONIZED ya da SYNCHRONIZING durumda olmalıdır. Geride kalan bir asenkron secondary’de alınan yedek, ancak o secondary kadar günceldir.

AG’nin AUTOMATED_BACKUP_PREFERENCE ayarı (PRIMARY, SECONDARY_ONLY, SECONDARY veya NONE) ve backup priority değerleri yalnızca bir tercihi ifade eder. Yedek job’larınız her replica’da çalışmalı ve tercih edilen replica’da olup olmadıklarını SQL Server’a sormalıdır:

IF sys.fn_hadr_backup_is_preferred_replica(N'SalesDB') = 1
BEGIN
    BACKUP LOG [SalesDB]
    TO DISK = N'\\backupshare\sql\SalesDB\SalesDB_log.trn'
    WITH COMPRESSION, CHECKSUM;
END

Not

Availability group yedeğin yerini tutmaz. Hatalı bir UPDATE, silinen bir tablo ya da ransomware şifrelemesi milisaniyeler içinde tüm secondary’lere yansır. Hatadan hemen önceki ana dönmenizi yalnızca restore edilebilir bir yedek zinciri sağlar.

Yedekleme tarafı için SQL Server backup planı rehberimize göz atabilirsiniz.

Availability Group’un Kopyalamadıkları

AG yalnızca gruptaki kullanıcı veritabanlarını çoğaltır, başka hiçbir şeyi değil. master ve msdb’de tutulan her şey oluşturulduğu instance’ta kalır. Failover’dan sonra “uygulama eski primary’de çalışıyordu ama yenisinde çalışmıyor” durumunun olağan sebepleri şunlardır:

  • Login’ler: SQL login’leri her replica’da aynı SID ile bulunmalıdır; aksi halde failover’dan sonra veritabanı kullanıcıları orphaned olur. Login’leri CREATE LOGIN ... WITH SID = ... ile oluşturun.
  • SQL Server Agent job’ları, operator’lar ve alert’ler. Her job’ın ayrıca primary’de çalışıp çalışmadığını kontrol etmesi gerekir; örneğin sys.fn_hadr_is_primary_replica ile.
  • Linked server’lar, credential’lar ve proxy’ler.
  • Sertifikalar ve anahtarlar: TDE ile şifrelenmiş bir veritabanı, sertifikası olmayan bir replica’da açılamaz.
  • Instance ayarları: max server memory, MAXDOP, cost threshold, trace flag’ler ve Database Mail.
  • SSISDB’deki SSIS paketleri (SSISDB’nin kendisi gruba dahil değilse).
-- Agent job adımında: secondary'de hiçbir şey yapma
IF sys.fn_hadr_is_primary_replica(N'SalesDB') <> 1
    RETURN;

-- Replica'lar arasında login ve SID karşılaştırması
SELECT name, sid, type_desc, is_disabled
FROM sys.server_principals
WHERE type IN ('S', 'U', 'G')
  AND name NOT LIKE '##%'
ORDER BY name;

Contained availability group‘lar (SQL Server 2022 ve sonrası, Enterprise sürüm) bu sorunların çoğunu çözer. Contained AG’nin kendisiyle birlikte failover eden ayrı bir master ve msdb’si vardır; listener üzerinden oluşturulan login’ler, yetkiler ve Agent job’ları grupla birlikte taşınır. SQL Server 2025 ayrıca iki contained AG arasında distributed AG kurulmasına izin veriyor.

Diğer Availability Group Topolojileri

  • Distributed availability group (2016+): her biri kendi cluster’ında çalışan iki AG’den oluşan bir AG. Tek bir cluster’ı lokasyonlar arasına germeden bölgeler arası DR için ve kısa geçiş penceresiyle yeni donanıma ya da yeni sürüme taşınmak için kullanılır.
  • Read-scale / cluster’sız AG (CLUSTER_TYPE = NONE, 2017+): cluster yok, otomatik failover yok. Okuma ölçekleme ve migration için uygundur, yüksek erişilebilirlik için değil.
  • Linux üzerinde SQL Server: AG’ler WSFC yerine Pacemaker ile yönetilir (CLUSTER_TYPE = EXTERNAL).
  • Basic availability group: Standard sürümdeki varyant; aşağıdaki sürüm bölümünde anlatılıyor.

Failover Cluster Instance Nasıl Çalışır?

FCI, cluster rolü olarak kurulmuş tek bir SQL Server instance’ıdır. Veri ve log dosyaları her node’un erişebildiği depolamada durur: SAN, Storage Spaces Direct, cluster shared volume’lar veya SMB 3 dosya paylaşımı. tempdb her node’un hızlı lokal diskinde olabilir.

Aktif node çöktüğünde cluster rolü durdurur, depolamayı ve ağ adını taşır ve SQL Server’ı başka bir node’da başlatır. Bu bir servis başlatma olduğu için her veritabanı crash recovery’den geçer: commit edilmiş transaction’lar ileri sarılır, commit edilmemişler geri alınır. Bu nedenle failover süresini recovery süresi belirler ve uzun süredir açık transaction’lar bu süreyi uzatır. Accelerated database recovery bu süreyi belirgin şekilde kısaltır.

FCI’nin güçlü yanı, depolamanın üstündeki her şeyde sadeliktir. Senkron tutulacak login, AG’ye uyumlu hale getirilecek job, ayrıca lisanslanacak ya da farklı yamalanacak ikinci bir kopya yoktur. Koruyamadığı şey ise depolama arızası ve bozulmadır: verinin tek bir kopyası vardır. Bu yüzden kritik FCI’ler genellikle ayrı depolamada duran bir AG replica’sı, log shipping ya da yedekleme stratejisiyle birlikte kullanılır.

Not

Bir FCI, availability group’ta replica olabilir; ancak availability group’lar FCI replica’sına ya da FCI replica’sından otomatik failover’ı desteklemez. Lokal failover’ı FCI üstlenir; AG tarafı genellikle DR için manuel failover hedefidir.

Quorum: Tasarımların En Çok Yanıldığı Yer

Windows üzerindeki AG’ler de FCI’ler de WSFC quorum’una bağlıdır. Cluster, oyların çoğunluğu birbirini görebildiği sürece çalışır. Bu, bölünmüş bir cluster’ın iki yarısının da primary’nin kendisinde olduğunu düşündüğü split brain durumunu engeller.

  • Tek sayıda oy kullanın; node sayısı çiftse bir witness ekleyin (disk, file share veya cloud witness).
  • Dynamic quorum ve dynamic witness (Windows Server 2012 R2 ve sonrası), node’lar düştükçe oyları ayarlar ve cluster’ın ardışık arızalarda ayakta kalmasını sağlar.
  • DR lokasyonundaki node’lara genellikle NodeWeight = 0 verilir; böylece bir WAN kesintisi üretim lokasyonundaki cluster’ı düşüremez.
  • Witness, node’lardan biriyle aynı odada değil; üçüncü bir lokasyonda ya da cloud witness olarak Azure’da durmalıdır.

Klasik hata, iki lokasyonlu bir cluster’da primary lokasyonun kısa bir WAN aksaklığında oy çoğunluğunu kaybetmesi ve sağlıklı primary dahil tüm cluster’ın offline olmasıdır. Bu tuzağı asenkron database mirroring ile asenkron availability group karşılaştırmasında ayrıntılı anlatıyoruz.

SQL Server 2025’te Sürümlere Göre Always On

Özellik Enterprise Standard
Availability group En fazla 8 secondary replica, en fazla 5 senkron Yalnızca basic AG
Basic availability group Yok 2 replica, AG başına 1 veritabanı
Okunabilir secondary Var Yok
Secondary’de yedek ve DBCC CHECKDB Var Yok
Contained ve distributed AG Var Yok
Failover cluster instance En fazla 16 node 2 node
Cluster’sız (read-scale) AG Var Var

Standard sürümdeki bir sunucu, her biri tek veritabanlı birden fazla basic AG barındırabilir; ancak bunlar birbirinden bağımsız failover eder. Bir uygulama birlikte kalması gereken üç veritabanı kullanıyorsa basic AG bunu garanti edemez; FCI ya da Enterprise sürüm daha doğru seçim olabilir. Express sürüm ne AG’yi ne de FCI’yi destekler.

Always On Lisanslaması

Software Assurance veya abonelik lisanslamasıyla SQL Server 2025, failover için ücretsiz pasif replica hakkı verir: bir yüksek erişilebilirlik, bir felaket kurtarma ve bir de Azure’da DR için. Pasif replica üzerinde yalnızca veritabanı tutarlılık kontrolleri, log backup, full backup ve kaynak izleme yapılabilir.

Bir secondary okuma, rapor ya da başka bir üretim işi üstlendiği anda pasif olmaktan çıkar ve primary ile aynı sürümde kendi lisansına ihtiyaç duyar. Dolayısıyla raporlama için kullanılan okunabilir bir secondary, ikinci bir primary kadar lisans maliyeti getirir. Kuralları ve çekirdek hesabını SQL Server 2025 lisanslama rehberimizde anlatıyoruz.

İzleme: Secondary Gerçekten Hazır mı?

SSMS’teki yeşil bir pano kanıt değildir. Şu an failover yapsanız her veritabanı ve replica için ne kadar veri kaybedeceğinizi ve recovery’nin ne kadar süreceğini görmek için bu sorguyu primary’de çalıştırın:

SELECT
    ag.name                              AS ag_name,
    ar.replica_server_name,
    ar.availability_mode_desc,
    DB_NAME(drs.database_id)             AS database_name,
    drs.synchronization_state_desc,
    drs.synchronization_health_desc,
    drs.log_send_queue_size              AS log_send_queue_kb,
    drs.redo_queue_size                  AS redo_queue_kb,
    drs.redo_rate                        AS redo_kb_per_sec,
    drs.last_commit_time,
    drs.is_suspended,
    drs.suspend_reason_desc
FROM sys.dm_hadr_database_replica_states AS drs
JOIN sys.availability_replicas AS ar ON ar.replica_id = drs.replica_id
JOIN sys.availability_groups   AS ag ON ag.group_id   = drs.group_id
ORDER BY ag.name, ar.replica_server_name, database_name;

Alarm üretilmesi gereken durumlar:

  • Senkron bir replica’da SYNCHRONIZED olmayan ya da herhangi bir yerde suspended durumdaki her veritabanı.
  • Sürekli büyüyen bir log send queue. Asenkron DR replica’larında bu, veri kaybı riskinizdir.
  • Redo queue’nun redo rate’e bölümünün RTO hedefinizi aşması.
  • Primary ve secondary’deki last_commit_time arasındaki fark; yani saniye cinsinden gecikme.
  • Cluster olayları: quorum kaybı, düşen node, SQL Server error log’daki lease timeout’lar.
  • Bir secondary yetişemediği için AG veritabanlarının transaction log’unun büyümesi. Log, herhangi bir replica’nın hâlâ ihtiyaç duyduğu noktanın ötesine truncate edilemez.

Failover’ı yalnızca canlıya geçişte değil, düzenli olarak test edin. Her çeyrekte yapılan ve diğer taraftaki login’lerin, job’ların ve linked server’ların çalıştığını da doğrulayan bir failover tatbikatı, secondary’nin kullanılabilir olduğunu bilmenin tek güvenilir yoludur.

Always On’da Sık Yapılan Hatalar

  • AG’yi yedek yerine koymak ve restore testlerini atlamak.
  • Yüksek gecikmeli bir WAN üzerinden senkron commit kullanıp her insert’in neden yavaşladığını merak etmek.
  • Uygulamaların listener yerine instance adlarına ya da MultiSubnetFailover ve retry mantığı olmadan bağlanması.
  • Her replica’da farklı SID’li login’ler; ilk failover’da kullanıcıların orphaned kalması.
  • Her replica’da ya da yalnızca ilk primary’de çalışan Agent job’ları.
  • Witness’sız iki node’lu bir cluster ya da node’lardan biriyle aynı lokasyondaki bir witness.
  • Yama sırasında AG rolünü Failover Cluster Manager’dan taşımak.
  • Raporlar için okunabilir secondary’yi lisanslamadan kullanmak.
  • Redo queue’yu hiç ölçmemek ve “senkronize” bir failover’ın on dakika sürmesi.
  • Veritabanları birlikte failover etmesi gereken bir uygulama için basic AG seçmek.

Always On Kontrol Listesi

  • Her uygulama için RPO ve RTO iş birimleriyle mutabık kalınarak belirlendi.
  • Doğru koruma seviyesi için AG veya FCI seçildi; DR ayrıca planlandı.
  • Senkron replica’lar düşük gecikmeli ağda, DR replica’ları asenkron.
  • Quorum, witness konumu ve node ağırlıkları dokümante edildi.
  • Listener kullanılıyor; uygulamada MultiSubnetFailover ve retry mantığı var.
  • Login’ler (aynı SID’lerle), job’lar, linked server’lar, sertifikalar ve instance ayarları her replica’da mevcut.
  • Agent job’ları primary’de çalışıp çalışmadığını kontrol ediyor.
  • Yedek job’ları her replica’da çalışıyor ve backup tercihine uyuyor; restore’lar test ediliyor.
  • Send queue, redo queue, senkronizasyon durumu ve gecikme alarmlarla izleniyor.
  • Failover, uygulama tarafı dahil düzenli olarak test ediliyor.
  • Lisanslama, her secondary’nin gerçek kullanımını yansıtıyor.

Sürüm ve Edisyon Notları

Öğe Enterprise Standard Express Kaynak notu
Failover cluster instance Evet (en fazla 16 node) Evet (2 node) Hayır SQL Server 2025 sürümler tablosu
Availability group (tam) Evet Hayır Hayır SQL Server 2025 sürümler tablosu
Basic availability group Hayır Evet Hayır İki replica, bir veritabanı
Contained availability group Evet Hayır Hayır SQL Server 2022 ve sonrası
Distributed availability group Evet Hayır Hayır SQL Server 2016 ve sonrası
Davranış Sürüm Not
Secondary’de backup SQL Server 2022’ye kadar Copy-only full backup ve transaction log backup. Differential backup secondary’lerde desteklenmez.
Secondary’de backup SQL Server 2025 Copy-only ve log backup’a ek olarak herhangi bir secondary’de full ve differential backup.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT SQL Server 2017 ve sonrası Primary commit etmeden önce belirli sayıda senkron replica’nın her commit’i harden etmesini şart koşar.
DB_FAILOVER (veritabanı seviyesinde sağlık algılama) SQL Server 2016 ve sonrası Geriye dönük uyumluluk için varsayılan olarak kapalıdır.

Resmi Davranış, Aryasoft Saha Notları ve Bizim Önerimiz

Konu Resmi davranış (Microsoft) Aryasoft saha notu Bizim önerimiz
Otomatik failover Flexible failover policy ile yönetilir. FAILURE_CONDITION_LEVEL varsayılanı 3 (kritik sunucu hataları), HEALTH_CHECK_TIMEOUT varsayılanı 30.000 ms’dir. Veritabanı seviyesinde sağlık algılama varsayılan olarak kapalıdır. Ayrı bir saha notu yok. Yeni AG’lerin çoğunda DB_FAILOVER açın ve failover’ı düzenli test edin.
Failover türleri Otomatik ve planlı manuel failover (veri kaybı olmadan) senkronize bir senkron-commit hedefi gerektirir. Asenkron replica’lar yalnızca veri kaybına yol açabilen forced failover’ı destekler. Forced failover sonrası eski primary dahil tüm secondary veritabanları suspend edilir; birini resume etmek yeni primary’ye hiç ulaşmayan transaction’ları atar. Ayrı bir saha notu yok. Eski primary’yi resume etmeden önce bu transaction’ların kurtarılıp kurtarılmayacağına karar verin.
Secondary’de backup Yukarıdaki sürüm tablosuna bakın. Tüm replica’lardaki log backup’lar tek bir zincir oluşturur. AG backup değildir: vaka çalışmamız Always On ortamında filtresiz bir UPDATE’ten kurtarmayı anlatıyor. Backup job’larını her replica’da çalıştırın ve tercih edilen replica’yı kontrol ettirin. Restore’ları test edin.
Okunabilir secondary’ler Sorgular snapshot isolation’a eşlenir, row version’lar tempdb’ye gider ve secondary’deki uzun transaction’lar primary’deki ghost cleanup’ı engelleyebilir. Ayrı bir saha notu yok. Raporlama secondary’sini tam lisanslı bir production replica olarak görün.
AG içinde FCI AG içindeki bir FCI replica’dan otomatik failover desteklenmez. Ayrı bir saha notu yok. FCI’yı yerel failover için, AG replica’sını manuel DR hedefi olarak kullanın.
Always On, iki SQL Server yüksek erişilebilirlik teknolojisinin ortak adıdır: kullanıcı veritabanlarının kopyalarını başka instance’larda tutan availability group’lar ve paylaşımlı depolama kullanarak SQL Server instance’ını bütünüyle cluster node’ları arasında taşıyan failover cluster instance’lar.
Availability group bir grup veritabanını korur ve her replica’da ayrı bir kopya tutar; bu yüzden depolama arızasını da atlatır, ancak login, job ve diğer instance seviyesi nesnelerin elle senkron tutulması gerekir. FCI ise paylaşımlı depolamadaki tek kopyayla instance’ın tamamını korur; instance seviyesi nesneler otomatik taşınır, ama depolama tek hata noktasıdır.
SYNCHRONIZED durumdaki senkron bir replica’da hayır: ona yapılan otomatik ve planlı failover’lar commit edilmiş hiçbir transaction’ı kaybettirmez. Asenkron replica’lar log send queue’da kalanı kaybedebilir; zorunlu (forced) failover ise tanımı gereği veri kaybına yol açabilir.
Evet, sınırlarla. Standard sürüm basic availability group’ları (iki replica, grup başına bir veritabanı, okunabilir secondary ve secondary’de yedek yok) ve iki node’lu failover cluster instance’ları destekler. Tam availability group’lar, okunabilir secondary’ler, contained ve distributed AG’ler Enterprise sürüm gerektirir.
Evet. SQL Server 2022’ye kadar secondary’ler copy-only full backup ve log backup’ı destekler. SQL Server 2025 herhangi bir secondary’de full ve differential backup’ı da destekliyor. Tüm replica’lardaki log backup’lar tek bir log zinciri oluşturur.
Yalnızca failover için kullanılan pasif bir secondary, Software Assurance veya abonelik lisanslamasıyla kapsanır: bir HA, bir DR ve bir de Azure’da. Okuma ya da rapor hizmeti veren bir secondary ise tam olarak lisanslanmalıdır.
Hayır. Always On şemsiye addır. Availability group’lar ve failover cluster instance’lar onun altındaki iki teknolojidir ve farklı şeyleri korurlar.
Ayrı depolamada ayrı kopyayla veritabanı seviyesinde koruma ve DR için availability group seçin. Instance’ın tamamını paylaşımlı depolamadaki tek kopyayla korumak için FCI seçin. Standard sürüm sizi basic availability group ya da iki node’lu FCI ile sınırlar.
Hayır. Değişiklikler birkaç an içinde secondary’lere kopyalanır; yalnızca restore edilebilir bir backup zinciri sizi hatadan önceki ana döndürür.

Kaynaklar (Microsoft Learn)

Bu rehberdeki teknik iddialar 19 Ekim 2026 tarihinde aşağıdaki birincil kaynaklara karşı kontrol edildi. Microsoft dokümantasyonu her an değişebilir; üretimde değişiklik yapmadan önce sürüme özel ayrıntıları yeniden doğrulayın.

SQL Server HA/DR Değerlendirmesi

Secondary’niz İhtiyaç Duymadan Önce Hazır Olsun

Aryasoft’un kıdemli DBA ekibi availability group ve failover cluster instance yapınızı RPO ve RTO hedeflerinize göre inceler: quorum ve listener tasarımı, backup yerleşimi, login ve job senkronizasyonu, izleme ve failover tatbikatları. Bir kesinti sizi bulmadan önce önceliklendirilmiş bir risk listesi alırsınız.

4.7/5