Cumartesi , 20 Ekim 2018

Transactional Replikasyonun Backup Kullanilarak Başlatilmasi

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.

replikasyon1

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.

replikasyon2

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.

replikasyon3

Hakkında ismailadar

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>