Bu makalede iki node’lu bir sistemde AlwaysOn yapısında sql server upgrade işlemini ele alacağız. Bu işlemlerin sırasıyla nasıl yapılacağını görelim. Test ortamında kurmuş olduğum yapı ile örneğimizi yapalım. Veri akışını tamamen kesmeden yapılan kesintisiz yükseltme işlemine Rolling Upgrade denilmektedir.
AlwaysOn yapımızda kesintisiz sql server’ımızı upgrade için aşağıdaki adımların izlenmesi lazım upgrade işleminin önce secondary makinede yapılması gerekmektedir. Secondary makinesi upgrade yapıldıktan sonra switch-over işlemine tabi tutulur. Upgrade yaptığım sunucu yeni primary makinamız olur.
Upgrade işlemlerinden önce AlwaysOn properties ekranı açılır. Burada failover modun manuel’e çekilmesi lazımdır. Çünkü herhangi bir sorun hanında failover işlemi gerçekleşmesin diyedir.

Failover mode manuel alma işlemi:
ALTER AVAILABILITY GROUP [AG_Name] SET (FAILOVER_MODE = MANUAL);
Primary sunucusunda failover mode işlemi manuel’e çekildikten sonra secondary sunucumuzdan upgrade işlemini yapabiliriz.
Elimde hazır bulunan Sql Server 2019 setup klasörünü ilgili sunucularıma kopyalıyorum. Sizin elinizde herhangi bir setup klasörü yoksa microsoft’un sayfasından temin edebilirsiniz.

Secondary sunucumda availability databases sekmesinin altında AlwaysOn yapısına dahil veritabanımızı suspend moduna alıp veri akışını kesmiş oluyoruz. Primary sunucusunda secondary makinası suspend modunada alınabilir. Database bazlı suspend çok veritabanımız varsa zahmetli olabilir. ilgili replicada çıkarılabilir. Daha sonra replica altında bulunan veritabanları Skip initial data synchronization modunda eklenmektedir. Bu modla eklendikten sonra secondary sunucusunda join edilmesi gerekmektedir. Replica eklendikten sonra veritabanlarının bir diğer ekleneceği yöntem Join Only yöntemidir. bu yöntemde eklendiğinde veritabanları hemen senkron olmaktadır. Herhangi bir işlem gerektirmemektedir. Bu biraz sıkıntılı bir durumdur. Database sayımız az olduğu için bu yöntemle yapmıyoruz.
Bu işlemler yapılmayıp upgrade işleminden sonra secondary sunucusu restart yapılmaktadır.

Secondary makinasında veri akışını kesmiş oluyorum.

AlwaysOn’daki veritabanımı suspend moduna almış oldum. Artık secondary sunucusunda bulunan databaselere veri akışı olmayacak.

Not: Birden fazla veritabanı varsa Secondary replicayı kopartmamız gerekmektedir. Primary olan sunucu üzerinde çalıştırılması gerekmektedir.
ALTER AVAILABILITY GROUP [AG_NAME] REMOVE REPLICA ON 'SECONDARY_REPLICA'
Upgrade işlemine geçmeden önce sunucumdaki mevcut sql server sürümünü görelim. Mevcut sql Server 2017 görünmekte.

Sunucuma yüklediğim setup’a sağ tıklayıp Run as administrator’a tıklıyorum.

Installation ekranında Upgrade from a proveious of SQL Server kısmına tıklıyorum.

Gelen ekranda Enter the product key bölümünde seçili olan lisans anahtarımız geliyor. Elimde lisans anahtarı olduğu için Next dedip bir sonraki aşamaya geçiyoruz.

Daha sonra gelen ekranda I accept the license term and deyip Next deyip bir sonraki ekrana geçiyorum.

Gelen ekranı Next deyip geçiyoruz.

Gelen ekranda hangi instance’ı upgrade yapacaksak onu seçiyoruz. Benim TEST adında tek bir instance’ım olduğu için bu yapıyı seçiyorum. Next deyip bir sonraki aşamaya geçiyorum.

TEST instance’ın üzerinde kurulu olan features ekranını gördükten sonra Next deyip bir sonraki aşamaya geçiyoruz.

Gelen ekranda herhangi bir değişiklik yapmadan Next deyip bir sonraki aşamaya geçiyorum.

Gerekli kontroller yapıldıktan sonra artık özet ekranımız karşımıza gelmiş bulunmakta, bu ekranda gerekli kontrolleri yaptıktan sonra Upgrade işlemini yapıyorum.

Sql Server 2017’den Sql Server2019’a geçişimiz başlamış durumda.

Kurulumumuz başarılı bir şekilde gerçekleşmiş oldu. Bizden sunucumuzu restart etmemizi söylüyor bu yüzden sunucumda restart işlemini başlatıyorum.


Sunucuma restart’ı verdikten sonra SSMS arayüzünde Sql Server 2019 upgrade işlemi olmuş mu kontrol edelim. Windows bölümünden kurulumun yapıldığını görmüş oluyoruz.


Başarılı bir şekilde upgrade işlemini yapmış olduk.
Secondary sunucusunda upgrade işlemi başarılı bir şekilde olduktan sonra tekrar AlwaysOn yapımızda suspend moda almış olduğumuz database’i tekrar Resume Data Movement yapıyoruz.

Veritabanımızı tekrar AG altına almış olduk.

Primary ve Secondary sunucuları senkron olduktan sonra switch-over işlemi yapıyorum. İlgili AG üzerine sağ tıklayıp failover işlemine başlıyorum.

Failover işlemi başarılı bir şekilde gerçekleşmiş oldu.

Setup klasörünü çalıştırmadan önce yeni secondary sunucumda veritabanına gelen veri akışını kesmem gerekiyor. Availability databases sekmesinin altında AlwaysOn yapısına dahil veritabanımızı suspend moduna alıp veri akışını kesmiş oluyoruz.

AlwaysOn’daki veritabanımı suspend moduna almış oldum. Artık secondary sunucusunda bulunan databaselere veri akışı olmayacak.

Elimde hazır bulun Sql Server 2019 setup klasörünü ilgili sunucuma kopyalıyorum. Sizin elinizde herhangi bir setup klasörü yoksa microsoft’un sayfasından temin edebilirsiniz.

Upgrade işlemine geçmeden önce sunucumdaki mevcut sql server sürümünü görelim. Mevcut sql server 2017 görünmekte.

Sunucuma yüklediğim setup’a sağ tıklayıp Run as administrator’a tıklıyorum.

Installation ekranında Upgrade from a provious of SQL Server kısmına tıklıyorum.

Gelen ekranda Enter the product key bölümünde seçili olan lisans anahtarımız geliyor. Next dedikten sonra bir sonraki aşamaya geçiyoruz.

Daha sonra gelen ekranda I accept the license term and deyip Next deyip bir sonraki ekrana geçiyorum.

Gelen ekranı Next deyip geçiyoruz.

Gelen ekranda hangi instance’ı upgrade yapacaksak onu seçiyoruz. Benim TEST adında tek bir instance’ım olduğu için bu yapıyı seçiyorum. Next deyip bir sonraki aşamaya geçiyorum.

TEST instance’ın üzerinde kurulu olan features ekranını gördükten sonra Next deyip bir sonraki aşamaya geçiyoruz.

Gelen ekranda herhangi bir değişiklik yapmadan Next deyip bir sonraki aşamaya geçiyorum.

Gelen ekranda bir değişiklik yapmadan Next diyiyorum.

Gelen ekranda import seçeneğine tıklayıp bir sonraki adıma geçiyorum. Full-Text features yapımız varsa önceden bu seçenek seçilerek eklenmesi tekrardan yapılmaktadır.

Gerekli kontroller yapıldıktan sonra artık özet ekranımız karşımıza gelmiş bulunmakta, bu ekranda gerekli kontrolleri yaptıktan sonra Upgrade işlemini yapıyorum.

Sql Server 2017’den Sql Server2019’a geçişimiz başlamış durumda.

Kurulumumuz başarılı bir şekilde gerçekleşmiş oldu. Bizden sunucumuzu restart etmemizi söylüyor bu yüzden sunucumda restart işlemini başlatıyorum.


Sunucuma restart’ı verdikten sonra SSMS arayüzünde Sql Server 2019 upgrade işlemi olmuş mu kontrol edelim. Windows bölümünden kurulumun yapıldığını görmüş oluyoruz.


Başarılı bir şekilde upgrade işlemini yapmış olduk.
Secondary sunucusunda upgrade işlemi başarılı bir şekilde olduktan sonra tekrar AlwaysOn yapımızda suspend moda almış olduğumuz database’i tekrar Resume moda alıyoruz.

Veritabanımızı tekrar AG altına almış olduk.

Primary ve Secondary sunucuları senkron olduktan sonra switch-over işlemi yapıyorum. Başlangıçta primary olan S1 sunucuma failover işlemi yapıyorum.

Failover işlemi başarılı bir şekilde gerçekleşmiş oldu.


Sonuç olarak iki node’lu S1 ve S3 sunucumda Sql Server 2017’den Sql Server 2019’a herhangi bir veri kaybı olmadan geçiş yapmış olduk. Başka bir makalede görüşmek üzere.
“İlminle övünme, Şeytan’a bak!” Araf-12