Merhaba arkadaşlar bu yazımızda SQL Always on kurulumundan bahsedeceğim.

1- SQL Server Always On Nedir?
2- Ön Gereksinimler
3- Fail Over Cluster Kurulum
4- Witness Share Konfigürasyon
5- SQL Server 2019 Kurulum
6- SQL Server Always On Kurulum
7- SQL Server Always On yapısına Replika Sunucu Eklemek

SQL Server Always On Nedir?

Microsoft SQL Server Always ON yapısı High Availability ( Yüksek Erişebilirlik ) ve Disaster Recovery ( Felaket Kurtarma ) çözümüdür.

High Availability ( Yüksek Erişebilirlik ) şirket ortamlarınızda bulunan Datacenter ( Veri Merkezi ) üzerinde birden fazla sunucu ile yapılır. Sunuculardan birinin Donanımsal ya da Yazılımsal bir sorun nedeniyle arızalanması durumunda diğer sunucunuzun devreye girmesini sağlayan teknolojidir.

Disaster Recovery ( Felaket Kurtarma ) şirket ortamlarınızda bulunan Datacenter ( Veri Merkezi ) üzerinde oluşabilecek herhangi beklenmedik bir felaket sonucu ( Deprem, Sel, Yangın ) Datacenter ( Veri Merkezi ) tamamen hizmet veremez duruma gelme ihtimaline karşı farklı bir uzak lokasyonda Datacenter ( Veri Merkezi ) kurularak sağlanır. Örneğin; Datacenter ( Veri Merkezi ) İstanbul’ da ise  Disaster Recovery ( Felaket Kurtarma ) olarak İstanbul’ da farklı bir lokasyonu ya da Ankara, İzmir gibi uzak ve daha az riskli bir lokasyonu Disaster Recovery ( Felaket Kurtarma ) için tercih edebilirsiniz. Microsoft Azure Cloud ve Amazon Cloud gibi Cloud ( Bulut ) hizmetlerini de Disaster Recovery ( Felaket Kurtarma ) Datacenter ( Veri Merkezi ) olarak yapılandırabilirsiniz.

Microsoft SQL Server Always ON yapısı kurulum ve yapılandırması için ortamınızda Windows Server Failover Cluster yapısı içinde en az iki sunucuya ihtiyaç duymakdır.

Availability Group yapısını Synchronous ( Senkron ) olarak yapılandırırsanız Availability Group yapısı içindeki tüm Database ( Veritabanı ) Synchronous ( Senkron ) bir şekilde çalışacaktır. Yani ortamdaki Primary Database ( Veritabanı ) gelen bir istek Secondary Database ( Veritabanı ) işlenmeden kullanıcıya işlem tamamlandı bilgisi iletilmeyecektir. Bu çok yoğun Transaction ( İşlem ) alan Database ( Veritabanı )’ ler için biraz performans kaybına neden olabilir. Ama Automatic ( Otomatik ) Failover Synchronous ( Senkron ) Availability Group yapısı yapılabildiği için herhangi bir sorun yaşamazsınız. Sunucularda herhangi bir Donanımsal ya da Yazılımsal bir sorun olması durumunda herhangi bir kesinti yaşanmadan Availability Group yapısı diğer sunucudan Automatic ( Otomatik ) bir şekilde hizmet vermeye devam edecektir.

Availability Group yapısını Asynchronous ( Asenkron ) olarak yapılandırırsanız eğer Primary Database ( Veritabanına )’ e gelen bir istek Secondary Database ( Veritabanına )’ e işlenmeyi beklemeden direkt olarak kullanıcıya işlem tamamlandı bilgisi iletilecektir ve arka tarafta Synchronous ( Senkron ) yapılacaktır. Asynchronous ( Asenkron ) olarak yapılandırılan Availability Group yapısında Secondary Database ( Veritabanı ) yazma işlemi için belli bir süresi yoktur. Buradaki yazma işlemi ortamınızda mevcut Donanım ve Network yapınızın Performansına bağlı olarak değişkenlik gösterebilir.

Availability Group yapısını Automatic ( Otomatik ) ya da Manual ( Manuel ) olarak Failover yapabilirsiniz. Automatic ( Otomatik ) Failover yapabilmek için Availability Group yapısını Synchronous ( Senkron ) olarak yapılandırmanız gerekmektedir.  Çok yoğun Transaction ( İşlem ) içeren sistemlerde Availability Group yapısını Synchronous ( Senkron ) ve Automatic ( Otomatik ) olarak yapılandırabilirsiniz. Index Rebuild ( Dizin Yeniden Oluşturma ) işlemlerinde Performans kaybı daha fazla olduğu için sıkıntı yaşayan yapılarda Index Rebuild ( Dizin Yeniden Oluşturma ) öncesinde Availability Group yapısını Asynchronous ( Asenkron ) olarak yapılandırabilirsiniz.

Automatic ( Otomatik ) Failover işlemi, Availability Group yapısına dahil bir Database ( Veritabanı ) oluşan bir hata sonucu gerçekleşmez. Availability Replica seviyesinde gerçekleşir. Availability Group yapısında Database ( Veritabanı ) biri Corrupt ( Bozulma ) olması Transaction Log ( İşlem Logu ) dolmuş, Database ( Veritabanı ) bulunduğu Data dizini dolmuş gibi sebeplerde Automatic ( Otomatik ) Failover işlemi gerçekleşmez.

High Availability ( Yüksek Erişebilirlik ) ve Disaster Recovery ( Felaket Kurtarma ) SQL ServerAlways ON’da nasıl kullanıldığını için örnek vermemiz gerekirse.

Datacenter ( Veri Merkezi ) iki Adet sunucumuz var. Bu iki sunucumuzu Windows Server Failover olarak yapılandırdınız. Bu iki sunucumuz üzerinde SQL Server Always ON yapılandırdınız ve Synchronous ( Senkron ) olarak yapılandırdınız. Bu yapılandırmaya High Availability ( Yüksek Erişebilirlik ) yapılandırması deriz.

Datacenter ( Veri Merkezi ) iki Adet sunucumuz var. Bu iki sunucumuzu Windows Server Failover olarak yapılandırdınız Datacenter ( Veri Merkezi ) bir sıkıntı olma ihtimaline karşı başka bir lokasyonda Datacenter ( Veri Merkezi ) üzerinde bir sunucuz var. Bu sunucuyuda mevcut Windows Server Failover yapınıza dahil ettiniz ve mevcut SQL Server Always ON yapınıza Replica ( Kopya ) olarak yapılandırdınız ve Asynchronous ( Asenkron ) olarak yapılandırdınız. Bu yapılandırmaya Disaster Recovery ( Felaket Kurtarma ) yapılandırması deriz. SQL Server Always ON yapısında aynı Availability Group yapısı içinde birden fazla Secondary yapılandırması yapabilirsiniz.

SQL Server üzerinde High Availability ( Yüksek Erişebilirlik ) yapısının kurulumu ve yapılandırmasını başlayabiliriz.

Ön Gereksinimler

Ortamınızda Windows Server Failover yapısına dahil 2 Adet Sunucunuzun olması gerekiyor.

Ortamınızdaki 2 Adet Sunucunuz üzerinde de SQL Server 2019 Stand-alone olarak kurmanız gerekiyor.

Ortamınızdaki 2 Adet Sunucunuz üzerinde de kurulmuş SQL Server 2019 Stand-alone Instance’ ların Service Account ( Servis Hesabı ) aynı Domain User ile yapılandırmanız gerekiyor.

Ortamınızdaki 2 Adet Sunucunuz üzerinde de Best Practice olarak aynı Boyutta ve aynı isimde Drive’lar olmalı. Drive’ların içinde aynı pathler olmalı. Örneğin 1 sunucumuz üzerinde D adında bir diskimiz varsa 2 sunucumuz üzerinde aynı boyutta D adında bir diskimiz olması gerekmektedir. 1 sunucumuz üzerinde D adında bir diskimiz için Data isminde bir klasör varsa 2 sunucumuz üzerinde D adında bir diskimiz için Data isminde bir klasör olması gerekmektedir.

Ortamınızdaki 2 Adet Sunucunuz üzerinde kurulmuş olan Windows Server Failover Account ( Windows Server Failover ismi ) bu 2 Adet sunucunun Active Directory Domain Controller bulunduğu OU ( Organization Unit ) Create Computer Object yetkisinin verilmesi gerekiyor. Bu yetkiyi yapılandırmazsanız eğer Listener oluştururken hata alabilirsiniz.

Kurulum ve yapılandırmaya başlamadan önce Sunucularımız üzerinde aşağıdaki yapılandırmalara dikkat edilmesi gerekmektedir.

  • Sunucularımızın Region ( Bölge ) ayarlarının English ( United States ) olarak yapılandırılmış olması gerekmektedir.
  • Sunucular üzerinde Windows Firewall devre dışı duruma getirilmelidir.
  • Sunucularımızın üzerinde User Account Control kapatılmalıdır.
  • Sunucularımızın üzerinde Anti-Virus yazılımının kurulmaması ve kurulu olan Anti-Virüs programların devre dışı bırakılması gerekmektedir.
  • Sunucularımızın üzerindeki bütün Driver, Bios, Firmware güncelleştirmelerinin yapılması ve aynı seviyede olması gerekmektedir.
  • Sunucularımızın üzerindeki Windows Update’lerin yapılması ve aynı seviyede olması gerekmektedir.
  • Virtual Machine ( Sanal Makine ) Ağ protokolleri ile kendi aralarında ve ya dış dünya ile haberleşmesi için en az 1 adet daha Network Kartı olması gerekmektedir.
  • Sunucularımızın üzerindeki Computer Name ( Sunucu İsmi ) düzenliyoruz.
  • Sunucularımızın üzerindeki Network Adapter ( Network Kartı ) üzerinde IP Address ( IP Adresi ) düzenliyoruz.

Bu bilgileri aktardıktan sonra Sunucularımız üzerinde Failover Cluster özelliğinin kurulumu ve yapılandırmasına geçebiliriz.

Fail Over Cluster Kurulum

Server Manager konsolunu açıyoruz. Dashboard ekranın da Add roles and Features tıklıyoruz. Dilerseniz sağ üst köşedeki Manage menüsünden Add Roles and Features ile rol ekleme sihirbazını açabiliriz.

Add Roles and Features Wizard bilgi ekranı geliyor karşımıza kuruluma devam etmek için Next diyerek devam ediyoruz.

Select Installation Type ekranın da

Role-based or feature-based insallation : Roles ( Rol ) ve Features ( Özellik ) kurulum ve yapılandırdığımız seçenektir. Windows Server 2019 üzerinde bulunan ve ihtiyacımız olan  Roles ( Rol ) ve Features ( Özellik ) bu seçenek ile kurulum ve yapılandırmasını yapabilirsiniz.

Remote Desktop Services installation : Eski adıyla Terminal Service ( TS ) olarak bilinen ve Windows Server 2008 ile birlikte Remote Desktop Services ( RDS ) Uzak Masaüstü kurulumu ve yapılandırmasını hızlı ve standart olarak bu seçenek ile yapabilirsiniz.

Select Installation Type ekranın da biz Microsoft SQL Server sunucumuz üzerinde Failover Clustering özelliğinin kurulumu yaparak yapılandıracağımız için Role-based or features-based Installation seçeneği ile Next diyerek devam ediyoruz.

Select destination server ekranın da kurulumu hangi sunucu üzerinde yapılacak ise o sunucuyu seçmemiz gerekiyor. Biz ZEKISQLNOD01 isimli sunucumuz üzerinde Failover Clustering özelliğinin kurulumunu yaparak yapılandıracağımız için bu sunucumuzu seçiyoruz ve Next diyerek yapılandırmaya devam ediyoruz.

Select server roles ekranın da Microsoft SQL Server Cluster yapısı için herhangi bir Roles ( Rol ) kurulumu ve yapılandırması gerçekleştirmeyeceğiz. Microsoft SQL Server Cluster yapısı için sadece Features ( Özellik ) ekranın da Failover Cluster Features ( Özellik ) kurulumunu yaparak yapılandıracağımız için Next diyerek devam ediyoruz.

Failover Clustering ve Multipath I/O feature’larını seçtikten sonra Next ile devam ediyoruz.

Confirm installation selections ekranında Install diyerek Failover Clustering ve Multipatch I/O Features ( Özellik ) kurulumunu başlatabiliriz. Failover Clustering ve Multipatch I/O Features ( Özellik ) kurulumu tamamlandıktan sonra sunucumuzun otomatik olarak restart etmek istersek eğer Restart the destination server automatically if required seçeneğini işaretlememiz gerekiyor.

Failover Clustering ve Multipatch I/O Features ( Özellik ) kurulumu tamamlandıktan sonra sunucumuzu otomatik olarak restart etmek için Restart the destination server automatically if required işeretliyoruz. Kurulum tamamlandıktan sonra sunucumuzun otomatik olarak restart olacağı bilgisi veriyor. Yes diyerek kabul ediyoruz.

Install diyerek Failover Clustering ve Multipatch I/O Features ( Özellik ) kurulumlarını başlatıyoruz

Installation progress ekranın da Failover Clustering ve Multipatch I/O Features ( Özellik ) kurulmaya başladığını görüyoruz.

Sunucumuz restart olduktan sonra Failover Clustering ve Multipatch I/O Features ( Özellik ) başarılı bir şekilde kurulduğunu görüyoruz. Close diyerek Add Roles and Features Wizard ekranını kapatıyoruz.

NOT: Bu kurulumu ZEKISQLNOD02 sunucusunda da yapıyoruz.

Failover Cluster Manager konsolu açıyoruz.

Failover Cluster Manager konsolu üzerinde  Failover Cluster Manager üzerinde sağ tuş Create Cluster ya da Actions menüsü altında Create Cluster tıklayarak Failover Cluster yapısını yapılandırmasını başlatabilirsiniz.

Before You Begin bilgi ekranı geliyor karşımıza kuruluma devam etmek için Next diyerek devam ediyoruz.

Select Servers ekranın da ZEKISQLNOD1 ve ZEKISQLNOD2 sunucularımızı Failover Cluster yapılandırması için ekledikten sonra Next diyerek devam ediyoruz.

Validation Warning ekranın da Failover Cluster yapısını kurulum ve yapılandırmasına geçmeden önce sunucularımız üzerindeki Failover Cluster yapılandırması için gerekli olan Roles ( Rol ) ve Features ( Özellik )lerin kurulumunu sunucularımız üzerinde Donanım ve Yazılım versiyonlarını kontrol edilmesi gerektiği uyarısını alıyoruz. Failover Cluster yapısı kurulmadan önce bu testi yapmanızı önemle tavsiye ediyoruz. Yes ile başlayan seçeneği seçip Next diyerek Failover Cluster ortamının yapılandırması için gerekli olan kontrol işlemini başlatıyoruz.

Before You Begin bilgi ekranı geliyor karşımıza yapılandırmaya devam etmek için Next diyerek devam ediyoruz.

Testing Options ekranın da Failover Cluster yapımız yapılandırması için Run all test (recommended) diyerek bütün kontrolleri mi yapacağız yoksa Run only tests I select diyerek sistem ile ilgili belirleyeceğiniz kontroller mi yapacağız onu belirlememiz gerekiyor. Testing Options ekranın da biz bütün testleri yaparak Failover Cluster yapılandırması sırasında sorunla karşılaşmamak için Run all test (recommended) seçeneğini seçiyoruz ve bütün kontrolleri başlatmak için Next diyerek devam ediyoruz.

Confirmation ekranın da Failover Cluster yapımız için sunucularımız üzerinde yapılacak olan bütün kontrollerin bir listesini görüyoruz. Bütün kontrolleri başlatmak için Next diyerek devam ediyoruz.

Summary ekranın da Failover Cluster yapısı için yapılan kontrollerin raporunu görüyoruz. Eğer bütün kontrolleri Success olarak görüyorsanız Failover Cluster ortamının yapılandırması için hiçbir sorun yoktur. Eğer herhangi bir hata alırsanız ilgili hatayı detaylı olarak kontrol ederek düzettikten sonra testleri tekrar başlatabilirsiniz. View Report diyerek Failover Cluster Validate Report ayrıntılı bir şekilde inceleyebilirsiniz. Finish diyereek Validate a Configuraion Wizard ekranını kapatıyoruz.

Access Point for Administering the Cluster ekranı geliyor karşımıza gerekli kontrolleri tamamladıktan sonra Failover Cluster yapımızı yapılandırmak için Failover Cluster Name ve IP Address ( IP Adresi ) yapılandırmamız gerekiyor.

Cluster Name bölümünde Failover Cluster yapımız için Cluster Name bölümüne bir isim belirliyoruz. Address bölümünde de Failover Cluster yapımız için bir IP Address ( IP Adresi ) belirliyoruz ve Next diyerek devam ediyoruz.

NOT : Burada yapılandıracağınız Failover Cluster Name ve Failover Cluster IP Address ( IP Adresi ) ortamınız da herhangi bir sunucu üzerinde kullanılmıyor olmasına dikkat etmenizi önemle belirtmek isterim.

Confirmation ekranın da Cluster bölümünde Failover Cluster yapımızın ismini ( ZEKISQLCLS ), Node bölümünde Failover Cluster yapımıza dahil olacak olacak olan ZEKISQLNOD1 ve ZEKISQLNOD2 isimli sunucumularımızı, Cluster registration bölümünde DNS Server ve Active Directory Domain Services üzerinde gerekli yapılandırmanın yapılacağını görüyoruz. Confirmation ekranın da Next diyerek devam ediyoruz.

Creating New Cluster ekranın da Failover Cluster yapımızın yapılandırılmaya başlandığını görüyoruz.

Summary ekranın da Failover Cluster yapımızın sorunsuz bir şekilde oluşturulduğu görüyoruz. Finish diyerek Failover Cluster Wizard ekranını kapatıyoruz.

Witness Share Konfigürasyon

ZEKISQLCLS üzerinde sağ tuş yapıyoruz. More Actions kısmında Configuration Cluster Quorum Settings seçerek devam ediyoruz.

Before You Begin ekranında Next butonunu seçerek devam ediyoruz.

Select Quorum configuration Option kısmında Select the quorum witness seçerek devam ediyoruz.

Select Quorum Witness kısmında  Configure a file share witness seçerek devam ediyoruz.

Configure File Share Witness kısmında SQL sunucularımızın erişim sağlayacağı paylaşım alanını belirtiyoruz ve bu paylaşım alanına ZEKISQLNOD01 ve ZEKISQLNOD02 sunucularını öncesinde yetkilendiriyoruz. File Share Path belirledikten sonra devam

Confirmation kısmında Next butonunu seçerek devam ediyoruz.

Summary kısmında Finish diyerek File Share Witness kurulumunu tamamlıyoruz.

SQL Server 2019 Kurulum

Failover Cluster yapılandırmamızı tamamladıktan sonra Microsoft SQL Server 2019 kurulumuna geçebiliriz. Ancak kuruluma geçmeden önce bir kaç yapılandırmaya dikkat etmemiz gerekiyor.

  • Sunucularımızın üzerinde Region ( Bölge ) ayarlarının English ( United States ) olarak yapılandırılmış olması gerekmektedir. Microsoft SQL Server 2019 kurulumu için önemlidir eğer bütün ayarlarımız Turkish olarak kalırsa Microsoft SQL Server 2019 servislerinin çalışmasında sorun yaşayabilirsiniz.
  • Sunucularımızın üzerinde Windows Firewall devre dışı duruma getirilmelidir.

SQL Server Installation Center ekranı geliyor karşımıza Installation bölümünü seçerek Microsoft SQL Server 2019 kurulumu ve yapılandırmasını başlatıyoruz.

SQL Server Installation Center ekranın da Installation seçeneği seçiyoruz. Installation seçeneği seçtikten sonra New SQL Server stand-alone installation or add features to an existing installation seçeneğini seçerek Microsoft SQL Server 2019 kurulumu ve yapılandırmasını başlatıyoruz.

Product Key ekranın da Microsoft SQL Server 2019 kurulumu için gerekli olan lisans yapılandırmasını seçmemiz gerekiyor. Eğer bir lisansa sahipseniz lisans bilginiz otomatik olarak Enter the product key gelecektir.

Product Key ekranın da eğer Microsoft SQL Server 2019 lisansına sahip değilseniz. Specify a free edition bölümünde Evaluation, Developer ve Express seçeneklerinden birini kullanabilirsiniz.

Evaluation : Microsoft SQL Server 180 günlük Demo yani Deneme sürümüdür.

Developer : Geliştiricilere yönelik bir lisanslamadır. Sadece Geliştirme ve Test ortamları için kullanılabilir.

Express : Ücretsiz olan bir sürümdür ve Basic yapılandırma ile Genelde son kullanıcılar için idealdir. Database boyutu olarak en fazla 10 Gibabyte (GB)’a kadar desteklemektedir.

Product Key ekranın da Microsoft SQL Server Enterprise Lisans bilgimiz otomatik olarak Enter the product key geldiği için Next diyerek devam ediyoruz.

License Terms ekranın da Microsoft SQL Server 2019 kurulumu için lisans sözleşmesini I accept the license terms diyerek kabul ediyoruz ve Next diyerek devam ediyoruz.

Global Rules ekranın da Microsoft SQL Server 2019 kurulumuna başlamadan sistemimizdeki Microsoft SQL Server 2019 kurulumu için herhangi bir eksik ya da hata olup olmadığının kontrolü gerçekleştiriyor. Herhangi bir eksik ya da hata yoksa Microsoft SQL Server 2019 kurulumuna Next diyerek devam ediyoruz.

Microsoft Updates ekranın da Microsoft SQL Server 2019 için güncelleştirme olup olmadığını kontrol etmemiz gerekiyor.

Microsoft Updates ekranın da Microsoft SQL Server 2019 için gerekli olan güncelleştirmeyi yapmak için Use Microsoft Update to check for updates (recommended) işaretliyoruz ve Next diyerek devam ediyoruz.

Install Setup Files ekranın da Microsoft SQL Server 2019 için gerekli update işlemi ve kurulum dosyaları hazırlanıyor.

Install Rules ekranın da Microsoft SQL Server 2019 kurulumu için gerekli olan yapılandırmada herhangi bir eksik olup olmadığı kontrol ediliyor. Microsoft SQL Server 2019 kurulum ve yapılandırması için önemli bir hata olmadığından kuruluma Next diyerek devam ediyoruz.

Feature Selection ekranın da Microsoft SQL Server 2019 kurulumu için hangi servislerinin ve özelliklerinin kurulacağı yapılandırıyor olacağız. Kurulum için seçilmesi için bilinen servisler Database Engine ServicesClient Tools ConnectivityClient Tools Connectivity Backwards Compatibility ve Management Tools seçenekleridir. Ancak Microsoft SQL Server 2019 ile birlikte Management Tools ve Reporting Services artık kurulum içinde gelmemektedir. Microsoft SQL Server 2016’dan önceki versiyonlarda Management Tools ve Reporting Services  özellikleri Microsoft SQL Server kurulumu ile birlikte yapılmaktaydı. Microsoft SQL Server 2016’dan sonra Management Tools ve Reporting Services ayrıca indirilerek kurulmaktadır.

NOT : Microsoft SQL Server 2019 kurulumu sırasında seçilen servisler ve özellikler kullanılacak olan yazılım ve uygulamalar için farklılık gösterebilir.

Feature Selection ekranın da biz Database Engine ServicesSQL Server Replication, Full-Text and Semantic Extractions for Search, Data Quality Services, Client Tools Connectivity, Client Tools Connectivity Backwards Compatibility, Client Tools SDK ve SQL ClientConnectivity SDK servislerini ve özellikleri seçiyoruz.

Instance root directory, Shared features directory ve Shared feature directoy ( x86 ) bölümlerinde Microsoft SQL Server 2019 kurulumu için default olan gelen kurulum dizinleridir. Program Files ( x64 ) ve Program Files ( x86 ) altına kurulacağını görüyoruz. Gerekli yapılandırmayı tamamladıktan sonra Next diyerek devam ediyoruz.

Instance Configurion ekranın da kurulacak olan Microsoft SQL Server 2019 sunucumuz üzerinde C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER dizini altında hangi isim ile kurulacağını seçiyoruz. Default olarak Instance ID için MSSQLSERVER gelmektedir. Biz buradaki yapılandırmayı Default şekliyle bırakıyoruz. SQL Server directory bölümünde C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER olarak kurulacağını görüyoruz bir önceki Feture Selection ekranın da bu dizini görmüştük. Dilerseniz Name Instance bölümünden değiştirebilirsiz. Biz default ayarları değiştirmeden Next diyerek kuruluma devam ediyoruz.

Server Configuration ekranın da Microsoft SQL Server 2019 servislerinin çalışacağı kullanıcıları yapılandırıyoruz.

Server Configuration ekranın da bir diğer sekme Collation sekmesidir. Database Engine için Collation seçimi yapmak için Customize butonu kullanarak değiştirebilirsiniz.

NOT : Microsoft SQL Server 2019 kurulumu sırasında Collation seçeneği kullanılacak olan yazılım için farkılılık gösterebilir.

Database Engine Configuration ekranın da Authetication Mode seçimi yapılmaktadır. Eğer Mixed Mode ( SQL Server authentication and Windows authentication ) olarak yapılandırıyorsanız tabiki burada Microsoft SQL Server 2019 kullanacağımız uygularımız ( Logo Tiger, Logo Bordro, Mikro, Eta, Nebim gibi ) için bir sa kullanıcısı için bir şifre atayabilirsiniz.

Specify SQL Server administrators bölümünde Microsoft SQL Server 2019 için eğer Windows authetication mode kullanılacaksa Active Directory Domain ortamınızda atamış olduğunuzkullanıcı atanır. Biz Windows authetication mode kullanacağımız için Add Current User tıklıyoruz.

Specify SQL Server administrators bölümüne Administrator kullanıcımızın geldiğini görüyoruz.

Specify SQL Server administrators ekranın da Data Directories sekmesinde Microsoft SQL Server 2019 DatabaseLog ve Backup dosyalarının tutalacağı dizinleri yapılandırmak için bu sekmeye geçiyoruz.

Data Directories sekmesinde Microsoft SQL Server 2019 kurulacağı default olarak gelen dizinleri görüyoruz. Data root directory, User database directory, User database log directory ve Backup directory sunucumuz üzerinde tutulacağı dizinlerdir.

Neden diskleri farklı dizinlerde yapılandırdığımızı belirtmek gerekirse. Örneğin yapınızda SSD ( Solid State Disk ) diskleriniz varsa Data,Log,Temp ve Backup için bu SSD ( Solid State Disk ) diskleriniz üzerinde farklı dizinler oluşturup burada tutulmasını sağlayabilirsiniz. Buradaki amacımız hem performans hem de yönetimi kolay olması açısından.

Data Directories sekmesinde Microsoft SQL Server 2019 üzerinde SQL Server Always ON yapısı kuracağımız için Database, Log ve Backup dizinlerini sunucularımız üzerindeki Disklerimiz üzerinde tutulması için yapılandırdıktan sonra TempDB sekmesine geçiyoruz.

TempDB sekmesinde Default olarak gelen dizinler değiştirebiliriz. Microsoft SQL Server 2019 üzerinde SQL Server Always ON yapısı kuracağımız için TempDB ve TempLog dizinlerini sunucularımız üzerindeki Disklerimiz üzerinde tutulması için yapılandırıyoruz.

TempDB : Microsoft SQL Server Tempdb veritabanı, geçici tabloları, geçici stored procedure gibi geçici dosyaların tutulduğu bir veritabanıdır. Resultset ile yapılan sıralama işlemleri Tempdb veritabanında yapılır. Verilerin geçici olarak saklanması gerektiğinde Tempdb veritabanı kullanılır. Tempdb veritabanı içerisinde objeler geçici olarak saklanır. Bu geçici objeler; geçici tablolar, stored prosedürler, tablo değişkenleri ve global temp tablolardır. Tempdb’de online index işlemleri, triggerlar tetiklendikten sonraki durum da saklanır. TempDB veritabanı bu nedenle çok yoğun geçici işlem kullanan Axapta, SAP gibi uygulamaların kullanmış olduğu Microsoft SQL Server Databaselerde yüksek performans sağlayabilmek için TempDB Database yapısının çok iyi yapılandırılması gerekmektedir. SQL Server yeniden başlatıldığında Tempdb yeniden oluşturulur. Tempdb üzerinde backup ya da restore seçenekleri kullanılamaz. Buradaki yapılandırma Microsoft SQL Server 2019 üzerinde kullanacağınız uygulamara göre değişiklik gösterebilir.

TempDB sekmesinde Microsoft SQL Server 2019 üzerinde SQL Server Always ON yapısı kuracağımız için TempDB ve TempLog dizinlerini sunucularımız üzerindeki Disklerimiz üzerinde tutulması için yapılandırdık.

MAXDOP : Microsoft SQL Server Maksimum paralellik derecesi (MAXDOP) yapılandırma seçeneğini paralel bir planı için bir sorgu yürütme kullanılan işlemci sayısını denetler. Bu seçenek, paralel olarak çalışmayı gerçekleştiren sorgu planı işleçleri için kullanılan iş parçacığı sayısını belirler. Olup olmadığını SQL Server simetrik çoklu işlem (SMP) bilgisayar, olmayan tekdüze bellek erişimi (NUMA) bilgisayar veya hiper iş parçacığı etkin işlemciler ayarlandığına bağlı olarak, Maksimum paralellik derecesi seçeneği uygun şekilde yapılandırmanız gerekir. Sp_configure sistem saklı yordamını kullandığınızda SQL Server için Maksimum paralellik derecesi seçeneği yapılandırmak için kullanabileceğiniz genel yönergeler anlatılmaktadır. Sorgu bu seçenek belirtiyorsa (MAXDOP) seçeneği Transact-SQL sorgu ipuçları Maksimum paralellik derecesi seçeneği sp_configure değerini geçersiz kılabilirsiniz. Kaynak Yöneticisi kullanılarak yapılandırılan değeri MAXDOP değeri aşarsa veritabanı altyapısı SQL Server 2008 ve sonraki sürümleri, kaynak yöneticisi MAXDOP değeri kullanır. Maksimum paralellik derecesi seçeneğiyle kullanılan tüm anlambilim kuralları MAXDOP sorgu ipucu kullandığınızda geçerlidir.

Memory : Microsoft SQL Server tarafında bazı durumlarda Memory ( RAM ) limitleme işlemi gerekebilir. Microsoft SQL Server iki çeşit hafıza yönetim sistemi vardır. Birincisi Dynamic Memory’dir. Bu yöntemde, Microsoft SQL Server kullanabildiği kadar çok hafızayı kullanır ve Operating System (OS) ve ya diğer uygulamaların ihtiyacı olduğunda ihtiyaç kadar hafızayı boşaltır. Sonra tekrar kullanır. Diğer yöntem ise Static Memory’dir. Bunda Minimum ve Maximum Memory ( RAM ) kullanım değerleri belirlenir. Microsoft SQL Server da hafızayı bu değerlere göre kullanır. Microsoft SQL Server 2019 kurulumu sırasında bu sekmede Microsoft SQL Server 2019 üzerinde gerekli olan Memory ( RAM ) limitleme işlemleri gerçekleştirilebilir.

File Stream : File Stream yapısı, varbinary (MAX) BLOB nesneleri (doküman, resim, video vb.) sunucu üzerindeki NTFS File system üzerinde veritabanı ile bütünleşik yapıda tutar. File system üzerinde file stream dosyaları oluşturur ve bu dosyaları veritabanının bir parçası yapar. Blob nesneleri NTFS file system’de file stream yapıda tutmak yerine, tabloda varbinary(MAX) veri tipini kullanarak veritabanının içine de gömebiliriz. Eğer dosyalarınız genel olarak 1 MB’tan küçükse veritabanı üzerinde tutmanız performansı arttıracaktır. Bununla beraber BLOB verilerin boyutu büyük olduğu için veritabanı yönetimini zorlaştıracaktır.(Backup, DBCC CHECKDB,Restore vb.)

MAXDOP, Memory ve File Stream kısımlarında herhangi bir değişiklik yapmadan devam ediyoruz.

Features Configuration Rules ekranın da Microsoft SQL Server 2019 kurulumu için seçenekler bir kez daha sistem tarafından kontrolden geçiriyor. Herhangi bir hata yoksa eğer Microsoft SQL Server 2019 kurulumu için Next diyerek devam ediyoruz.

Ready to Install ekranın da Microsoft SQL Server 2019 kurulumu için yapılandırma bilgisini görüyoruz. Install diyerek Microsoft SQL Server 2019 kurulumunu başlatıyoruz.

Installtion Progress ekranın da Microsoft SQL Server 2019 kurulumunun başladığını görüyoruz.

Complete ekranında Microsoft SQL Server 2019 kurulumunun başarılı bir şekilde tamamlandığını görüyoruz. Complete ekranında Close diyerek SQL Server 2019 Setup Wizard ekranını kapatıyoruz. Karşımıza gelen bilgilendirme ekranında sunucuyu yeniden başlatmamızı istemektedir. Sunucuyu yeniden başlatarak SQL kurulumunu tamamlıyoruz.

NOT: Microsoft SQL Server kurulumunu ZEKISQLNOD02 üzerinde de aynı şekilde yapıyoruz.

SQL Server Always On Kurulum

SQL Server Always ON kurulumu ve yapılandırması yapmaya çalıştığımızda aşağıdaki gibi hata alıyoruz.

SQL kurulumu yaptığımız sunucularımız üzerinde SQL Server Always ON kurulumu ve yapılandırması için SQL Server servislerinde üzerinde gerekli yapılandırmayı yapıyoruz.

SQL Server Configuration Manager konsolunu açıyoruz.

SQL Server Configuration Manager konsolu üzerinde SQL Server Services menüsü açıyoruz.

SQL Server Configuration Manager konsolu üzerinde SQL Server Services menüsü altında bulunan SQL Server (MSSQLSERVER) sağ tuş Properties diyoruz.

SQL Server(MSSQLSERVER) Properties ekranın da AlwaysON High Availability sekmesine tıklıyoruz.

AlwaysON High Availability sekmesinde Enable AlwaysOn Availability Groups işaretlememiz gerekiyor.

AlwaysON High Availability sekmesinde Enable AlwaysOn Availability Groups işaretledikten sonra Apply diyoruz.

Warning ekranında gerekli yapılandırmanın tamamlanması için SQL Server (MSSQLSERVER) servisini Restart ( Tekrar Başlat ) gerektiğini belirtiyor. OK diyerek devam ediyoruz.

SQL Server (MSSQLSERVER) Properties ekranın AlwaysON High Availability için gerekli yapılandırmayı tamamladıktan sonra OK diyoruz.

SQL Server (MSSQLSERVER) servisi üzerinde sağ tuş Restart ( Tekrar Başlat ) yapıyoruz.

SQL Server (MSSQLSERVER) servisi üzerinde gerekli yapılandırma tamamladıktan sonra SQL Server Network Configuration menüsü altında bulunan Protocols for MSSQLSERVER menüsüne geliyoruz. Protocols for MSSQLSERVER menüsü altında bulunan Named Pipes seçeneğini Disabled olarak görüyoruz. Named Pipes seçeneğini Enabled olarak yapılandırmamız gerekmektedir. Sağ tuş tıklayarak Enable diyerek Enable ediyoruz.

SQL Server (MSSQLSERVER) servisi üzerinde sağ tuş Restart ( Tekrar Başlat ) yapıyoruz. Bu işlemleri SQL kurulu sunucuların hepsinde yapıyoruz.

Şimdi sıra Always On Grup oluşturmaya geldi ama bunun için öncesinde bir DB oluşturuyoruz. Oluşturduğumuz DB backup’ını alıyoruz, backup almadığımız DB’lerin gruba eklenmesine izin vermeyecektir.

SQL sunucumuz üzerinde sağ tuş New Database diyerek yeni bir Database ( Veritabanı ) oluşturuyoruz. 

New Datbase ekranında Database Name yazdıktan sonra OK diyerek devam ediyoruz.

Kontrol ettiğimizde TEST Database’in oluştuğunu görüyoruz.

Şimdi ise oluşturduğumuz DB’in backup’ını alacağız. DB’in üzerinde sağ tuşa basıyoruz. Tasks Sekmesinde Back Up seçiyoruz.

Backup ekranında DB’in backup alınacağı yolu görüyoruz. Değişiklik yapmadan OK seçerek devam ediyoruz.

Microsoft SQL Server Management Studio ( SSMS ) konsolunu üzerinde Always On High Availability üzerinde sağ tuş New Availability Group Wizard diyoruz.

Introduction ekranın da Always On High Availability yapısı için gerekli yapılandırma için bilgileri görüyoruz. Next diyerek devam ediyoruz.

Specify Availability Group Options ekranın da Availability Group yapısı için Availability Group name bölümüne bir Name ( İsim ) veriyoruz. Cluster type bölümünü Windows Server Failover Cluster olarak seçiyoruz ve Next diyerek devam ediyoruz.

Select Databases ekranın da Availability Group yapısına dahil edeceğimiz Database ( Veritabanı ) seçmemiz gerekiyor. Availability Group yapısına dahil edebileceğimiz uygun Database ( Veritabanı ) Status bölümünde Meets prerequisities olarak görünecektir. Eğer Database ( Veritabanı ) üzerinde Full Backup almazsanız Status bölümü Full backup is required olarak görünecektir ve Database ( Veritabanı ) üzerinde Full Backup almadığınız için Availability Group yapısına ekleyemezsiniz.

Select Databases ekranın da Availability Group yapısına dahil edeceğimiz TEST isimli Database ( Veritabanı ) seçiyoruz ve Next diyerek devam ediyoruz.

Specify Replicas ekranın da Replicas sekmesinde Server Instance bölümünde ZEKISQLNOD01 isimli sunucumuzu görüyoruz. Initial role bölümünde Primary olarak görüyoruz. ZEKISQLNOD02 isimli sunucumuzu Secondary olarak yapılandıracağız.

Specify Replicas ekranın da Replicas sekmesinde Add Replica diyoruz. Connect to Server ekranın da NOD02 seçerek Connect

Specify Replicas ekranın da Replicas sekmesinde Automatic Failover (Up to 5) bölümüne işaretliyoruz ve Availability Mode bölümünü Synchronous commit olarak yapılandırıyoruz. Availability Group yapısını Synchronous ( Senkron ) ve Automatic ( Otomatik ) Failover olarak yapılandırmış olduk.

Specify Replicas ekranın da Replicas sekmesinde gerekli yapılandırmayı tamamladıktan sonra Endpoints sekmesine geçiyoruz. Default olarak gelen ayarlarda herhangi bir değişiklik yapmıyoruz.

Burada dikkat etmemiz gereken eğer sunucularımız üzerinde bir den fazla Instance kullanıyorsanız sunucularınız üzerinde her Instance için değişik bir Endpoint Port kullanmanız gerekmektedir. Örneğin 2 Instance varsa ilk Instance için Availability Group yapısını yapılandırırken Default olarak 5022 portu gelecektir. İkinci Instance’ınız için bir Availability Group yapısını yapılandıracağınız zaman Enpoint Port Number değiştirmelisiniz. İkinci Instance için 5023 portunu kullanabilirsiniz.

Specify Replicas ekranın da Endpoints sekmesinde gerekli yapılandırmayı tamamladıktan sonra Backup Preferences sekmesine geçiyoruz.

Prefer Secondary : Availability Group yapısı içinde aktif olarak yapılandırmış olduğunuz Secondary sunucu varsa otomatik Backuplar ortamınızda Secondary sunucusu üzerinden gerçekleşir. Eğer ortamınızda aktif bir Secondary sunucunuz yoksa Primary sunucusu üzerinden gerçekleşir.

Secondary only : Availability Group yapısı içinde bütün otomatik Backuplar ortamınızda bulunan Secondary sunucusu üzerinden gerçekleşmek zorundadır.

Primary : Availability Group yapısı içinde bütün otomatik Backuplar Primary sunucusu üzerinden gerçekleşmek zorundadır.

Any Replica : Availability Group yapısı içinde Backuplar Primary ve Secondary sunucularınız üzerinden gerçekleşebilir.

Specify Replicas ekranın da Backup Preferences sekmesinde gerekli yapılandırmayı Primary olarak seçtikten sonra Listener sekmesine geçiyoruz.

Specify Replicas ekranın da Listener sekmesinde Availability Group yapısı için Listener yapılandırıyor olacağız.

Peki Listener Nedir? : Ortamınızda Availability Group yapısı içinde iki sunucumuz var ve Database ( Veritabanı ) o anda hangi sunucuda aktif çalışıyor olursa olsun, Database ( Veritabanı ) ulaşacak olan uygulamalarınız ( Logo Tiger, Logo Bordro, Mikro, Eta, Nebim gibi ) yapılandırmış olduğunuz Listener IP Address ( Adresi ) üzerinden aktif olan sunucudaki Database ( Veritabanı ) gider. Listener Virtual ( Sanal ) bir Name ( İsmi ) ve Virtual ( Sanal ) bir IP Address ( IP Adresi ) olur. Uygulamalarınız ( Logo Tiger, Logo Bordro, Mikro, Eta, Nebim gibi ) SQL Server Always On yapısı içinde çalışan iki sunucunun Physical ( Fiziksel ) Name ( İsim ) ve Physical ( Fiziksel ) IP Address ( IP Adresi ) bilmez.

Specify Replicas ekranın da Listener sekmesinde Do not create an availability group listener now seçeneği ile Listener yapılandırmasını daha sonra yapabilirsiniz.

Specify Replicas ekranın da Listener sekmesinde Create an availability group listener seçeneği ile Listener DNS Name bölümünde Availability Group yapısı için bir Name ( İsim ) belirliyoruz. Port bölümünde Uygulamalarınız ( Logo Tiger, Logo Bordro, Mikro, Eta, Nebim gibi ) Availability Group yapısı içindeki Database ( Veritabanı ) bağlanacağı Port’u yazıyoruz. Network Mode bölümünü Static IP ( Statik IP ) olarak seçiyoruz.

Add IP Address ekranında Listener için gerekli IP Address ( IP Adresi ) yapılandırmasını yaparak OK diyoruz.

NOT : Burada Listener IP Address ( IP Adresi ) ortamınız da herhangi bir sunucu üzerinde kullanılmıyor olmasına dikkat etmenizi önemle belirtmek isterim.

Specify Replicas ekranın da Listener sekmesinde Network Mode bölümünü Static IP olarak gerekli yapılandırmamız geldiğini görüyoruz.

Specify Replicas ekranın da Ready-Only Routing sekmesinde herhangi bir değişiklik yapmıyoruz.

Select Initial Data Synchronization ekranın da Secondary sunucusu üzerine Database ( Veritabanı ) senkronizasyonun ilk yapılandırmasını nasıl yapacağımızı seçtiğimiz ekrandır.

Automatic seeding : Bu seçenek ile devam edersek eğer Secondary sunucusu üzerine Database ( Veritabanı ) senkronizasyonu için gerekli olan bütün işlemler Automatic ( Otomatik ) olarak gerçekleştirilecektir.

Full database and log backup : Bu seçenek ile devam edersek eğer her Database ( Veritabanı ) Full Backup ve Log Backup dosyalarını yapılandırmış olduğumuz Share ( Paylaşım ) üzerinden alarak Secondary sunucumuz üzerine kendisi aktarır ve bu işlem için sunucularımız üzerindeki Instance’ın SQL Server Servis hesaplarının Write ( Yazma ) ve Read ( Okuma ) yetkisi olan bir Share ( Paylaşım ) istemektedir. Yapılandırdığınız Share ( Paylaşım ) diskinde bulunan Database ( Veritabanı ) Full Backup ve Log Backup sığacağı kadar yer olmalıdır.

Join only : Bu seçenek ile seçtiğimiz her Database ( Veritabanı ) Full Backup ve Log Backup Manuel ( Manuel ) olarak alıp Manuel ( Manuel ) olarak Secondary sunucusuna bu adımı geçmeden önce kopyalamamız gerekir.

Skip initial data synchronization : Bu seçenek ile yine her Database ( Veritabanı ) Full Backup ve Log Backup Manual ( Manuel ) olarak alıp Manual ( Manuel ) olarak Secondary sunucumuz üzerine kopyalamamız gerekir. Ancak Join only seçeneğinden farklı olarak bu işlemi sonra yapabiliriz.

Select Initial Data Synchronization ekranın da Secondary sunucusu üzerine senkronizasyonun Automatic seeding seçeneğini seçiyoruz ve Next diyerek devam ediyoruz.

Validation ekranın da Availability Group yapısının kurulması için gerekli kontroller yapılıyor. Availability Group yapısının kurulumu için bütün adımları Success olarak görüyoruz. Eğer bir sorun varsa Error olarak görürdük ve Back diyerek geri gidebilirsiniz ve yanlış yaptığınız bir yapılandırma varsa yapılandırmayı düzelttikten sonra Re-run validation diyebilirsiniz.

Validation ekranın da Availability Group yapısının kurulması için herhangi bir sorun olmadığı için Next diyerek devam ediyoruz.

Summary ekranın da Availability Group yapısının kurulması için gerekli olan yapılandırmanın bir özetini görüyoruz.

Summary ekranın da Availability Group yapısının kurulması için gerekli olan yapılandırmanın bir özetini kontrol ettikten sonra Finish diyerek kurulumu başlatıyoruz. Script bölümünde Availability Group yapısı için yapılandırmış olduğunuz yapılandırmayı Script ( Senaryo ) olarak alabilirsiniz.

Progress ekranın da Availability Group yapısının kurulduğunu görüyoruz.

Results ekranın da Availability Group yapısının başarılı bir şekilde kurulduğunu görüyoruz. Close diyerek New Availability Group Wizard ekranını kapatıyoruz.

Failover Cluster Manager konsolunda Roles menüsünde ZEKISQLAOG ismi ile yapılandırmış olduğumuz Availability Group yapılandırmasını geldiğini görüyoruz.

Microsoft SQL Server Management Studio ( SSMS ) konsolunu üzerinde Always On High Availability altında bulunan Availability Groups altında bulunan ZEKISQLAOG ismi ile yapılandırmış olduğumuz Availability Group yapılandırmasını ZEKISQLNOD1 isimli sunucumuz üzerine geldiğini görüyoruz.

SQL Server Always On yapısına Replika Sunucu Eklemek

Önce Yeni Sunucumuzu Failover yapısına ekliyoruz.

“Failover Cluster Manager” ı açıyoruz. “Failover Cluster Manager” sekmesi üzerine sağ tıklıyoruz ve “Connect to Cluster” seçeneğini seçiyoruz.

Açılan ekranda oluşturmuş olduğumuz cluster’ ı seçiyoruz ve OK butonuna basıyoruz.

Ekleme tamamlandıktan sonra ekranın sağ tarafından “Add Node” sekmesini seçiyoruz.

Gelen ekranı Next diyerek geçiyoruz.

Gelen ekranda “Browse” diyerek sunucumuzu seçiyoruz.

Sunucu eklendikten sonra Next diyerek bir sonraki adıma geçiyoruz.

“Confirmation” ekranında değişiklik yapmadan Next diyoruz.

Ekleme işlemi tamamlandıktan sonra Finish diyerek işlemi bitiriyoruz.

Yeni sunucunun cluster yapısına eklendiğini göreceksiniz.

Cluster yapısına ekleme işlemi bittikten sonra SQL Studio’ yu açıp Primary Node’ a bağlanıyoruz.

Ekleyeceğimiz Replika sunucu farklı bir networkte olduğu için öncelikle bir listener IP belirleyip ekliyoruz.

SQL üzerinde “Always On High Availabilty” altında bulunan “Availabilty Group Listeners” daki listener grubun “Properties” ine gidiyoruz.

Açılan pencerede “Add” butonuna tıklıyoruz.

Belirlediğimiz yeni listener IP adresini yazıp “OK” butonuna basıyoruz.

Yeni IP adresinin eklendiğini görüyoruz. “OK” butonuna basarak işlemi tamamlıyoruz.

Listener IP adresini de ekledikten sonra yeni replica sunucu ekleme adımlarına geçebiliriz.

“Always On High Groups” sekmesi altında “Availabilty Groups” içerisinde “Availabilty Replicas” a sağ tıklayarak “Add Replica” diyoruz.

Gelen ekrana Next diyerek geçiyoruz.

AlwaysOn grup içindeki diğer sunucuya Connect oluyoruz ve Next diyerek devam ediyoruz.

“Add Replica” diyerek ekleyeceğimiz sunucuyu seçiyoruz.

Gelen ekranda “Automatic Failover” seçeneğini seçiyoruz ve “Availability Mode” kısmını “Synchronous commit” olarak değiştiriyoruz. Diğer sekmelerde herhangi bir değişiklik yapmadan devam ediyoruz.

“Select Data Synchronization” ekranını “Automatic seeding” te bırakarak devam ediyoruz.

Summary ekranında bilgileri gözden geçirdikten sonra Finish tıklayarak replika sunucu ekleme işlemini tamamlıyoruz.

Bir yanıt yazın