SQL Server Data Replication (Veri Yineleme) – II

SQL Server, Oracle Add comments

Önceki yazıda replikasyonla ilgili terminolojiyi anlatmaya çalıştık. Bu yazıda SQL 2000 ve 2005 üzerinde replikasyon türlerinin nasıl kurulacağını örneklendirelim. Aynı makine üzerinde koşan iki tane SQL Server 2000 instance’imiz var. Birinin adı WXX diğerinin adı WXX\KAFKA. WXX sunucusunu yayıncı ve dağıtıcı, WXX\KAFKA sunucusunu da abone olarak yapılandıracağız. WXX üstündeki KAYNAK isimli veritabanını yayınlayacağız. Sunucuları ilklendirmek ve full backup’ın snapshot klasörüne sorunsuz yüklenmesi ve diğer işlemler için SQL Server Agent servisinin yetkili bir domain ile başlatmak doğru bir çözüm olur.

İlk adım olarak WXX sunucusunu hem publisher hem de distributor olarak yapılandıracağız. Bunun için üst menüdeki Wizard bölümüden veya sunucu ismini sağ tıklayıp Properties bölümünden replikasyon sihirbazını başlatabiliriz. Enterprise Manager içerisinde WXX sunucunu sağ tıklayıp Properties bölümünden Replication sekmesine girelim. Burada Configure düğmesini tıklayalım.

Karşılama ekranını geçtikten sonra “Select Distributor” penceresine geçelim. “Make ‘WXX’ its own Distributor; SQL Server will create a distribution database and log” seçeneği ile Publisher ve Distributor’un aynı sunucu olacağını belirtelim.

Sonraki ekranda snapshot klasörünü belirteceğiz. Replikasyonun mantığı gereği yayıncı ve abonelerin farklı makinelerde koşuyor olmasından dolayı tüm sunucuların erişmesi için bu klasörün network yolunun tanımlanması daha mantıklı olacaktır. Eğer yerel adres verilirsen sadece push subscription’lar desteklenir. Burada C:\SnapshotYedek klasörü için \\WXX\SnapshotYedek ağ yolunu giriyoruz.

Bir sonraki ekranda yayınlama ve dağıtma ayarları gerçekleştirilir. Burada istenilirse ‘distribution’ veritabanının adı ve ona ait data ve log dosyalarının konumu değiştirilebilir.

Bu ekranla birlikte WXX sunucunun hem yayıncı hem de dağıtıcı rolünde olması sağlandı. Bu bölümdeki adımları bitirdiğimizde WXX üzerinde ‘distribution’ veritabanı oluşturulur ve replikasyon sürecini yönetmek ve takip etmek için “Replication Monitor” aracı aktifleştirilir.

Şu an itibariyle yayımcı ve dağıtıcı sunucularını tanımlamış olduk. Şimdi yayımcı sunucunun ne yayınlanacağını (publication), abonelere gönderilecek artikelleri tanımlayacağız. Bunu farklı menülerden yapabiliriz. Bunun en kısa yolu Enterprise Manager içerisindeki “Tools » Replication » Create and Manage Publications…” menüsünü kullanacağız.

Bu menünün açtığı pencerede WXX altındaki Kaynak veritabanını seçip “Create Publications” düğmesini tıklayarak bu database için bir yayın hazırlayalım. Karşılama ekranından sonra bu yayının hangi replikasyon türüyle yayınlacağı seçilir. Burada en basit olan “Snapshot Replication” yöntemini seçeceğiz.

Sonraki ekranda abonelerin veritabanı sistemi düzeyinde türü seçilir. Aboneler SQL Server sisteminden olduğu gibi Oracle, Access gibi heterojen sistemler de olabilir. Burada SQL Server 2000 seçeneğini işaretleyip bir sonraki ekrana geçelim. Bu yeni ekranda yayınlanacak artikelleri seçeceğiz. Burada Kaynak veritabanı altında örnek olarak oluşturduğumuz Musteri tablosunu seçeceğiz.

Bu ekranda tabloların yanındaki “…” düğmesini tıklayarak artikelin adı ve bu nesnelerin karşı taraftaki adı düzenlenebilir. Sonraki ekranlarda varsa IDENTITY uyarısı yapılır ve “define data filters” seçeneğiyle yatay veya dikey filtreleme yapılabilir. Filtreleme işlemi SQL Server replikasyonunun önemli bir özelliği olup tablonun sadece belli kolon veya satırlarını abonelere göndermemize imkan sağlar. Bu ekranlarda varsayılan seçenekleri işaretleyip yayın tanımlama sürecini bitirelim. Bu işlemden sonra hem Kaynak veritabanının altında hem de Publications bölümünde tanımlanan yayın bilgisi görünür.

Bu aşamada yayıncı ve onun yayınlayacağı makaleler ve bunları dağıtacak dağıtıcı tanımlanmış oldu. Şimdi bu yayınlara abone olacak üyeleri tanımlayacağız. Bunun için “Tools » Replication” menüsü kullanılabildiği gibi Replications bölümü altındaki yayın (Kaynak) sağ tıklanarak “Push New Subscription” menüsü kullanılabilir. “Push Subscription Wizard” ekranında bir veya daha fazla muhtemel abone seçilebilir. Burada WXX\KAFKA sunucusunu seçeceğiz.

Sonraki ekranlarda Kaynak veritabanının karşı taraftaki karşılığının ne olacağı ve Distribution Agent’in bir kere mi yoksa belli peryotta mı çalışıp çalışmayacağı belirtilir. Üye makinelerde Kaynak veritabanının oluşturulmuş olması lazım. Bunu bu ekranda “Browse or Create” buttonuyla sağlayabiliriz.

Görüldüğü gibi SQL Server ortamında replication işlemini yapmak çok kolay. Bu yazıda örnek Snapshop replication türünü ele aldık. Replikasyon türünün seçildiği ekranda Transactional veya Merge türleri seçilerek bu yöntemler de yapılandırılabilir. Transactional replikasyon için sözkonusu tablolar üzerinde primary key’in tanımlı olması gerekir.

SQL Server 2005′te replikasyon işlemini yapmak daha da kolaylaştı. Bu işlemi yapılandırmak için Management Studio’da Replication bölümü kullanılır. Aşağıdaki şekilde AHMETKAYMAZ isimli aynı sunucu üzerinde Kaynak1 veritabanı Kaynak2 veritabanını aktarılmıştır.

SQL Server replikasyonla ilgili olarak aşağıdaki notlarla yazımızı bitirelim.

  • Sadece üzerinde Primary Key tanımlı tablolar replike edilebilir.
  • Kaynak veritabanındaki tablo TRUNCATE edilemez.
  • Eğer hedef veritabanında bir Primary Key silinirse ve daha sonra kaynaktan o primary key ilgili bir güncelleme gelirse replikasyon bu kaydın karşılığını bulamadığı için hata verecektir. Sonraki işlemleri de COMMIT etmeyecektir.
  • Kaynaktaki tabloya ait yeni kolonu replikasyona dahil etmek veya var olan bir kolonu replikasyonda çıkarmak istediğimizde aboneleri bundan nasıl etkileneceği yani yeniden snapshot replikasyonun yapılıp yapılmayacağını Publication Properties » Articles sekmesindeki tablo çift tıklanarak Table Article Properties bölümü açılır ve oradan ilgili işlemler belirtilir
  • SQL Server 2005 ile aynı replikasyonda topolojisinde bulunacak SQL Server sürümü en az SQL Server 7.0 (SP4) ve SQL Server 2000 (SP3) olması gerekir.
  • Diskte veri saklama formatları aynı olduğu için SQL Server’in 32-bit ve 64-bit sürümleri aynı replikasyon modelinde kullanılabilir.
  • Farklı SQL Server sürümleri arasında replikasyon kurulacağı zaman Distributor sunucunun versiyonu Publisher’dan daha eski olmamalı.
  • SQL Server 2005 ancak publisher modunda olan SQL Server 2005 ve SQL Server 2000 için Distributor olabilir. SQL Server 7.0 için dağıtıcılık yapamaz.

MSDN’den alınmış aşağıdaki tablolar hangi SQL Server sürümlerinin aynı topolojide bulunabileceğini göstermektedir.

Salt-Okunur Aboneler için Transactional Replication ve Snapshot Replication

Distributor

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Publisher

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

Subscribers

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Güncellenebilen Aboneler için Transactional Replication

Distributor

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Publisher

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

Subscribers

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Merge Replication

Distributor

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Publisher

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

Subscribers

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Bu yazıda SQL Server 2000 replication ve SQL Server 2005 replication işlemlerinin nasıl yapılacağını öğrenmiş olduk.

One Response to “SQL Server Data Replication (Veri Yineleme) – II”

  1. Alper Says:

    teşekkürler : ) elinize sağlık…

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Giriş