Sql server yedekleme işlemi çoğu kez tüm IT personeline gerekli olmuştur. Sql yedekleme replikasyon,mirroring, log shipping, failover gibi yöntemlerler karşınıza çıkabilir.
Sitemimizde bulunan bir databaseimizin kopyasını paylaşıma açılan klasörlerde belli ararlıklarla transfer edilen transaction log yardımıyla diğer server üzerinde yedek database olarak tutar. Felakete uğrayan database in bir an önce data kaybı olmadan yada minimum data kaybıyla tekrar hizmet vermesini sağlamaktadır. Yukarıdaki resime bakında kısaca çalışma mantığını görebilmekteyiz.
Kısaca yapılandıracağım ortamdan bahsetmek gerekirse:
Primary Server: SQL1, Secondary Server: SQL2. İşletim sistemi olarak Windows Server 2008R2 ve üzerinde Sql Server 2008R2 şeklinde yapılandırıldı.
Önemli bir noktaya işlemlere başlamadan önce aktarmak istiyorum.! Workgroup ortamında işlemlerimizi yapacağımız için, Administrator şifrelerini aynı yapmamız gerektiği bilgisini belirtmek istiyorum. Akabinde Sql Server sa şifrelerini de aynı yapmamız gerekmektedir.Domain ortamına kurulan ve domaine member sql serverlar için bu işlemlere gerek duyulmamaktadır.
İşleme primary serverım olan SQL1’den başlayacağım. Sql Server Configuration Manager penceresini açıyoruz.
Burada SQL1 server için, sql server ve sql server agent servislerini Administrator hesabı ile çalışacak şekilde konfigüre ediyoruz.
Sql Server Configuration Manager kısmından servislerin çalışacağı hesapları ve şifreleri ayarlayabiliyoruz.
SQL2 server için de, aynı şekilde sql server ve sql server agent servislerini Administrator hesabı ile çalışacak şekilde konfigüre ediyoruz.
SQL1 sunucumda E: diskte Backup isimli bir klasör oluşturup paylaşıma açıyoruz.
Everyone read/write yetki veriyorum. Bu noktada güvenlik aklınıza gelebilir.Yetki kısımlarını kendiniz detaylı olarak inceleyip verebilirsiniz. Ya da farklı vlan yapabilirsiniz.
Aynı şekilde SQL2 sunucumuz için E diskte Restore isimli bir klasör oluşturup paylaşıma açıyoruz. Transaction loglar bunlar üzerinden taşınacaklar.
Transaction loglar için paylaşıma açılan klasörlerin ardından sql server tarafındaki ayarlarımızı görelim.
Makalemizin başında sa şifreleri ile ilgili bilgi vermiştim. SQL1 sunucumuzu sa şifresi ile açıyoruz.
Buradaki databaseimizi ve içerisindeki tablomuzu görmekteyiz.
Log shipping ayarlarını yapacağımız databaseimize sağ tuş ile tıklayıp Tasks / Ship Transaction Logs kısmına tıklıyoruz.
Açılan pencerede Enable this as a primary database in a log shipping configuration seçeneğini işaretliyoruz. Akabinde Backup Settings’i tıklıyoruz.
Açılan pencerede SQL1 sunucusunda bulunan databasein log shipping teknolojisi için transaction logları bu sunucu üzerinde nereye koyacağını local ve network yolunu belirtiyoruz. Ayrıca kaç günden sonra önceki logların silineceğini seçebiliyorsunuz. Default olarak 3 gündür. Scedule kısmında ise günlük, haftalık,aylık, saatlik vb. gibi ayarlar yapabiliyoruz. Bununda defaultu günlük 15 dakikada bir şeklindedir. Burada ayarlarımızı yaptıktan sonra OK tuşuna basarak yaptığımız işlemi kaydetmiş oluyoruz.
Yine önceki ekrana dönmüş oluyoruz.
Bu kısımda da secondary database için yani SQL2 sunucusu üzerine alacağımız yedek ayarlarını yapacağımız yerdir. Add butonuna tıklıyoruz.
Karşımıza gelen pencerede secondary database bağlanmak için Connect kısmını tıklıyoruz.
Instance name kısmına SQL2 sunucumuzun bilgilerini ve sa şifresini giriyoruz.
Restore Options’a tıklayrak gelen ekranda, transaction loglar için restore edilecek bilgileri giriyoruz. SQL2 sunucusu için local yolu giriyoruz.
Copy files sekmesine ise network pathini yazıyoruz.
Restore Transaction Log tabında ise standby modu işaretliyoruz. Yine yukarıda bahsettiğim gibi schedule kısmını istediğiniz doğrultusunda ayarlayabilir ya da defaultta bırakabilirsiniz. OK ile devam ediyoruz.
Son olarak OK ile işlmeleri onayladığınızda işlemlerin sağlıklı bir biçimde gerçekleştiğini anlayabilmemiz için Success ekranını görmemiz gerekmektedir.
Artık bu aşamadan sonra schedule kısmındaki belirlediğinizi zaman aralığında (default 15 dakika ) loglar transfer olacak ve secondary serverda secondary database olarak yedeğiniz oluşmuş olacaktır. Kontrol amaçlı eventlogları takip etmenizi öneririm.
Uğur Demir