Live Chat Software
Emre CIRIK | Sql Server 2008 Replication

Sql Server 2008 Replication

by EMRCRK 31. May 2011 12:50

 

Merhaba arkadaşlar, size ilk olarak kısaca replication nedir açıklamak istiyorum. Replikasyon : Server-Client ( Sunucu-Istemci) mimarisinde kullanılar ve belirli objeleri senkronize etmek için kullanılar bir yöntemdir. Anlaşılacak bir örnek ile açıklamak gerekirse kötü bir örnek olucak ama akılda kalıcıda olacaktır :

Öğrencilik hayatımızda kopya çekmek için kullanılan yöntemlerden bahsedeceğim, dersine çalışmayan bir öğrenci ( İstemci - Client) , dersin kurdu olmuş zeki öğrenci ( Sunucu - Server ) , kopya çekmek için kullanılan yöntem dağıtıcı(distributor) , sorunun cevabı olan bilgi ( eşitlenmek istenen kayıtlar olsun ) . Çalışkan öğrenci herhangi bir sorunun cevabını yazdığı zaman, ufak bir kağıda yazıp bunu diğer arkadaşına verirse ve arada kağıt iletişimini yapan arkadaşımız (distrubitor) istemci olan arkadaşlarımıza sorunun cevabını verirse bilgileri eşitlemiş olurlar =) Kısaca özeti budur.

 

Günlük hayatta nasıl ihtiyaç olur , bir banka düşünün arkadaşlar internet sürekli aktif olan birşey değil malum bizim ülkemizde bunun sıkıntısı var. Bankalar yapılan her işlemi ana veritabanında diğerleri ile birlikte eşitlemek ister. Örnek : X bankasının A şehrindeki şubesi , X bankasının B şehrindeki şubesi ve X bankasının merkezi, burada çift taraflı etkileşim söz konusudur aslında fakat ben basitten alıcam. X bankasının merkezi dağıtıcı veritabanıdır. A ve B şehrindekiler bağlantı olduğunda bilgileri alır ve bilgiler gün içinde işlenir. Daha sonra akşam olduğunu düşünün , belirli bir zamanda çalışan görev ( Biz buna Job diyoruz ve görevi çalıştıran servis SQL Server Agent) A ve B bankasında  yapılan işlemleri merkez veritabanına eşitler , bu sayede bilgilerin güncelliği söz konusu olur . Tam aktarırken internet kesilirse bilgi kaybı olmaz çünkü arada Transaction çalışır.

 

Sql Server 2008 Örnek Replication :

Arkadaşlar benim 2 tane SQL server 2008 instance name 'im mevcut. Birtanesi MSSQLSERVER2008N ve MSSQLSERVER2008 .

İlk olarak kendime ReplicationDB isimli veritabanını oluşturup , içine sadece isim ve id alanını ekliyorum her iki server 'a.

Şimdi replication için ilk olarak dağıtıcımı tanımlayacağım . Bunun için  SQl Server Object Explorer üzerinde

Replication a sağtıklıyoruz->Configure Distribution diyoruz->Çıkan uyarı kasik kurulum sistemini uygulayın (Next,Next,Next) :D . Bize kendi server üzerindemi yada başka server üzerindemi dağıtıcıyı kurmak istediğimizi soruyor. Biz kendi serverımız üzerinde kuracağız. ->

 

Next diyoruz -> SQl Server Agent'ın otomatik mi yoksa manuel mi başlayacağını soruyor , ben otomatik seçtim ki, otomatik önerilir . -> Sonra bizden SnapShot klasörü isteyecek, bu klasörde SQL Server veritabanına ait görüntüleri tutmaktadır. İleri deyin yada klasör belirleyin .-> Daha sonrasından distrubitor veritabanı ve log dosyaları için klasör soruluyor-> Sonra tekrar Next diyoruz ve Finish diyoruz. Kurulum tamamlandıktan sonra hangi veritabanını publish etmek istediğimizi ayarlayacağız. Replication altında bulunan Local Publications sağ tıklayın  ve New Publication diyin.

Sonra publish etmek istediğimiz veritabanını "ReplicationDB" yi seçin.ileri diyin , bize publication tiplerini gösterir bunların ( Snopshot,Transactional,Merge) çok detayına inmeden kısaca açıklamak gerkirse
Snopshot : Script alınarak bulk insert yapılan bir türdür. Burada , her değişiklik olduğunda veri tabanı karşı tarafta baştan oluşturulur.

Transactional :Yapılan değişiklikleri log dosyasına bakarak aktarır .

Merge : Çift taraflı etkileşim ve yapılan değişiklikleri iletir.

Ben Merge yi seçip ileri diyorum. Sonra hangi SQL Server versiyonu ile replice etmek istediğim çıkıyor , 2008 i seçiyorum ileri diyorum , sonra hangi Objeleri replice etmemi soruyor ve ben oluşturduğum tabloyu seçiyorum.

 


 


Job zamanlamasını ayarlaya bilirsiniz .

Burası bu kadar .

 

Sıra geldi istemci tanımına. Onuda Local Publications a sağ tıklayıp New Local Subscription diyoruz. ileri diyip kendi veritabanımızdaki Publication u seçip ileri diyoruz

 

Bu ekranda replice edilecek diğer server ve veritabanını seçiyoruz.Daha sonra çıkan uyarılara ileri diyip geçebilirsiniz. Detaylarını araştırısınız.

 

Ve artık işlemimiz tamamlandı. Şimdi tablolarımıza bakarsak rowguid isimli bir alan eklendiğini göreceğiz.




 

Umarım anlaşılmıştır arkadaşlar, çok basit ve kolay detaylarını birazdaha araştırmanızı tavsiye ederim çünkü iş hayatında muhakkak birgün lazım oluyor :) Bir başka yazıda görüşürüz inşallah.

Comments (1) -

murat
murat Turkey
6/8/2012 12:23:08 PM #

güzel bir yazı olmuş eline sağlık

Reply

Pingbacks and trackbacks (1)+

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading






Month List

Calendar

<<  October 2014  >>
MoTuWeThFrSaSu
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

View posts in large calendar