Anasayfa » SQL Server 2019 Always ON Kurulumu Bölüm 1

Makaleyi Paylaş

SQL Server

SQL Server 2019 Always ON Kurulumu Bölüm 1

Merhaba, bu makale serimizde SQL Server 2019 versiyonu üzerinde Always ON kurulumunu ele alıyor olacağız. Sözü fazla uzatmadan bu Always ON nedir öncelikle bunu ele alarak makalemize başlayalım. SQL Server Always ON Yüksek erişe bilirlik üzerine kurulmuş SQL Server mimarilerinden bir tanesi olup, en gelişmişidir.

Yüksek Erişilebilirlik artık günümüzün olmazsa olmaz mimarileri arasındadır. Kurumlar, kuruluşlar artık birçok iş yükünü bilgisayar ortamı üzerine aktarmış durumdadır. Bu sistemler olamadan bu kurum ve kuruluşların var olma sebebi ortadan kalkacak desek abartmış olmayız. Bu nedenle bu sistemleri yapılandırırken sistemlerin sürekliliğinin sağlanması hizmet kesintisi olmaması adına yüksek erişilebilirlik mimarisi çok önem arz etmektedir.

Yüksek Erişilebilirlikle birlikte Sistemsel, Donanımsal, Doğal Afet ( Sel, Yangın, Deprem),Terör eylemlerine karşın kesintisiz çalışma öngörülmüştür. Buradan da anlayabileceğimiz gibi yüksek erişilebilirlik için öncelikle gerekli alt yapının kurulması ve bu alt yapı üzerindeki üst yapının devreye alınması ve yükün değişik bölgelere dağıtımı önem arz etmektedir.

Örnek olarak bir bölgede meydana gelecek olan yangın esnasında bir DataCenter devre dışı kalacak olur ise sistemlerin bundan etkilenmeden çalışması için yüksek erişilebilirlik mimarisinin farklı lokasyonlar üzerine dağıtılması gerekmektedir. Bu bir bakımı sürekli olarak duyduğumuz Disaster Recovery teriminin karşılığıdır.


Gerekli bir ön giriş yaptıktan sonra makalemize konu olan Always ON yapısını ele aldığımızda, Always ON SQL Server üzerinde kesintisiz çalışma esasına dayanmaktadır. SQL Server üzerinde kurum ihtiyaçlarına göre farklı seviyede uygulanan SQL Server Mirroring, SQL Server Log Shipping gibi farklı mimariler bulunmaktadır. Ancak SQL Server Always ON bunlardan en gelişmişidir. Tabi dolayısı ile en maliyeti yüksek olanıdır.

SQL Server Always ON gereksinimlerini ilerleyen adımlarda ele alacağız ancak temel olarak bu mimarisinin kurum ve kuruluşlarda devreye alınabilmesi için ortamımızda Windows Server Failover Cluster yapısı içinde en az iki sunucuya ihtiyacımız vardır. Bunların aynı network üzerinde olması yeterlidir. Bir tanesi İstanbul diğeri Yozgat’ta veya bir tanesi Yozgat’ta diğeri Azure, Amazon veya Google Cloud üzerinde olabilir.

Sql Server üzerindeki mimariler üzerine daha önce makaleler ele almıştık. Bu nedenle Log Shipping, Mirroring gibi senaryoları anlatmadan pas geçiyor olacağım. SQL Always ON yapısında sistem senkron ve asenkron olarak çalışabilmektedir. Bunu biraz daha açacak olursak, senkron yapıda ortamdaki birincil veritabanı üzerine gelen bir istek ortamdaki ikincil verit banı üzerine işlenmeden bir sonuç döndürmeyecektir. Bu dolayısı ise yoğun olarak çalışan verit banı mimarilerinde mini bir performans sorunu oluşturabilir. Otomatik olarak Failover mimarisini desteklediğinden dolayı sorun teşkil etmeyecektir. Örnek olarak bir sunucunun donanımsal veya yazılımsal bir sebeple down olması durumunda üzerindeki iş yükünü grubun diğer üyesine devredecektir. Asenkron yapıda ise birincil verit banına gelen bir istek anında bir sonuç döndürüp, sonrasında ise ikinci sunucuya senkronizasyon sağlayacaktır. Bu aradaki senkronizasyon için belirli bir süre yoktur. Ortamdaki donanım ve network bileşenlerinin durumuna göre bir süre alacaktır. Tabi burada bahsi geçen süreler çok kısa sürelerdir. Çoğu zaman senkron moddan ayırt bile edilemeyecek durumdadır.

Always ON yapısında sunucuların oluşturduğu yapı Database Availability Group olarak adlandırılır. Failover anında otomatik olarak yük devri için Senkron mod kullanım şarttır. Ancak bu işlemi manuel olarak yapmakta mümkündür tabi bunların bazı istisnaları bulunmaktadır.

Bunlara kısaca değinecek olursak, Otomatik Failover Availability Group yapısına dahil bir Veri tabanında meydana gelecek bir hata sonucu gerçekleşmez. Availability Replica seviyesinde gerçekleşir. Availability Group yapısında Veri tabanı bozulma yaşaması durumunda Otomatik Failover işlemi gerçekleşmez.

Genel bilgilerden sonra kurulum adımlarına başlayabiliriz. Öncelikle sizlere biraz ortamımı anlatmak istiyorum. Tabi bunun öncesinde mimarisinin kurulabilmesi için birkaç temel kriter noktasında bilgi vermek istiyorum.

-İki sunucu ile Always On kuracağımızı düşünürsek bu sunucuların üzerine kurulacak olan SQL Server’lar için servis hesabının ortak bir hesap olması gerekiyor. Bu durumda Active Directory üzerinde bir hesap olması tavsiye edilmektedir. Always ON yapısı her ne kadar Workgroup olarak yapılandırılabiliyor olsa bile, bu metotla kurulum tercih edilmemektedir.

-Ortamdaki sunucuların aynı donanım seviyelerinde, aynı disk boyutlarında hatta sürücü isimlerinin aynı olması önemlidir.

-Sunucuların Bölge ayarlarının United States olarak yapılandırılmış olması gerekmektedir.

-Sunucular üzerinde Windows Firewall devre dışı olmalı veya detaylı port listesi bulunarak izinler sağlanmalıdır.

-Sunucuları üzerindeki Windows güncellemelerinin yapılması ve aynı seviyede olması gerekmektedir.

SQL server üzerinde Always on yapısını kurabilmemiz için buna uygun olan lisansa sahip olmamız gerekmektedir. Aşağıda SQL server üzerinde kurgulanabilecek mimarilerin lisanslar bakımından bu özellikleri içerip içermediği tabloda ele alınmıştır. Always ON farklı mimariler şeklinde uygulanabilir. Biz bunların en efektifi ve gelişmişi olan Always On Awailability Groups mimarisini ele alacağımız için Enterprise lisans versiyonuna sahip olmamız gerektiğini görebiliyoruz.

Ortamımızı inceleyecek olursak ortamımızda bir DC isimli Domain Controller sunucumuz bulunuyor. Yine aynı ortam içerisinde SQL Always ON mimarisini kuracağımız SQL-Server1 ve SQL-Server2 isimli sunucularımız bulunmakta. Tüm sunucularımız aynı network ve ip bloğunda yer alıyor. Bu sunucuların farklı ortamlarda, farklı networkler üzerinde olması da mümkün tek koşulumuz iletişim kurabilmeleri. Ayrıca Always ON mimarisi içinde olan SQL-Server1 ve SQL-Server2 sunucularımız kendi aralarında hotbird networkü üzerinden haberleşmektedir. Test ortamımız içerisindeki tüm sunucularımız üzerinde Windows Server 2019 Datacenter kurulu durumdadır. SQL Always ON mimarisi için sunucu işletim sistemlerinin Datacenter veya Standart olması fark oluşturmamaktadır. Şimdi konu hakkında genel bilgi verdikten sonra ve ortamımızı detaylıca tanıttıktan sonra kurulum adımlarına geçebiliriz.

Rizasahan.lokal etki alanında yer alan DC isimli Domain Controller sunucumuzu görüyoruz.

İp adresimiz mimarimizdeki network bloğundan olan 10.81.2.250 ip adresini almış durumda.

SQL Always ON kurulumu sırasında bir adet servis hesabı ihtiyacımız olduğunu belirtmiştik. AD Domain Controller Sunucumuz üzerinde SQL DAG isimli servis hesabımızın oluşturulduğunu görebiliyoruz.

Ortamımızda yine mimarimiz için gerekli olan SQL sunucularımızdan bir tanesini görebiliyoruz. Windows Server 2019 DataCenter işletim sistemi kurulmuş, SQL-Server1 ismi ile rizasahan.lokal etki alanına üye edilmiş durumda.

Üzerinde hem normal network ile görüşmek için ağ kartı hem de diğer SQL sunucumuz ile doğrudan görüşebilmesi için Hotbird ağ kartı yer almaktadır.

İp adresini ele alacak olursak, Sunucu network ağ kartımızda normal network bloğundan olan 10.81.2.251 ip adresine sahibiz.

Hotbird ağ kartımızda ise iki SQL sunucunun kendi arasında görüşebileceği farklı bir bloktan ip olan 10.10.10.10 ip adresini almış durumda. Ayrıca bu ip adresinin DNS üzerinde gereksiz bir kayıt oluşturmaması için Register this conenction’s addresses in DNS kutucuğunun işareti kalkmış durumda.

Sunucumuz üzerinde Firewall kapalı durumda. Gerekli port listesini alıp buna göre firewall üzerinden sadece bu portlara izin verilerek firewall aktif duruma alınabilir. Biz test ortamında olduğumuz için bunu göz ardı ediyoruz.

Son olarak ikinci SQL-Server2 sunucumuza bakacak olursak üzerinden Windows Server 2019 Datacenter versiyonu kurulu durumda. SQL-Server2 ismi ile rizasahan.lokal etki alanına üye edilmiş durumda.

Bu sunucumuz üzerinde yine hem normal network ile görüşmek için ağ kartı hem de diğer SQL sunucumuz ile doğrudan görüşebilmesi için Hotbird ağ kartı yer almaktadır.

Bu sunucumuzun da İp adresini ele alacak olursak, Sunucu network ağ kartımızda normal network bloğundan olan 10.81.2.252 ip adresine sahibiz.

Bu sunucumuzda yine Hotbird ağ kartımızda ise iki SQL sunucunun kendi arasında görüşebileceği farklı bir bloktan ip olan 10.10.10.20 ip adresini almış durumda. Ayrıca bu ip adresinin DNS üzerinde gereksiz bir kayıt oluşturmaması için Register this conenction’s addresses in DNS kutucuğunun işareti kalkmış durumda.

Sunucumuz üzerinde Firewall kapalı durumda. Gerekli port listesini alıp buna göre firewall üzerinden sadece bu portlara izin verilerek firewall aktif duruma alınabilir. Biz test ortamında olduğumuz için bunu göz ardı ediyoruz.

Bu geniş makale girişinden sonra artık adımlarımızı atalım. SQL-Server1 isimli sunucumuzda Server Manager konsolumuzu açarak öncelikle Failover Clustering rolümüzü kurmak için Add Roles and Features linkine tıklayalım.

Sihirbaz ekranını Next ile geçelim.

Açılan ekranımızda iki seçeneğimiz yer almaktadır. Bunlardan birincisi olan;

Role-based or feature-based insallation : Rol ve Özellik bazında ekleme kurulum yapma imkânı verir. Windows Server 2019 içerisinde sahip olduğumuz sürüme göre, içerisinde bulunan ve ihtiyacımız olan rol ve özellikleri buradan ekleyip kaldırabilmekteyiz.

Remote Desktop Services installation: Eski zamanlarda Terminal Servis olarak anılan ve şimdi RDS (Remote Desktop Services) uzak masaüstü yapılandırmasını hızlı ve standart olarak buradan yapabilmekteyiz.

Bu nedenle biz Failover Clustering özelliğini kuracak olduğumuz için Role-based or feature-based insallation seçimini yaparak Next ile ilerliyoruz.

Windows Server 2008 ,2012, 2016 ve 2019 ile sunucu kümesi oluşturarak bu küme üzerine toplu olarak ve farklı bir sunucu üzerinden Rol ve Özellik ekleme ve kaldırma işlemleri yapabilir duruma geldik. Tabi bu işlem Windows Server 2012, 2016 ve 2019 üzerinden doğrudan yapılabilirken Windows Server 2008’e bazı özellikler katmamız gerekiyordu. Bizim ortamımızda bu işlemleri her sunucunun kendi üzerinde ayrı ayrı olduğundan adı, ip adresi ve versiyon bilgisi sunulan sunucumuzu seçerek Next ile ilerliyoruz.

Biz bir rol kurmayacağımız için özellik ekleme ekranı olan bir sonraki ekrana Next ile ilerliyoruz.

Özellik ekleme ekranında Failover Clustering özelliğini eklemek için seçelim.

İlgili özelliğin eklenebilmesi için ihtiyaç duyulan bileşenlerin listesi geldi. Biz bunların otomatik olarak kurulumunun yapılması için çıkan ekranda Add Features butonuna tıklayalım.

Özelliğimiz seçili duruma geldi Next ile sonraki adıma ilerleyelim.

Bu özellik ekleme işlemi sırasında yeniden başlatma gerekir ise bunun otomatik olarak gerçekleşmesi için Restart the destination server automatically if requred seçimini işaretleyebiliriz. Ben gerekmesi durumunda bunu manuel olarak yapacağım için kurulum adımlarını başlatıp tamamlamak için Install butonuna tıklıyorum.

Özelliğimizin kurulum adımları başladı. Failover Clustering özelliğimiz kuruldu. Close ile bu ekranımızdan çıkabiliriz.

Failover Cluster Manager konsolumuzu açabiliriz.

Konsolumuz açıldı. Bu sunucumuz üzerinde buraya kadar olan işlemlerimiz tamamlandı. Aynı işlemleri ikinci sunucumuz üzerinde gerçekleştireceğiz.

SQL-Server2 isimli sunucumuzda Server Manager konsolumuzu açarak öncelikle Failover Clustering rolümüzü kurmak için Add Roles and Features linkine tıklayalım.

Sihirbaz ekranını Next ile geçelim.

Açılan ekranımızda iki seçeneğimiz yer almaktadır. Bunlardan birincisi olan;

Role-based or feature-based insallation : Rol ve Özellik bazında ekleme kurulum yapma imkânı verir. Windows Server 2019 içerisinde sahip olduğumuz sürüme göre, içerisinde bulunan ve ihtiyacımız olan rol ve özellikleri buradan ekleyip kaldırabilmekteyiz.

Remote Desktop Services installation: Eski zamanlarda Terminal Servis olarak anılan ve şimdi RDS (Remote Desktop Services) uzak masaüstü yapılandırmasını hızlı ve standart olarak buradan yapabilmekteyiz.

Bu nedenle biz Failover Clustering özelliğini kuracak olduğumuz için Role-based or feature-based insallation seçimini yaparak Next ile ilerliyoruz.

Windows Server 2008 ,2012, 2016 ve 2019 ile sunucu kümesi oluşturarak bu küme üzerine toplu olarak ve farklı bir sunucu üzerinden Rol ve Özellik ekleme ve kaldırma işlemleri yapabilir duruma geldik. Tabi bu işlem Windows Server 2012, 2016 ve 2019 üzerinden doğrudan yapılabilirken Windows Server 2008’e bazı özellikler katmamız gerekiyordu. Bizim ortamımızda bu işlemleri her sunucunun kendi üzerinde ayrı ayrı olduğundan adı, ip adresi ve versiyon bilgisi sunulan sunucumuzu seçerek Next ile ilerliyoruz.

Biz bir rol kurmayacağımız için özellik ekleme ekranı olan bir sonraki ekrana Next ile ilerliyoruz.

Özellik ekleme ekranında Failover Clustering özelliğini eklemek için seçelim.

İlgili özelliğin eklenebilmesi için ihtiyaç duyulan bileşenlerin listesi geldi. Biz bunların otomatik olarak kurulumunun yapılması için çıkan ekranda Add Features butonuna tıklayalım.

Özelliğimiz seçili duruma geldi Next ile sonraki adıma ilerleyelim.

Bu özellik ekleme işlemi sırasında yeniden başlatma gerekir ise bunun otomatik olarak gerçekleşmesi için Restart the destination server automatically if requred seçimini işaretleyebiliriz. Ben gerekmesi durumunda bunu manuel olarak yapacağım için kurulum adımlarını başlatıp tamamlamak için Install butonuna tıklıyorum.

Failover Clustering özelliğimiz kuruldu. Close ile bu ekranımızdan çıkabiliriz.

Failover Cluster Manager konsolumuzu açabiliriz.

Konsolumuz açıldı. Bu sunucumuz üzerinde de buraya kadar olan işlemlerimiz tamamlandı. Şimdi cluster kurulumuna geçmeden bir test işlemi yapabiliriz. Bu adım için Validate Configuration… linkine tıklayabiliriz.

Sihirbaz ekranını Next ile geçelim.

Test işlemine tabi olarak sunucuları belirlemek için Browse… butonuna tıklayalım.

Sql-server1 ve Sql-server2 sunucularımı buldurduktan sonra OK butonuna tıklayalım.

Test işlemi yapılacak olan sunucuların seçiminden sonra Next ile sonraki adıma ilerleyelim.

Run all tests (recommended) seçimini yaparak tüm testlerin gerçekleşmesini sağlaman için Next ile sonraki adıma ilerleyelim.

Yapılacak olan işlemlerin bir özeti geldi. Next ile ilerleyelim.

Test işlemlerimiz başladı sistemdeki sorunsuzluk ve donanım özelliklerine göre kısa bir zaman dilimi bu işlemler sürecektir.

Birkaç uyarı ile test işlemimiz tamamlandı. View Report… ile rapora göz atabilir ve sonrasında Finish ile test işlemimizi tamamlayabiliriz.

Test işlemi sırasında disk bağlantılarımız olmadığı için bunun haricindeki testlerimizin sorunsuz olduğunu görüyoruz. Tercihlere göre Witness sunucu kullanacak mimarilerde iki sunucunun erişim sağlayacağı bir disk kullanabilir. Biz Witness kullanmayacağımız için disk ekleme işlemi yapmayacağız.

Özet: Makalemizin bu adımında SQL Mimarilerinden bahsettik. Geniş olarak Always ON konusuna değindik. Always ON kurulumu için gerekli olacak SQL Server versiyon bilgisine değindik. Kurulum yapabilmek için gerekli olacak ön gereksinimlerden bahsettik. Bunların sonrasında ise kurulum yapacak olduğumuz ortamı ve yapılandırma özelliklerini şema üzerinde inceleyip sunucular üzerinde Failover Clustering özelliklerini kurarak, cluster test işlemi yaptık. Bundan sonraki makalemizde ise SQL Server kurulum adımları, Sql Management Studio Kurulum adımları ve SQL Server Cluster kurulum adımlarını ele alıyor olacağız.

Umarım yararlı olmuştur. Sonraki makalemizde görüşmek dileğiyle.

SQL Server 2019 Always ON Kurulumu Bölüm 2

SQL Server 2019 Always ON Kurulumu Bölüm 3

SQL Server 2019 Always ON Kurulumu Bölüm 4

Makaleyi Paylaş

www.rizasahan.com

6 Yorum

  1. You are awesome Sir, Salute to your effort

    Cevapla
  2. Hocam, Elinize sağlık.

    Cevapla
  3. Eline sağlık Rıza, gerçekten çok ciddi bir emek var tüm makale serisinde. Bu konuda referans olacak bir makale yazmışsın. Tebrikler.

    Cevapla

Cevap bırakın

Email adresiniz gizli kalacak Zorunlu alanlar * olarak işaretlenmiştir

Bunları kullanabilirsinizHTML etiketler ve öznitelikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>