Transactional Replikasyonun Backup Kullanılarak Kurulması

Varsayılan olarak iki SQL server arasında replikasyon kurduğunuzda kurulum aşamasındaki ilk senkronizasyon yani her iki veritabanının eşitlenmesi işlemi Snapshot Agent tarafından yapılır. Snapshot Agent Publisher üzerindeki veritabanının Snapshot’ını alarak ilgili Subscriber’lara gönderir. Fakat veritabanı boyutunun büyük olduğu durumlarda Snapshot alınması ve Subscriber’a gönderilmesi çok uzun zaman almaktadır. Bu sebeple özellikle büyük boyutlu veritabanlarını kullanarak tanımlanacak replikasyonlarda SnapShot kullanmak yerine veritabanının son alınan Backup’ını kullanabiliriz.

Replikasyonu başlatırken backup dosyasının kullanılacağını belirtmek için allow_initialize_from_backup seçeneğinin aktif edilmesi yeterli olacaktır. Ayrıca Publisherdan Subscriber’lara Snapshot gönderilmeyeceği için replikasyon kurulumu yaparken Snapshot Agent’ın çalıştırılması gerekiyor. Bunu da Publisher’ı tanımlarken karşımıza gelen aşağıdaki adımda yapabiliriz.

Yukarıdaki seçeneği kullanarak replikasyonu tanımladıktan sonra yapmamız gereken allow_initialize_from_backup seçeneğini aktif etmek olacaktır. Bunu için tanımladığımız Publication üzerinde aşağıdaki gibi sağ tıklayarak özellikler penceresini açalım. Açılan penceredeki sağ panleden Subscription Options seçeneğine gelelim ve sağ tarafta kırmızı ile işaretlenmiş olan ve varsayılan ayarı false olan Allow initialization from backup files seçeneğini true yapalım.

Yukarıdaki işlemden sonra artık Subscription tanımlarken Snapshot Agent yerine alacağımız backup dosyalarını kullanabilriiz. Aynı işlemi T-SQL yardımıyla da aşağıdaki gibi yapablirsiniz.

EXEC sp_changepublication

  @Publication=Publication_Name,

  @property = N'allow_initialize_from_backup', 

  @value = True

Bu işlemi yaptıktan sonra artık Publisher üzerinde veritabanının backup’ını alıp Subscriber’a restore etmemiz gerekiyor. Ayrıca alacağımız backup dosyasını da Subscription’ları tanımlarken kullanacağız bu nedenle backup’ın bir kopyasının da Publisher üzerinde kalması gerekiyor.Şimdi aşağıdaki gibi veritabanı backup’ımızı alalım.

BACKUP DATABASE Adventureworks TO DISK='H:\Adventureworks_Full_Replikasyon_Oncesi.bak'
WITH STATS=10,COMPRESSION
GO

Yukarıdaki gibi aldığımız backup bitince bu backup dosyasını Subscriber’a kopyalanarak restore edilmesi gerekiyor. Restore işlemi bittikten sonra artık aşağıdaki gibi Replikasyon tanımlamasını yapabiliriz.

USE Adventureworks

GO

EXEC sp_addsubscription

@publication =Pablication_Name,

@subscriber = 'Subscriber olacak makine',

@destination_db = Adventureworks,

@sync_type = 'initialize with backup',

@backupdevicetype ='disk',

@backupdevicename = 'D:\Adventureworks_Full_Replikasyon_Oncesi.bak'

Eğer herhangi bir hata ile karşılaşmamışsak aşağıdaki gibi replikasyonun baarılı bir şekilde tanımlandığına dair bir mesaj karşımıza gelecek.

 

Yazıyı beğendiyeseniz sosyal medyada paylaşabilirsiniz.

Yazar Hakkında

Avatar
İsmail Adar

Dogan Online Database Administrator,Yazar

cialis generic kamagra gel cheap cialis uk levitra uk cialis generic kamagra gel kamagra 100mg cheap cialis uk cheap levitra uk cheap cialis kamagra 100mg cialis tadalafil kamagra oral jelly cialis buy viagra generic levitra uk kamagra gel cialis generic cheap levitra cheap viagra uk

Yorumlar

  1. Avatar
    Erkan Yüksel

    04/03/2015

    Tesekkrler hocam elinize saglik. Faydali bir konu

Yorum Yazın

.com

Bülten Üyeliği

Güncel eğitim ve etkinliklerden ilk haberdar olmak için ücretsiz abone olun.

Login

Login olmak için kullanıcı adınızı ve şifrenizi giriniz.

Şifremi Unuttum

×

Hızlı İletişim

Her konuda bana yazabilirsiniz. En kısa zamanda cevap vereceğim.

×