Microsoft SQL Server 2019 Always ON Yapısına Database Restore Etmek


Merhaba

Daha önceki yazılarımız da Microsoft SQL Server 2016 Failover Cluster Kurulumu, Microsoft SQL Server 2017 Failover Cluster KurulumuMicrosoft SQL Server 2017 Failover Cluster Kurulumu, Microsoft SQL Server 2019 Kurulumu, Microsoft SQL Server Management Studio 18.4 KurulumuMicrosoft SQL Server 2019 Failover Cluster Kurulumu, Microsoft SQL Server 2019 Failover Cluster Yapısına Sunucu Eklemek, Microsoft SQL Server 2019 Failover Cluster Yapısına Database Oluşturmak, Microsoft SQL Server 2019 Failover Cluster Yapısına Database Eklemek ve Microsoft SQL Server 2019 Always ON Kurulumu, Microsoft SQL Server 2019 Always ON Yapısına Sunucu Eklemek ve Microsoft SQL Server 2019 Always ON Yapısına Database Eklemek sizlerle paylaşmıştık.

Bu yazımızda da Microsoft SQL Server 2019 Always ON yapısınına Database ( Veritabanı ) Restore ( Geri Yükleme ) etmeyi ve sonrasında Microsoft SQL Server 2019 Always ON yapısınına eklemeyi anlatacağız.

Peki Nedir SQL Server Always ON :

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 ) Istanbul’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 ) hizmetlerinde 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 ihtiyac 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ı ) 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ısanız eğer. Primary Database ( Veritabanı ) veritabanına gelen bir istek Secondary Database ( Veritabanı ) işlenmeyi beklemeden direk 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ırabiliriz. 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ını 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.

Daha önceki Microsoft SQL Server Management Studio 18.4 Kurulumu sizlerle paylaşmıştık. BAKICUBUKAO isimli Availability Group yapısı üzerine Connect diyerek bağlanıyoruz.

BAKICUBUKAO isimli Availability Group yapısı üzerinde sağ tuş Restore Database… diyerek daha önce Backup ( Yedek ) aldığımız bir Database ( Veritabanı ) dosyasını Microsoft SQL Server sunucumuz üzerine Restore ( Geri Yükleme ) ediyoruz.

Restore Database ekranı geliyor karşımıza.

Restore Database ekranın da Device bölümünde Restore ( Geri Yükleme ) edeceğimiz Database ( Veritabanı ) seçeceğiz.

Select backup devices ekranın da Add diyoruz.

Locate Database File – W19SQL19NOD1 ekranın da NIHATCUBUK.bak isimli BAK uzantılı Backup Database ( Veritabanı ) seçerek OK diyoruz.

Select backup devices ekranın da OK diyoruz.

Restore Database ekranın da Database bölümüne NIHATCUBUK isimli Database ( Veritabanı ) geldiğini görüyoruz. Restore plan bölümü altında bulunan Backup sets to restore bölümünde NIHATCUBUK isimli Database ( Veritabanı ) bilgilerini görüyoruz.

Restore Database ekranın da Files menüsüne tıklıyoruz.

Restore Database ekranın da Files menüsünde NIHATCUBUK isimli Database ( Veritabanı ) hangi dizin altına Restore ( Geri Yükleme ) edileceğini yapılandıracağız.

Restore Database ekranın da Files menüsünde Original File Name bölümünde NIHATCUBUK isimli Database ( Veritabanı ) hangi dizin altından Backup ( Yedek ) alındığını görüyoruz.

Restore Database ekranın da Files menüsünde Restore As bölümünde NIHATCUBUK isimli Database ( Veritabanı ) hangi dizin altına Restore ( Geri Yükleme ) edileceğini görüyoruz.

Restore Database ekranın da Restore database files as seçeneğini seçerek NIHATCUBUK isimli Database ( Veritabanı ) hangi dizin altına Restore ( Geri Yükleme ) edileceğini yapılandırıyoruz.

Restore Database ekranın da Relocate all files to folder seçeneğini seçtikten sonra NIHATCUBUK isimli Database ( Veritabanı ) SQL Always ON yapısı üzerindeki dizinler altına Restore ( Geri Yükleme ) için yapılandırıyoruz.

Restore Database ekranın da Options menüsüne tıklıyoruz.

Restore Database ekranın da Files menüsünde NIHATCUBUK isimli Database ( Veritabanı ) Restore ( Geri Yükleme ) işlemi için ne tür opsiyonların olacağını yapılandırıyoruz.

Overwrite the existing database (WITH REPLACE) seçeneği restore edeceğiniz Database ( Veritabanı ) varsa yüklediğiniz restore dosyasının var olan veritabanını ezmesini sağlar.

İkinci seçenek de tail log backup almasına yardımcı olur. Tail Log backup konusuna yazının devamında değineceğiz. son seçenekte restore işleminde kullanıcıların üzerine yazdığımız veritabanına olan erişimlerini kısıtlamak için kullanılabilir.

Recovery State kısmında ise eğer restore işlemimiz tek adımlık bir işlemse o zaman Restore With Recovey seçeneği ile devam ediyoruz fakat Full backupımızın üzerine Diff veya Tran Log backupları da yükleyeceksek o zaman son adıma kadar gerçekleştirdiğimiz son restore işlemine kadar her seferinde Restore With Norecovery seçeneğini seçiyoruz, bu veritabanımızın Restor modda olduğunu ve işlemin bitmediğini temsil eder ta ki son Log backupı yükleme kısmına geçene kadar son adımda tekrar Restore With Recovery seçeneğinde bırakıp restore işlemini sonlandırıyoruz ve veritabanımızın son haline ulaşmış oluyoruz.

Restore Database ekranın da gerekli yapılandırmayı tamamladıktan sonra OK diyoruz.

Restore Database ekranın da NIHATCUBUK isimli Database ( Veritabanı ) Restore ( Geri Yükleme ) işleminin başarılı bir şekilde tamamlandığını görüyoruz.

NIHATCUBUK isimli Database ( Veritabanı ) Restore ( Geri Yükleme ) edildiğini görüyoruz.

Microsoft SQL Server Management Studio ( SSMS ) konsolunu üzerinde Always On High Availability altında bulunan Availability Groups altında bulunan BAKICUBUKAO ismi ile yapılandırmış olduğumuz Availability Group yapılandırmasında Availability Database sekmesi altında BAKICUBUK ve MUGECUK isimli Database ( Veritabanı ) görüyoruz.

NIHATCUBUK isimli Database ( Veritabanı ) SQL Server Always ON yapısına dahil etmek için Availability Groups altında bulunan BAKICUBUKAO ismi ile yapılandırmış olduğumuz Availability Group yapılandırması üzerinde sağ tuş Add Database diyebiliriz.

NIHATCUBUK isimli Database ( Veritabanı ) SQL Server Always ON yapısına dahil etmek için Availability Database sekmesinde sağ tuş Add Database diyebiliriz.

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.

Select Databases ekranın da Availability Group dahil edeceğimiz Database ( Veritabanı ) seçmemiz gerekiyor. Daha önce Availability Group yapısına dahil ettiğimiz BAKICUBUK ve MUGECUK isimli Database ( Veritabanı ) Status bölümünde Already part of this availability group olarak görüyoruz. Availability Group yapısına dahil edeceğimiz NIHATCUBUK isimli Database ( Veritabanı ) Status bölümünde Meets prerequisities olarak görünüyor. 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 NIHATCUBUK isimli Database ( Veritabanı ) Status bölümünde Meets prerequisities olarak görüyoruz. NIHATCUBUK isimli Database ( Veritabanı ) seçiyoruz ve Next diyerek devam ediyoruz.

Connect to Existing Secondary Replicas ekranın da W19SQL19NOD2 ve W19SQL19NOD3 isimli sunucularımızı Secondary olarak yapılandıracağımız için bu sunucularımız üzerine bağlanmamız gerekiyor.

Connect to Existing Secondary Replicas ekranın da W19SQL19NOD2 isimli sunucumuzu Secondary olarak yapılandıracağımız için bu sunucumuz üzerine Connect diyerek bağlanıyoruz.

Connect to Server ekranın da Server name bölümüne W19SQL19NOD2 olarak geliyor ve Connect diyoruz.

Connect to Existing Secondary Replicas ekranın da W19SQL19NOD2 isimli sunucumuzu Secondary olarak yapılandırdık.

Connect to Existing Secondary Replicas ekranın da W19SQL19NOD3 isimli sunucumuzu Secondary olarak yapılandıracağımız için bu sunucumuz üzerine Connect diyerek bağlanıyoruz.

Connect to Server ekranın da Server name bölümüne W19SQL19NOD3 olarak geliyor ve Connect diyoruz.

Connect to Existing Secondary Replicas ekranın da W19SQL19NOD2 ve W19SQL19NOD3 isimli sunucularımızı Secondary olarak yapılandırdıktan sonra Next diyoruz.

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 NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına dahil etmek için gerekli kontroller yapılıyor. NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına dahil etmek 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 NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına dahil etmek için herhangi bir sorun olmadığı için Next diyerek devam ediyoruz.

Summary ekranın da NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına dahil etmek için gerekli olan yapılandırmanın bir özetini görüyoruz. Finish diyerek NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına dahil etmek için işlemi başlatıyoruz. Script bölümünde Database ( Veritabanı ) Availability Group yapısına dahil etmek için yapılandırmış olduğunuz yapılandırmayı Script ( Senaryo ) olarak alabilirsiniz.

Results ekranın da NIHATCUBUK isimli Database ( Veritabanı ) Availability Group yapısına başarılı bir dahil edildiğini görüyoruz. Close diyerek Add Database to Availability Group Wizard ekranını kapatıyoruz.

Microsoft SQL Server Management Studio ( SSMS ) konsolunu üzerinde Always On High Availability altında bulunan Availability Groups altında bulunan BAKICUBUKAO ismi ile yapılandırmış olduğumuz Availability Group yapılandırmasında Availability Database sekmesi altında NIHATCUBUK isimli Database ( Veritabanı ) görüyoruz.

Microsoft SQL Server Management Studio ( SSMS ) konsolunu üzerinde Always On High Availability altında bulunan Availability Groups altında bulunan BAKICUBUKAO ismi ile yapılandırmış olduğumuz Availability Group yapılandırmasında Databases sekmesi altında NIHATCUBUK isimli Database ( Veritabanı ) geldiğini ve Synchronized olarak görüyoruz.

 

 

 

Bir yorum ekleyin