Cuma , 26 Ağustos 2016
( 49 ) kez okundu

SQL Server Replikasyon Bölüm-2

Sql_Replication_02

Bu Makalemizde SQL server Replikasyon yapılandırmasına başlıyoruz.

Yapımızda Domain Controller ve bu DC ye üye 2 adet SQL serverımız bulunuyor yapacağımız çalışma ise “TURSEF” Adındaki DB i SQL1 makinesinden SQL02 makinesine Replike etmek olarak ilk olarak SQL serverıma bağlanıyorum.
Sql_Rep_01
Burada Gördüğünüz gibi TURSEFF_DB adında bir DB im bulunmakta Bu DB i aşağıda gördüğünüz SQL_02 makineme replike edeceğim.
Sql_Rep_02
Replikasyon işlemi SQL server Agent servisi aracılığı ile çalışır ve default olarak bu servisler kapalı gelmektedir bunları manuel olarak start etmemiz gerekmektedir.
Sql_Rep_03
Çalıştır satırında services.msc diyerek servislerimizi görüntüleyeceğimiz manger panelimizi açıyoruz ve burada SQL Server Agent i seçerek properties diyoruz.
Sql_Rep_04
Servisimizi Automatic e alıyoruz ve apply dedikten sonra start butonuna basarak start ediyoruz.
Sql_Rep_05
Bu işlemin aynısını SQL Server 02 makinem üzerinde de gerçekleştiriyorum.
Sql_Rep_06
Artık SQL Agent servislerim her iki makine dede start olmuş durumda olmalı burası çok önemli her iki makinede de start olduğundan emin olunuz aksi takdirde replikasyon başlattığınızda hata alırsınız.
Sql_Rep_07
Ben yönetimi kolaylaştırmak için SQL01 makinemin üzerindeyken Management studio panelinem SQL02 makinemi de çağırarak tüm işlemleri tek pencereden yöneteceğim.
Database Engine e tıklıyorum ve karşıma gelen ekranda sql 02 makinemin bilgilerini giriyorum.
Sql_Rep_08Sql_Rep_60
Gördüğünüz gibi sql02 makineside panelime eklendi.
Sql_Rep_09
Bizim Yapımızda Publisher ve Distribution Rolü SQL01 makinemde olacak.
     Replication–>Local Publication–>Configure Distribution diyoruz ve publish işlemi için wiard ekranı karşımıza geliyor.
Sql_Rep_10
Next Diyerek Devam ediyoruz.
Sql_Rep_11
Burada Distributor makineyi seçmemizi istiyor ben publisher ve distributor makineyi aynı makine (SQL01) yapacağım için değiştirmeden devam ediyorum
Sql_Rep_12
Burada publish edilecek olak DB in snaphost folderını belirlememizi istiyor ben bu yolu değiştirmiyorum.
Sql_Rep_13
Fakat bu adresin subscraberlar tarafından da erişilebilir bir yer olması gerekiyor ki bu paylaşıma giderek snapshot dosyamızdan dataları alabilsinler bu sebepten “RepData” folderını ilgili makinelerin yahut hesapların erişebileceği şekilde paylaşıma açıyorum.
Sql_Rep_14Sql_Rep_15Sql_Rep_16
Burada paylaşım adresini “\\” aşağıdaki resimde gördüğünüz gibi yazıyorum. Artık snapshot dosyalarını direk değil paylaşımdan erişerek buraya atacak.
Sql_Rep_17
Distribution DB e bir isim vermemizi istiyor ben değiştirmeden devam ediyorum.
Sql_Rep_18
Bu ekranda ise Publisher(Yayımcı) makinemi belirtiyorum benim yapımda bu makine gene SQL01 makinesi
Sql_Rep_19
Burada wizard sonrası yapılan işlemleri kayıt edip etmek istemediğimizi soruyor ben kayıt etdeceğim ne olur ne olmaz incelemek isteyebiliriz daha sonra.
Sql_Rep_20
Kayıt edeceğim lokasyonu seçiyorum ben masa üstüne atıyorum.
Sql_Rep_21
Son adım olarak fnish diyerek wizardı tamamlıyoruz.
Sql_Rep_22
Gördüğünüz gibi Publisher ve Distributor makinemiz artık hazır.
Sql_Rep_23

Veri tabanı publication işlemi

Artık Replikasyona açmak istediğimiz veri tabanının publish işlemine geçebiliriz. Bunun için SQL01 makinem üzerinde
Replication–>Publication–>New Publication diyerek başlıyorum.
Sql_Rep_24
Karşıma gelen Wizard ekranında Next diyerek devam ediyorum.
Sql_Rep_25
Bu ekranda Relike olmasını istediğim veritabanımı seçiyorum bu ekranda yanlıza 1 DB seçebiliyorsunuz eğer birden fazla DB iniz var ise Her biri için ayrı ayrı publisherlar oluşturmanız gerekiyor.
Sql_Rep_26
Bu ekrdan Hangi tür replikasyon yapmak istediğimizi soruyor bu konu ile ilgili aşağıdaki seçeneklerin ne anlama geldiğini ve hangisinin nerelerde kullanılacağına dair geniş bilgiyi makalenin 1. Bölümünde vermiştim.

Ben burada ilk defa bir publisher oluşturacağım için DB in tamamını replike etmesini istiyorum. Bu sebepten snapshot ı seçerek devam ediyorum.
Sql_Rep_27
Veri tabanında hangi tabloları almak istediğimi seçme şansına sahibim yada Article Properties penceresini açarak buraya özel sql sorguları yazarak ta detaylı bir yapılandırma seçeneğim var ben DB in tamamını alacağım için hiç bir ayrım yapmadan tüm tabloları seçiyorum.
Sql_Rep_28
Tablonun içeriğine dair özet bir bilgi geliyor.
Sql_Rep_29
Burada taşınmasını istemediğiniz filtrelemek istediğiniz bir tablo var ise burada seçim yapabilirsiniz.
Sql_Rep_30
Bu ekranda Schelude seçeneğini seçerek bu publisher için bir kural yazabilirsiniz buna tik koyarak change diyorum.Sql_Rep_31
ve aşağıdaki gibi her gün 1 kez yedek al diyrek bir program yazıyorum burada siz ihtiyacınıza göre bu zamanlanmış görebi düzenleyiniz.
Sql_Rep_32
Snapshot Agent güvenlik ayarları ile ilgil ekran geliyor burada her 2 makine de de yetkili bir sql hesabı olması gerekiyor ki sql serverlar arasında kimlik doğrulaması sağlanıp replikasyon başlatlabilsin.
Sql_Rep_33
ben burada test ortamında olduğum için administrator hesabı ile devam ediyorum.Siz yapınızda ilgili grup bazında yahut ortak bir replikasyon hesabı tanımlayarak bu işlemi daha güvenli bir hale getirebilirsiniz.
Sql_Rep_34 Sql_Rep_35
Önemli Not : Burada dikkat etmeniz gereken şey Replikasyon adımlarında kullandığınız hesaplar replikasyon yapacağınız DB ler üzerinde owner yada dengi bir yetkiye sahip olmalı aksi takdirde bu replikasyon adımlarında yetki hataları ile karşılaşırsınız.Sql_Rep_56
Yaptığım işlemin sql komutlarına çevrilmiş halini kayıt etmek istiyorum Next diyerek devam  ediyorum.
Sql_Rep_36 Sql_Rep_37
Finish diyerek publisherımı oluşturuyorum.
Sql_Rep_38
Gördüğünüz gibi artık Veri tabanım publish edilmiş durumda bundan sonraki bölüm Subscraber(Abone) yapılandırması olacak.
Sql_Rep_39

Subscraber (Abone) Yapılandırması

Artık Replication işleminde alıcı rolündeki Subscraber makinemize geçebiliriz bu yapıda benim abone makinem SQL02 isimli makine bu makinemi daha önce sql studio manager panelime eklemiştim.
Aşağıdaki SQL01 üzerinde az öcne publish ettiğim DB i görüyorsunuz.
Sql_Rep_40
SQL02 makinem üzerinde ;
Replication–>Local Subscriptions seneğini seçiyorum.
Sql_Rep_41
Burada hangi publisher makineden alacaksam o sql serverın bilgileri ile connect oluyorum.
Sql_Rep_42
Bağlantıyı sağladığınızda SQL01 makinesinde publish edilmiş DB leri burada listeli bir şekilde görüyor olacaksınız. Ben az önce Müşteri DB ini publish ettimğim için sadece bu DB geliyor ilgili Db i seçerek devam ediyorum.
Sql_Rep_43
Next diyerek devam ediyorum.
Sql_Rep_44
Bu ekranda ise SQl 02 yani subscraber(abone) makinem aldığı bu DB i kendi üzerinde hangi DB içerisine yazacak burada ben aynı isimde bir DB oluşturuyorum ve Müşteri DB ini yine Müşteri DB ine yazmasını istiyorum. New Database diyerek yeni Db oluşturuyorum.
Sql_Rep_45
Aşağıdaki ekran karşımıza geliyor ve burada DB ismini girerek ok diyoruz.
Sql_Rep_46
Müşteri Db imizi SQL02 makinemiz üzerinde oluşturduk.
Sql_Rep_47
SQL serverlar üzerindeki yetkili hesabı giriyoruz.
Sql_Rep_48
Next Diyerek devam ediyorum.
Sql_Rep_49
Bu ekranda schelude diyerek belli saatlerde replikasyon yapması için kural oluşturabilirsiniz.
Sql_Rep_50
Ben her saat başı bu işlemi yapması için bir job yazıyorum.
Sql_Rep_51
Yazmış olduğum bu replikasyon işlemine immediately diyerek wizardı tamamlayınca hemen başlat diyorum.
Sql_Rep_52
Wizardım başladı ve gördüğünüz gibi başarıyla tamamlandı.
Sql_Rep_53
Sql_Rep_54
Replikasyon yaptığım DB imi değiştirdim ve aşağıda gördüğünüz gibi Tursef_DBB isimli DB replikasyon sonucu SQL02 makineme başarılı bir şekilde geldi.
Sql_Rep_55
Yapılan Replikasyonu takip etmek için Publisher makinem üzerinde Lunch Replication monitör diyerek replikasyonları görüntüleyebilirsiniz.
Sql_Rep_57 Sql_Rep_58
Gördüğünüz gibi günün her saati replikasyon yapılmış ve başarılı bir şekilde tamamlanmış.
Sql_Rep_59

Bu makalemizde SQL Replikasyon yapısını ve kavramlarını inceledik umarım faydalı olmuştur.

Hazırlayan

Serdar Bayram

ilginizi Cekebilir

Sql_Replication_01

SQL Server Replikasyon Bölüm-1

Merhabalar , Bu makalemizde SQL serverlar arasında Data Replicationun un nasıl yapıldığını inceliyor olacağız ilk …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


*