Bu makalede kurulu olan AlwaysOn yapısına yeni bir database yöntemini ele almış olacağız. İlk başta microsoft’un sayfasından indirmiş olduğum bir database’i alwayson yapımıza ekleme işlemini görmüş olacağız. Anlamamız açısından ekran görüntüleriyle bu işlemleri yapmış olacağız.
Bir veritabanını AlwaysOn availability group’una eklemek için geleneksel yedekleme ve geri yükleme işlemlerini kullanan manuel bir prosedürdür. Temel mantık, primary sunucudan tam yedek ve log yedekleri alarak secondary sunuculara bu yedekleri geri yüklemek ve veritabanını availability group’una dahil etmektir.
İlk adım olarak, primary sunucuda veritabanının tam yedeği alınır. Bu yedek, veritabanının belirli bir andaki tam halini içerir. Alınan tam yedek, tüm secondary sunuculara “NORECOVERY” modunda geri yüklenir. NORECOVERY modu, veritabanının daha sonra log yedeklerini kabul etmeye hazır olduğunu belirtir. Primary sunucudan işlem günlüğü yedekleri alınır ve secondary sunuculara uygulanır. Bu adım, veritabanlarının senkronize duruma gelmesini sağlar. Son adımda, veritabanı availability group’una resmen katılır. Bu işlemden sonra, AlwaysOn otomatik olarak veri senkronizasyonunu yönetmeye başlar.
Bu yöntemin en önemli avantajı, büyük veritabanları için güvenilir olmasıdır. İşlemin her adımı manuel olarak kontrol edilebilir ve hata durumunda müdahale imkanı sağlar. Ağ trafiği yönetilebilir ve mevcut yedekleme altyapısıyla uyumludur.
Yöntemin dezavantajları arasında uzun işlem süresi ve manuel müdahale gerektirmesi yer alır. Özellikle büyük veritabanlarında saatler sürebilir. Ayrıca, NORECOVERY modu sırasında log dosyalarında büyüme riski bulunur.
Bu yöntem genellikle çok büyük veritabanlarında (2TB ve üzeri), sınırlı ağ bant genişliği olan ortamlarda veya kurumsal yedekleme politikalarının zorunlu kıldığı durumlarda tercih edilir. Deneyimli veritabanı yöneticilerinin bulunduğu ortamlarda daha sık kullanılır.
İlk başta indirmiş olduğum database’i sql server’a restore yapalım. Databases’ın üzerine sağ tıklayıp Restore Database sekmesine tıklıyoruz.

AdventureWorks2012 veritabanını indirmiş olduğum klasörden Device bölümünde seçiyorum.

Ok ikonuna bastıktan sonra veritabanının backup’ını doğru bir şekilde almış oluyorum.

Veritabanımızı sql server’a restore ettikten sonra AlwaysOn ekleme adımlarına geçebilirz.
AlwaysOn’da oluşturmuş olduğumuz AG üzerine geldikten sonra Availability Databases sekmesinden Add Database diyoruz.

Gelen ekranda Next dedikten sonra bir sonraki adıma geçiyoruz.

Aşağıdaki resimde AdventureWork2014 veritabanının zaten availability group’da olduğunu söylüyor. AlwaysOn’a dahil edeceğimiz veritabanı için bize ilk başta ilgili veritabanını full recovery moda almam gerektiğini söylüyor. Çünkü full modda yapılan her işlem ldf dosyasında tutulduğu ve secondary sunucuda bu ldf dosyasını referans aldığı için full moda çekilmesi gerekmektedir.

Veritabanımızı full moda alalım. Veritabanımız üzerine sağ tıklayıp properties diyiyoruz.

Daha sonra gelen ekranda options kısmından recovery model kısmını full yapıyoruz. Secondary ldf dosyasını referans aldığı için bu işlemi yapıyoruz.

Ok butonuna basıp tekrar AlwaysOn database ekleme ekranına gelip refresh yapıyorum. Refresh yaptıktan sonra bu sefer benden full backup almam gerektiğini söylüyor.

AlwaysOn yapısı kendini garanti altına almak için full backup almamız gerektiğini söylüyor. Bunun için restore ettiğimiz database üzerine sağ tıklayıp task bölümünden backup seçeneğini seçip backup alma işlemlerini yapıyorum.

Sağ tarafta bulunan add sekmesini seçtikten sonra backup alacağımız yolu belirtiyoruz.

Backup işlemini başarılı bir şekilde almış olduk.

Backup işlemimizi başarılı bir şekilde aldıktan sonra AlwaysOn database ekleme ekranına tekrar gelip refresh yapıyorum.
Artık database AlwaysOn yapısına eklenebilir durumda. İlgili database’i seçip next deyip bir sonraki aşamaya geçiyoruz.

Yeni gelen ekrandan connect deyip secondary sunucumuza bağlanıyoruz. Birden fazla replicamız varsa ikisinide connect deyip bağlarız.

Connect butonuna tıklıyoruz.

Yukarıdaki resimde S2 makinamıza bağlandığımızı görüyoruz hangi User name ile bağlandığımızın bir önemi yoktur.

Next deyip bir sonraki ekrana geçiyoruz.

Yukarıdaki ekranda full database and log backup modu ile backup almaya çalışacağız. Bu yapı S1 ve S2 makinanın ortak göreceği bir klasör olması gerekiyor S1 makinası primary olduğu için backup’ı belirtilen klasöre döndürmüş olacak S2 sunucusuda bu yoldan backup’ı alıp üzerine dönmüş olacak.
Automatic seeding modu başlangıçda AlwaysOn kurarken ele almıştık. Tekrardan buna değinmeyeceğim.
Büyük databaselerde bu yöntem ile ilerlenebilir.
İlk başta S1 sunucumuzun herhangi bir disk’inde bulunan bir klasörü Sharing yapıp açalım. Ben Backup diskinin içerinde bulunan backup klasörünün altından ABC diye bir klasör açıyorum. Backup diski altında bulunan backup klasörünü paylaşıma açıp AlwaysOn adımlarımıza devam edelim.
S1 sunucusu üzerinde backup diskimi açıyorum.

Daha sonra belirtmiş olduğum isimde backup klasörü altında yeni bir klasör oluşturuyorum.

Bir üst klasöre gelip BACKUP klasörünü Sharing yapısına geçiriyorum. Backup klasörüne sağ tıklayıp properties dedikten sonra Sharing kısmına gelip Advanced Sharing kısmına tıklıyorum.

Gelen ekranda Share this folder kısmını işaretleyip apply deyiyorum. Apply dedikten sonra permission kısmından yetkimi veriyorum.

Permissions bölümüne tıklıyorum.

Gelen ekranda everyone’a full kontrol yetkisi verilmesi tavsiye edilmez. Sql server’ın yapacağı tüm işlerde database engine’a tanımladığımız sql server servisi sorumludur.

Servisimiz aşağıda gözükmekte.

Bu servisin eklenmesi için yukarıdaki resimde add kısmına basıp active directory üzerinden servisimizi seçiyoruz ve full kontrol yetkisi veriyorum.

Servisi ekledikten sonra full kontrol yetkisi veriyorum.

Şimdi oluşturmuş olduğum Sharing yolunu AlwaysOn ekranımdaki ilgili yere kopyalayıp yapıştırayım.

Kopyaladıktan sonra AlwaysOn ekranıma yapıştırıyorum.

İlgili paylaşım kopyalanıp AlwaysOn’daki belirtilen ekrana yapıştırılır.


Full database and log backup seçersek, seçtiğimiz her veritabanının full backup’ını ve log backup’ını otomatik olarak alıp secondary sunucuya kendisi aktarır ve bu işlem için iki instance’ın sql server servis hesaplarının okuma ve yazma yetkisi olan bir paylaşım/share ister.
Join only seçersek, seçtiğimiz her veritabanının full backup’ını ve log backup’ını manual olarak alıp manual olarak secondary sunucuya bu adımı geçmeden önce aktarmamız gerekir.
Skip initial data synchronization’ı seçersek yine her veritabanının full backup’ını ve log backup’ını manual olarak alıp manual olarak secondary sunucuya aktarmamız gerekir ama bu işlemi daha sonra yaparız. Secondary sunucusuna manuel join işlemi yaparız.
Aşağıdaki resimde tanımlamış olduğumuz paylaşım klasörüne kısa bir bilgi atıldığını görmüş oluyorum. Next deyip bir sonraki aşamaya geçiyoruz.


Finish deyip işlemlerimi tamamlıyorum.

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

Tanımlamış olduğum paylaşım klasörüne primary sunucum aşağıda görüldüğü gibi full ve log yedek alınmış oldu.

İkinci sunucuma bağlanıp kontrol ettikten sonra ilgili veritabanımın restoring modunda olduğunu görmüş oluyorum.

NOT: Sql server’la ilgili her işlemlerde sql server servisi yetkilidir ona yetki verilmesi lazım.
Şunu da teyit edelim primary sunucusunda hangi yoldaysa data ve log dosyam secondary sunucusunda aynı yerde oluşmuş durumda(Aşağıdaki Resimlerde Görülmektedir.) AlwaysOn kurulumunda disk kısımlarının aynı olmasından bahsetmiştik.Aynı disk uzantısı yoksa secondary instance’ın default disk uzantısılarında mdf ve ldf dosyamız oluşmaktadır. Aynı işlem auto seeding modunda da geçerlidir.


En son yapmamız gereken secondary sunucuda restoring modda olan veritabanını AlwaysOn yapısına dahil etmek secondary’de AG altına gelip sağ tıklayıp join dememiz yeterli. Tabi bu işlem Auto seeding modunun manuel olmasından dolayı. Auto seeding yapısı otomatik olursa secondary sunucusuna eklenmektedir.

Başka bir makalede görüşmek dileğiyle..
“Rabbimiz! Şüphesiz sen, hakkında şüphe olmayan bir günde insanları toplayacaksın. Şüphesiz Allah va’dinden dönmez. “Âl-i İmrân-9