Yüksek Erişilebilirlik Serisi – Replication 1
Replication ile ilgili bu makale serimizin ilkinde replication teknolojisinin temel tanımlarına değineceğiz. Bunun için öncelikle replication teknolojisini gerçek hayattan bir senaryo ile ifade etmeye çalışalım.
Hemen hemen hepimiz bir derginin veya bir yayının en az bir kere abonesi olmuşuzdur. Bu durumdan yola çıkarak abonesi olduğumuz derginin bizim elimize ulaşana kadar geçirdiği süreçleri bir inceleyelim. Yayıncı bir şirket düşünelim. Bu şirketin bir veya birden fazla yayını olabilir ve her yayının kendine özgü içerikleri olabilir. Bizler de yayıncı firmanın yayınlarından istediklerimize abone oluruz. Bu yayını evlerimize ulaştırma sorumluluğu yayıncı kuruluşun sorumluluğunda değildir. Yayıncı kuruluş derginin anlaşmalı olduğu yazarlardan makalelerini toplar ve yayınlanacak bir yayın haline getirir. Talep ettiğimiz yayın bu aşamadan sonra yayıncı firmadan çıkar ve dağıtıcı firmaların eline gelir. Dağıtıcı firmanın önemli özelliklerinden birisi ilgili yayını hangi abonelere ne zaman ve ne şekilde dağıtılacağını bilir ve sonucunda aboneler abonesi olduğu yayınları alır ve okurlar. Bu senaryoda özellikle dikkatinizi çekmek istediğim nokta aboneler olarak elimize ulaşan yayınlar yayıncı firmanın ürettiği kopya baskılarıdır.
Teknik tanım olarak replication verinin ve veritabanı nesnelerinin bir sunucudan başka bir sunuya kopyalanarak dağıtılması işlemidir. Bu işlem yukarıda bahsettiğimiz senaryo ile bire bir aynı şekilde gerçekleşir. Bu işlemler bütünü teknik terminolojide “Replication Publication Model” yani replication yayıncılık modeli olarak ifade edilir.
Replication Yayıncılık modelinde bazı roller ve temel tanımlar vardır. Bunlar;
• Publisher : Yayıncı anlamına gelen bu rol bir veritabanı sunucusudur. Bu rolün üzerindeki temel görev verinin replication süreçlerinde yayınlanabilir hale gelmesini sağlar.
• Distributor: Dağıtıcı anlamına gelen bu rol bir veritabanı sunucusudur. Bu rolün üzerindeki temel görev kendine atanmış yayıncılara ait özel replication verilerini saklamaktır. Bu veriler distribution olarak da bilinen bir veritabanı içinde saklanır. Bu veriler replication durumunu ve yayıncıların metadataları gibi bilgileri saklar. Bazı durumlarda yayıncı ile aboneler arasındaki veri taşıma kuyruğu olarak da görev alır. Bir çok kurulumda yayıncı ve dağıtıcı rolleri aynı veritabanı sunucusu üzerindedir. Bu durum “Local Distributor” yani lokal dağıtıcı olarak bilinir. Bu iki rolün ayrı sunuculara dağıtılması durumu “Remote Distributor” yani uzak dağıtıcı olarak adlandırılır.
• Subscriber: Abone anlamına gelen bu rol bir veritabanı sunucusudur. Bu rolün üzerindeki temel görev replication süreçlerinde dağıtılan veriyi veya veritabanı objesini almaktır. Bir abone birden fazla yayıncıdan yayın alabilir. Seçilen replication tipine göre bir abone kendi üzerindeki değişen verileri yayıncılara ve diğer üyelere dağıtabilir.
• Article: Makale anlamına replication nesnesi, bir yayının içindeki bir veritabanı nesnesini ifade eder. Bir yayının içinde farklı tiplerde (tablolar,viewlar, stored prosedürler vb.) article’lar bulunabilir. Bir tablo article olarak bir yayının içine eklendiği zaman kolon ve/veya satır bazında filtrelenebilir.
• Publication: Yayın anlamına gelen replication nesnesi, bir veya birden fazla article grubunu ifade eder. Replication süreçlerinde kopyalanan ve dağıtılan nesne publication nesnesidir.
• Subscription: Abonelik anlamına gelen bu rol hangi yayının nerden ve nezaman alınacağını ifade eder. İki tip abonelik vardır. Bunlardan ilki pull yani abonenin yayını alma durumu, diğeri de push yani dağıtıcının yayını verme durumudur.
Bu makelemizde temel replication tanımını ve kavramlarını paylaşmaya çalıştık. Bir sonraki makalemizde Microsoft SQL Server tarafından bizlere sunuculan replication tiplerinden bahsedeceğiz.