Bu makalede Alwayson yapımızda secondary only yöntemiyle backup alma işlemini ele almış olacağız. Primary yöntemiyle backup alma işleminin tam tersi olarak karşımıza çıkmaktadır. Bu yöntemle backuplarımızın sadece secondary sunucusu üzerinden backup alma işlemini yapmış olacağız.
Not: Herhangi bir AG altında bulunan veritabanımızın backup’ını almak istiyorsak backup alma işlemini sadece AG yapımızı belirterek backup almamız gerekmektedir. Ne kadar AG properties ekranından backup alınacak sunucuyu değiştirsek bile secondary sunucusudan backup işlemi gerçekleşmez. Secondary sunucusunda full backup sadece copy only yöntemiyle alınmaktadır. Secondary sunucusunda log backup hem copy only hemde normal bir şekilde alınmaktadır. Diff backup ise ne copy only nede normal bir diff backup şekilde alınmaz. Tabi bunlar AG altında bulunan veritabanları için geçerli bir özelliktir.
Herhangi bir AG properties ekranında Secondary only yapısı aktif edilir.

İlk olarak primary sunucusu üzerinden backup işlemini gerçekleştirelim.
EXECUTE [dbo].[DatabaseBackup]
@AvailabilityGroups='SQLAG1',
@Directory = N'C:\BACKUP',
@CopyOnly ='Y',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 168,
@CleanupMode = 'AFTER_BACKUP',
@CheckSum = 'Y',
@Compress = 'Y',
@LogToTable = 'Y';
Yukarıdaki komutu Primary olan replicamız üzerinde bulunan ilgili AG altında çalıştırdığımızda bu replicadan backup alınamayacağına dair mesaj almış oluruz. Copy only ifadesi eklenmesi primary sunucusu üzerinden backup işlemi gerçekleşmektedir.

Aynı komutu secondary sunucusu üzerinde çalıştırdığımızda işlemin başarılı ile sonuçlandığını görmüş oluyoruz. İlgili komutun secondary sunucusunda çalıştırılması yeterli değildir. Backup komutumuzun içeriğine copy_only seçeneğinin eklenmesi gerekmektedir.
EXECUTE [dbo].[DatabaseBackup]
@AvailabilityGroups='SQLAG1',
@Directory = N'C:\BACKUP',
@CopyOnly ='Y',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 168,
@CleanupMode = 'AFTER_BACKUP',
@CheckSum = 'Y',
@Compress = 'Y',
@LogToTable = 'Y';
Aşağıdaki ekran resminde backup’ın secondary sunucusunda başarılı bir şekilde alındığını görmüş oluyoruz.

Aşağıdaki komutta AG yapımızı belirtmezsek bile availability group üzerinden primary sunucusundan backup almadığını sadece stand alone veritabanlarında backup işleminin gerçekleştiğini görebiliriz.
EXECUTE [dbo].[DatabaseBackup]
@Databases='USER_DATABASES',
@Directory = N'C:\BACKUP',
@CopyOnly ='Y',
@BackupType = 'FULL',
@Verify = 'Y',
@CleanupTime = 168,
@CleanupMode = 'AFTER_BACKUP',
@CheckSum = 'Y',
@Compress = 'Y',
@LogToTable = 'Y';

Aynı komutu secondary sunucusunda çalıştırıldığında backup’ın başarılı bir şekilde alındığını görmüş oluyoruz.

Resimde dikkat ederseniz sadece Secondary only seçeneği aktif olan AG yapımızın backup’ının alındığını görmekteyiz. Stand alone veritabanları için bir sıkıntı olmadığını dile getirmiştik.
Log backup işleminin primary sunucu üzerinde sadece stand alone veritabanlarında gerçekleştiğini görmüş oluyoruz.
EXECUTE [dbo].[DatabaseBackup]
@Databases='USER_DATABASES',
@Directory = N'C:\BACKUP',
@BackupType = 'LOG',
@Verify = 'Y',
@CleanupTime = 168,
@CleanupMode = 'AFTER_BACKUP',
@CheckSum = 'Y',
@Compress = 'Y',
@LogToTable = 'Y';

Bu makalede Secondary Only Yöntemi ile Backup Alma işlemini görmüş olduk. Başka bir makalede görüşmek dileğiyle..
“Demek ki, zorlukla beraber bir kolaylık var.” İnşirah-5