Adım Adım SQL Server Always On Availability Group Kurulum Rehberi
Microsoft SQL Server’ın sunduğu en gelişmiş yüksek erişilebilirlik (High Availability) ve felaket kurtarma (Disaster Recovery) çözümü olan Always On Availability Groups (AG) mimarisini bu rehberde sıfırdan kuracağız. Bu teknoloji, kritik veritabanlarınızın kesintisiz çalışmasını sağlamak için tasarlanmıştır.
Always On Temel Kavramları ve Mimarisi
Kuruluma geçmeden önce, Always On’un temel çalışma prensiplerini anlamak önemlidir.
- High Availability (Yüksek Erişilebilirlik): Aynı veri merkezi içindeki sunuculardan birinin arızalanması durumunda, sistemin saniyeler içinde diğer sunucu üzerinden çalışmaya devam etmesidir.
- Disaster Recovery (Felaket Kurtarma): Veri merkezinizin deprem, sel gibi bir felaketle tamamen hizmet dışı kalmasına karşı, farklı bir coğrafi konumdaki yedek veri merkezinden hizmet vermeye devam etmektir.
- Synchronous-Commit (Senkron Çalışma): Birincil (Primary) veritabanına gelen bir işlem, ikincil (Secondary) sunucuya da yazılmadan kullanıcıya “işlem tamamlandı” onayı gönderilmez. Veri kaybı riski sıfırdır ancak çok yoğun sistemlerde performansı bir miktar etkileyebilir. Otomatik Failover için bu mod zorunludur.
- Asynchronous-Commit (Asenkron Çalışma): Birincil veritabanına gelen işlem, ikincil sunucuyu beklemeden onaylanır. Veriler arka planda kopyalanır. Performansı daha yüksektir ancak iki sunucu arasında milisaniyelik de olsa bir veri farkı olabilir. Bu modda Failover işlemi manuel yapılır.
Kurulum Öncesi Hazırlık ve Laboratuvar Ortamımız
Always On, temelinde bir Windows Server Failover Cluster (WSFC) yapısı üzerinde çalışır. Bu nedenle, tüm sunucuların bir Active Directory (AD) domain’ine üye olması zorunludur.
Laboratuvar Bileşenlerimiz (Örnek Yapılandırma):
- Domain Controller (DC):
10.10.10.10 – Ağımızın patronu.
- Birincil SQL Sunucusu (FCI1):
10.10.10.11 – İlk işçi sunucumuz.
- İkincil SQL Sunucusu (FCI2):
10.10.10.12 – Yedek işçi sunucumuz.
- SQL Servis Hesabı:
DOMAIN\data – AD üzerinde oluşturulmuş standart bir kullanıcı.
- Failover Cluster Sanal Adı/IP’si:
SQLCLUSTER – 10.10.10.13 – Cluster’ın kimliği.
- Availability Group Listener Sanal Adı/IP’si:
AGLISTENER – 10.10.10.14 – Uygulamaların bağlanacağı adres.
Önemli Not: Bu rehberdeki tüm adımlar, sunucularda Windows Firewall’un test amacıyla devre dışı bırakıldığı veya gerekli tüm portlara (1433, 5022, 445 vb.) izin verildiği varsayılarak anlatılmıştır. Gerçek ortamda, port bazlı izinler tanımlanmalıdır. Veritabanlarınızın Recovery Model’i Full olmalı ve devam etmeden önce mutlaka bir Full Backup almış olmalısınız.
FAZ 1: Windows Server Failover Cluster (WSFC) Kurulumu
Her şeyin temeli olan Cluster yapısını kurarak başlıyoruz. Bu adımlar **FCI1** ve **FCI2** sunucularının her ikisinde de yapılmalıdır.
- Server Manager‘ı açın ve “Add Roles and Features” sihirbazını başlatın.
- “Installation Type” ekranında “Role-based or feature-based installation” seçeneği ile ilerleyin.
- “Server Selection” ve “Server Roles” ekranlarını “Next” ile geçin.
- “Features” ekranında, Failover Clustering kutucuğunu işaretleyin. Gelen ekranda “Add Features” diyerek yönetim araçlarının da kurulmasını sağlayın.
- Kurulumu tamamlayın. Bu işlem her iki sunucuda da yapıldıktan sonra aşağıdaki adıma geçin.
Cluster’ı Oluşturma ve Yapılandırma
Bu işlem sunuculardan sadece birinde (örneğin FCI1) yapılır.
- Failover Cluster Manager‘ı açın.
- “Actions” menüsünden **”Create Cluster…”** seçeneğine tıklayın.
- Sihirbazda “Select Servers” ekranına her iki sunucunun da adını (`FCI1`, `FCI2`) ekleyin.
- “Validation Warning” ekranında, yapılandırmayı doğrulamak için testi çalıştırmayı kabul edin. Testin ciddi bir hata vermeden tamamlanması çok önemlidir.
- Test başarılı olduktan sonra, cluster’ınıza bir isim (Cluster Name: `SQLCLUSTER`) ve ağda kullanılmayan bir IP adresi (
10.10.10.13) atayın.
- Sihirbazı tamamlayarak cluster’ı oluşturun. İşlem bittiğinde, DC sunucusundaki “Active Directory Users and Computers” altında, “Computers” klasöründe `SQLCLUSTER` adında yeni bir bilgisayar hesabı oluştuğunu görmelisiniz.
FAZ 2: SQL Server Kurulumu ve Yapılandırması
Cluster yapımız hazır olduğuna göre, şimdi her iki sunucuya da SQL Server kuracağız. Unutmayın, her iki sunucudaki kurulum adımları birebir aynı olmalıdır.
- SQL Server kurulum medyasını çalıştırın ve “New SQL Server stand-alone installation…” seçeneği ile ilerleyin.
- “Feature Selection” ekranında, en azından aşağıdaki bileşenleri seçtiğinizden emin olun:
- Database Engine Services
- SQL Server Replication
- Client Tools Connectivity
- Service Accounts (En Kritik Adım): Bu ekranda, “SQL Server Agent” ve “SQL Server Database Engine” servislerinin “Account Name” kısmına, AD üzerinde önceden oluşturduğunuz servis hesabını yazın (
DOMAIN\data) ve parolasını girin.
- Database Engine Configuration: “Authentication Mode” olarak Mixed Mode‘u seçin ve ‘sa’ kullanıcısı için güçlü bir parola belirleyin. “Specify SQL Server administrators” bölümünde, “Add Current User” diyerek o an oturum açtığınız Domain Admin kullanıcısını ekleyin.
- Kurulumu her iki sunucuda da tamamlayın.
Always On Özelliğini Etkinleştirme
Bu işlem de her iki sunucuda (`FCI1` ve `FCI2`) yapılmalıdır.
- SQL Server Configuration Manager‘ı açın.
- “SQL Server Services” sekmesine gelin.
- “SQL Server (MSSQLSERVER)” servisine sağ tıklayıp “Properties” deyin.
- “Always On Availability Groups” sekmesine gelin, **”Enable Always On Availability Groups”** kutucuğunu işaretleyin. Cluster isminizin burada göründüğünü teyit edin.
- “OK” diyerek kapatın ve SQL Server servisini yeniden başlatın.
FAZ 3: Availability Group (AG) Sihirbazını Çalıştırma
Artık her şey hazır, AG’yi oluşturabiliriz. Bu işlemler birincil sunucu olan **FCI1** üzerinden SSMS ile yapılır.
- AG’ye dahil edilecek veritabanının bir **Full** ve bir **Log yedeğini** alın. Bu yedekleri, FCI2’nin erişebileceği bir paylaşıma koyun.
- FCI2 üzerinde bu yedekleri **WITH NORECOVERY** seçeneğiyle geri yükleyin.
- FCI1’de SSMS’te “Always On High Availability” klasörüne sağ tıklayın ve **”New Availability Group Wizard…”** seçeneğini başlatın.
- Sihirbazda AG’nize bir isim verin.
- “Select Databases” ekranında, hazırladığınız veritabanını seçin.
- “Specify Replicas” ekranında, “Add Replica…” butonuyla **FCI2** sunucusunu ekleyin.
- Her iki sunucu için de **Automatic Failover** kutucuğunu işaretleyin. “Availability Mode” olarak **Synchronous Commit** seçin. Raporlama gibi amaçlarla ikincil kopyadan okuma yapmak istiyorsanız, “Readable Secondary” seçeneğini “Yes” yapın.
- “Select Initial Data Synchronization” ekranında, yedek ve geri yükleme işlemlerini manuel yaptığımız için **”Join only”** seçeneğini seçin.
- Sihirbazın sonraki adımlarını takip ederek yapılandırmayı doğrulayın ve tamamlayın.
FAZ 4: Availability Group Listener Kurulumu
Listener, uygulamaların hangi sunucunun aktif olduğunu bilmesine gerek kalmadan, tek bir sanal isme bağlanarak veritabanına erişmesini sağlayan çok önemli bir bileşendir.
- Domain Controller (DC) üzerinde: “Active Directory Users and Computers” konsolunu açın.
- “Computers” klasörüne sağ tıklayıp **New > Computer** deyin. Listener için bir bilgisayar adı belirleyin (Örn: `AGLISTENER`).
- Oluşturduğunuz bu `AGLISTENER` bilgisayar hesabına sağ tıklayıp “Properties” deyin.
- “Security” sekmesinde, “Add…” butonuna tıklayın. “Object Types” kısmından “Computers”ı işaretleyin ve Failover Cluster’ınızın adını (`SQLCLUSTER`) ekleyin.
- Eklediğiniz `SQLCLUSTER` kimliğine **Full Control** yetkisi verin.
- FCI1’e geri dönün (SSMS ile): Oluşturduğunuz Availability Group altındaki “Availability Group Listeners” klasörüne sağ tıklayın ve **”Add Listener…”** deyin.
- Listener’a bir DNS adı verin (oluşturduğunuz bilgisayar hesabıyla aynı: `AGLISTENER`). Port olarak `1433` yazın ve “Network Mode” olarak “Static IP” seçip, Listener için ayırdığınız IP adresini (
10.10.10.14) ekleyin.
- “OK” diyerek listener’ı oluşturun.
Sonuç ve Kontrol
Tebrikler! Artık tam fonksiyonel bir SQL Server Always On Availability Group yapınız var. SSMS üzerinde Availability Group’unuza sağ tıklayıp **”Show Dashboard”** diyerek yapının sağlık durumunu kontrol edebilirsiniz.
Bu rehber, kurumsal dünyada sıkça kullanılan bu güçlü teknolojiyi öğrenmek ve denemek için sağlam bir temel oluşturmaktadır. Başarılar dilerim!