FCI czy AlwaysOn AG – jak SQL trzyma fason po awarii
FCI (Failover Cluster Instance) chroni instancję, AG (AlwaysOn Availability Groups) chroni dane.
Oba mają swoje miejsce, oba swoje pułapki.
FCI to wspólny storage i klasyczna niezawodność. AG to elastyczność, replikacja i odczyty.
„Awaria to egzamin z tego, jak myślałeś, zanim się zaczęła.”
Architektura i filozofia
FCI to jeden serwer logiczny rozłożony na kilka węzłów klastra.
Jeśli jeden padnie – cały SQL „przenosi się” na inny, korzystając z tego samego storage’u.
To oznacza: zero utraty danych, ale pełna zależność od wspólnego magazynu.
W skrócie – chronisz instancję, nie bazę.
AG (AlwaysOn Availability Groups) to zupełnie inna filozofia.
Nie masz wspólnego storage’u, tylko replikację na poziomie logów transakcyjnych.
Każdy węzeł ma własne pliki danych, własny dysk, własny SQL.
Chronisz więc dane, nie instancję – a w bonusie dostajesz skalowanie odczytów i backupy z replik wtórnych.
Wybór to nie religia
Nie ma „lepszego” rozwiązania – są tylko inne cele.
Jeśli Twoim priorytetem jest prosty failover i środowisko SAN-owe – wybierz FCI.
Jeśli chcesz redundancji danych, odczytów rozproszonych i kopii w chmurze – AG.
W dużych środowiskach te dwa światy często się łączą: FCI jako wysoka dostępność w obrębie centrum danych, AG jako disaster recovery między lokalizacjami.
Właśnie to połączenie pokażę Ci w nadchodzącym labie:
SQL Server FCI w jednym regionie, a jego replika AG w drugim.
Jedna awaria – dwa mechanizmy HA – i kilka ciekawych wniosków o tym, jak SQL trzyma fason nawet w chaosie.
📘 Repozytorium z konfiguracją i skryptami:
github.com/marcinpytlik/SQLManiak/tree/master/docs/FCI-Windows2022-SQL2022
Złote zasady projektanta HA
- Projektuj z myślą o punkcie odzysku (RPO) i czasie odzysku (RTO), nie o technologii.
- Nie zakładaj, że storage jest nieśmiertelny.
- Testuj scenariusze failover – nie w dokumentacji, tylko w realu.
- Dokumentuj topologię, bo w stresie nikt nie będzie zgadywał, która instancja jest primary.
Wysoka dostępność to nie konfiguracja – to sposób myślenia o ryzyku.