SQL Server Replication
Merhaba arkadaşlar,
Bu makalemde, SQL Server Replication teknolojisinin
kavramsal olarak yapısını irdeleyeceğiz. Ayrıca, Replication yöntemlerinden de bahsedeceğim.
Sürekli Kullanılabilirlik (High Availability) konusunda
şimdiye kadar SQL Server Failover Clustering ve Database Mirroring’ ten bahsetmiştim.
Bunların avantaj ve dezavantajlarından, özelliklerinden ve hangi durumlarda kullanılabileceğinden
kısaca bahsetmiştim. Replication konusu ile, Sürekli Kullanılabilirlik yazı dizimin
üçüncü bölümünü tamamlamış olacağım. Dördüncü bölüm ise Log Shipping konusunda olacak
ve böylelikle Sürekli Kullanılabilirlik konusunu tamamlamış olacağız. En sonunda,
bu teknolojilerin birlikte nasıl kullanılabileceklerinden ve genel olarak duruma
göre birbirlerine karşı üstünlüklerinden ve dezavantajlarından bahsedeceğim. Ayrıca,
Log Shipping konusunun sonunda değişik senarolar da kurgulayacağım. Böylece, hangi
teknolojinin nerede kullanılabileceği daha anlaşılır bir hale gelecek umarım.
Makalemde yer yer terimlerin Türkçe ve İngilizcelerini
karışık şekilde kullanacağım. Böylece bu terimlerin daha iyi öğrenilebileceği kanısındayım.
İki dildeki terimlere aşina olmanızı uygun görmemin nedeni, yazılımların ingilizce
olması ve bunların anlaşılabilmesinin de türkçe olarak daha kolay olabilmesi. Umarım
işe yarar.
KONU BAŞLIKLARI:
- Replication ve Elemanları - Publisher, Distributor ve Subscriber
- Replication Teknolojisinde Kullanılan Agent’ lar - Replication Yöntemleri
REPLICATION YÖNTEMLERİ ve ELEMANLARI
Replication’ ın temel olarak üç yöntemi var, bunlar:
- Snapshot Replication - Transactional Replication - Merge Replication’ dır.
Her yöntem, ayrı ayrı seçenekler sunar. İhtiyacımıza göre hangisini kullanabileceğimizi öğrenmek için bu konularda, kendi başlıklarında söz edeceğim.
Fakat daha önce, Replication yapısını oluşturan öğelerden bahsetmek istiyorum. Replication yapısını genel olarak “Yayımevinin yayınladığı makalelere üye olan ve bu yayınları dağıtıcı sayesinde alan aboneler” şeklinde düşünebilirsiniz.
Publisher (Yayıncı) : Yayınlanacak olan makaleleri (Article), yayın (Publication) şeklinde yayınlanmak üzere üzerinde barındırır.
Distributor (Dağıtıcı) : “Publisher” daki “Article” ları, “Subscriber” lara ulaştırır.
Subscriber(Abone) : “Publisher” ın yayınladığı “Article” lara abone olarak, “Distributor” vasıtasıyla yayınları alır.
Publication (Yayın) : Bunu bir gazete gibi varsayın, “Article” lar da bu gazetenin makaleleri.
Article (Makale) : Table, Stored Procedure, View gibi nesneleri makalelere örnek olarak verebiliriz. Yukarıdaki örnekte de söylediğim gibi, Publication’ lar, makalelerden oluşur. Bir tane bile makaleniz olsa, bu, Publication şeklinde Publisher tarafından yayınlanır.
Burada anlattıklarımı, bir de görsel olarak aşağıdaki Şekil-1’ de anlatmanın daha yararlı olacağını düşünüyorum.
 Şekil-1
Yukarıdaki Şekil-1’ de gördüğünüz gibi, “Publication_1” isimli bir yayınımız var ve bu yayın 4 makaleden (Article) oluşuyor. Bu Yayını (Publication) ise, Yayıncı (Publisher) yayımlıyor. Dağıtıcı (Distributor), yayını yayıncıdan alıp, ya iterek (Push) ya da abonelerin kendisinden yayını çekerek (Pull) yayınlama işlemini gerçekleştiriyor.
Bu arada, biliyorum bazen çok sıkıcı olabiliyorum. Aynı terimleri defalarca yazıyorum, ama maksadım bu terimlerin kafanızda daha belirgin şekilde yer etmesidir.
|