Makale Özeti

MS SQL Server 2000 veritabanı platformunda replikasyon tiplerine genel bakış ve Snapshot Replication ile bir örnek uygulama.

Makale

Merhabalar Sevgili Yazgeliştir Okuyucuları,

Bu makalemde de sizlere MSSQL Server 2000 veritabanı yönetimi sistemi içerisinde verilerimizi dağıtılmış bir ortamda saklama işlemi ve veri kopyalama(Replication) işlemlerini nasıl yapacağımızı ve bu oluşumun sürecini örnek bir uygulama ile inceleyeceğiz.

MSSQL Server 2000 platformunda ki konuşacağımız veri kopyalama işlemi veriyi merkez bir veritabanından bir veya daha fazla hedef veritabanı arasında paylaşmak ve hedef veritabanındaki değişiklikleri de aynen merkez veritabanına yansıtılması sürecidir.Kaynak ve hedef diye bahsedilen veritabanı sistemleri bir SQL Server olabileceği gibi OLEDB provider sağlandığı sürece farklı bir sunucu da olabilir.

Veri kopyalama işleminin en iyi yanlarından biri de şüphesiz ki iş yükünü dağıtarak uygulama mantığına performans sağlamaktır.

Lokal sunucuda ki kullanıcılar uzaktaki bir sunucuya bağlanmak yerine kendi veritabanı sistemlerine bağlanarak doğrudan kendi veritabanı sistemlerine bağlanırlar.Belki de aynı veriler iki farklı sunucu üzerinde bulunduğu için herhangi bir sunucuda oluşabilecek bir problem nedeniyle diğer sunucu işlerin tüm yükünü üzerine alarak sistemin sorunsuz bir şekilde ayakta kalmasını sağlayabilir .

Burada yapacağımız uygulamaya başlamadan önce söylenecek en önemli konu ve uyarı kendi açımdan veri kopyalama mimarisi biraz karışık olduğundan tecrübe edilmeden işleyen sistemler üzerinde kullanmamanızdır benden uyarması :)))

Replikasyon senaryosunda bahsedeceğimiz replikasyon bileşenleri Yayıncı(Publisher) merkez veritabanı,Dağıtıcı(Distributor) merkez ve hedef veritabanı sistemleri arasında bilginin paylaşılacağı kısım ve kullanacak olan sunucu veritabanı sistemleri ve dediğimiz Üye(Subscriber).

MSSQL Server 2000 veritabanı sistemi toplamda 3 farklı replikasyon tipini desteklemektedir.Gelin kısaca bunların ne olduğuna değinelim ve ardından uygulamamıza geçelim.

1-Snapshot Replication

Yayıncı diye bahsettiğimiz veritabanındaki bilgi alınıp üye konumundaki diğer veritabanlarına kopyalanır.Bu tip replikasyon ağ trafiğini arttıracaktır.Bu nedenle hem ağ trafiğinde problem yaşanacak hem de verilerimiz yeterince güncel olmayabilir.

2-Transactional Replication

Sadece ana veritabanındaki değişiklikleri üye veritabanlarına yansıtır.Böylece sadece değişenler gideceği ağ trafiğinde ki yoğunlukta çok olmayacaktır.

3-Merge Replication

Ana merkez veritabanı ve diğer üye veritabanı sistemlerinde ki değişiklikleri diğer tüm veritabanı sistemleriyle paylaşan veri kopyalama tipidir.

Bizim uygulayacağımız senaryo itibariyle yayıncı ve dağıtıcı sistem aynı sunucu üzerinde bulunacaktır.

Tools>Replication>Create and Manage Publications seçilerek yayıncı sistem oluşturulmaya başlanıyor ve aslında bu süreçte dağıtıcı sistemi de konfigüre edeceğiz.



Açılan Create and Manage Publications ekranında Crate Publication diyerek yayıncı üzerinde işlemler yapmaya başlıyoruz karşımıza çıkan hosgeldin ekranından sonra Distributor(Dağıtıcı) sistemin nerede olacağı ile ilgili bilgi verilir.

Sonra SQL Server Agent Service'in konfigürasyonu ile ilgili bilgi verilerek replikasyon ile birlikte başlamasını istiyoruz şeklinde konfigüre ediyoruz .Replikasyon senaryosunun gerçekleşeceği fiziksel yer belirlenmesi işlemi benim tarafımda \\SY\C$\Program Files\Microsoft SQL Server\MSSQL\ReplData klasörü yaratıldıktan replikasyonu gerçekleştireceğimiz veritabanı seçme işlemi yapılır.



Bu işlemlerin hemen ardından ise yukarıda bahsettiğimiz ve 3 tipte olduğunu söylediğimiz replikasyon tipini seçmeye geldi iş burada örneğimiz için tasarlanan Snapshot Replication tipi seçilmiştir.



Replikasyon tipi ile ilgili işlemin hemen ardından ise üye tipimizin bir SQL Server olduğunu söylüyoruz.Ve bu noktada Northwind veritabanı olarak seçilen replikasyon tipinin hangi tablolar arası olacağı seçimi yapılıyor.



Ardından replikasyon ilgili gerekli ayarlamalar yapıldıktan sonra işin son bölümüne yaklaşıyoruz.Ve Finish işlemi ile birlikte kendisini bizim söylediğimiz doğrultuda konfigüre etmesini bekliyoruz.



Şimdi ise işin kalan kısmı olan Üye'yi yaratmaya geldik en baştaki senaryoda kullandığımız Create and Manage Publications ekranından Push New Subscription diyerek üyeyi oluşturmaya başlıyoruz.



Üye'yi oluşturmaya başladığımız ilk adım ise gercekleşecek olan hedef sunucunun seçilmesi işlemidir.Sunucu tarafında seçim tamamlandıktan sonra üye sunucu tarafındaki veritabanı seçimi gerçekleştirilir.Benim örnek uygulamamda Pubs veritabanı kullanılarak uygulama gerçekleştirilmiştir.Bu seçimler ile birlikte üye işlemi tamamlanırken gerekli olan servisleri bize söyler ve biz bu servisin otomatik olarak başlaması yönünde oy kullanmıştık.



Yeni bir üye yaratma işlemide tamamlandıktan sonra artık Northwind veritabanındaki Employees tablosunun artık Pubs veritabanında oldugunu gözlemledik.



Eklenen kayıtlar ile birlikte Pubs veritabanı içerisinde Employees tablosunun oluştuğunu aşagıdaki şekilde görebiliriz.



Bu makalemde sizlerle MSSQL içerisinde kullanılan Replikasyon senaryodundan bahsetmeye çalıştım. Bu çalışma makaleye örnek teşkil ettiği ve öğrenme amaçlı olduğundan hata testleri ve hata yakalama fonksiyonları yazılmamıştır.Bir sonraki yazımda görüşmek dileğiyle...

Soner Yaşar(soner.yasar@netron.com.tr)