SQL Server Replikasyon Bölüm-2
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.
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.
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.
Ç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.
Servisimizi Automatic e alıyoruz ve apply dedikten sonra start butonuna basarak start ediyoruz.
Bu işlemin aynısını SQL Server 02 makinem üzerinde de gerçekleştiriyorum.
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.
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.
Gördüğünüz gibi sql02 makineside panelime eklendi.
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.
Next Diyerek Devam ediyoruz.
Burada Distributor makineyi seçmemizi istiyor ben publisher ve distributor makineyi aynı makine (SQL01) yapacağım için değiştirmeden devam ediyorum
Burada publish edilecek olak DB in snaphost folderını belirlememizi istiyor ben bu yolu değiştirmiyorum.
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.
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.
Distribution DB e bir isim vermemizi istiyor ben değiştirmeden devam ediyorum.
Bu ekranda ise Publisher(Yayımcı) makinemi belirtiyorum benim yapımda bu makine gene SQL01 makinesi
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.
Kayıt edeceğim lokasyonu seçiyorum ben masa üstüne atıyorum.
Son adım olarak fnish diyerek wizardı tamamlıyoruz.
Gördüğünüz gibi Publisher ve Distributor makinemiz artık hazır.
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.
Karşıma gelen Wizard ekranında Next diyerek devam ediyorum.
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.
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.
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.
Tablonun içeriğine dair özet bir bilgi geliyor.
Burada taşınmasını istemediğiniz filtrelemek istediğiniz bir tablo var ise burada seçim yapabilirsiniz.
Bu ekranda Schelude seçeneğini seçerek bu publisher için bir kural yazabilirsiniz buna tik koyarak change diyorum.
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.
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.
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.
Ö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.
Yaptığım işlemin sql komutlarına çevrilmiş halini kayıt etmek istiyorum Next diyerek devam ediyorum.
Finish diyerek publisherımı oluşturuyorum.
Gördüğünüz gibi artık Veri tabanım publish edilmiş durumda bundan sonraki bölüm Subscraber(Abone) yapılandırması olacak.
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.
SQL02 makinem üzerinde ;
Replication–>Local Subscriptions seneğini seçiyorum.
Burada hangi publisher makineden alacaksam o sql serverın bilgileri ile connect oluyorum.
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.
Next diyerek devam ediyorum.
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.
Aşağıdaki ekran karşımıza geliyor ve burada DB ismini girerek ok diyoruz.
Müşteri Db imizi SQL02 makinemiz üzerinde oluşturduk.
SQL serverlar üzerindeki yetkili hesabı giriyoruz.
Next Diyerek devam ediyorum.
Bu ekranda schelude diyerek belli saatlerde replikasyon yapması için kural oluşturabilirsiniz.
Ben her saat başı bu işlemi yapması için bir job yazıyorum.
Yazmış olduğum bu replikasyon işlemine immediately diyerek wizardı tamamlayınca hemen başlat diyorum.
Wizardım başladı ve gördüğünüz gibi başarıyla tamamlandı.
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.
Yapılan Replikasyonu takip etmek için Publisher makinem üzerinde Lunch Replication monitör diyerek replikasyonları görüntüleyebilirsiniz.
Gördüğünüz gibi günün her saati replikasyon yapılmış ve başarılı bir şekilde tamamlanmış.
Bu makalemizde SQL Replikasyon yapısını ve kavramlarını inceledik umarım faydalı olmuştur.
Hazırlayan
Serdar Bayram
Makale ve video anlatım harika olmuş. Ellerine sağlık. Çok başarılı.