SQL Server

SQL Server Replikasyon Bölüm-2

Sql_Replication_02

Bu Makalemizde SQL server Replikasyon islemleri, Server Publisher, Distributor, Subscriber yapılandırması  ve Replication islemlerinin monitor edilmesi calismalarina 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_08

Sql_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

Serdar Bayram

Bu yazı blog üzerinde Serdar Bayram tarafından hazırlanıp paylaşılmıştır. 2009 yılında açılan blogum kısa zaman içerisinde paylasımları ile dikkat cekip büyük bir izleyici kitlesine sahip olmuştur.

Bir Yorum

Bir cevap yazın

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

Başa dön tuşu