Büyük ölçekli veritabanlarını yönetirken karşılaşılan en büyük zorluklardan biri, backup işlemlerinin süresini minimize etmektir. Veri boyutu terabayt seviyelerine ulaştığında, tek bir dosyaya yedek almak hem disk I/O limitlerine takılır hem de operasyonel riskleri artırır. İşte bu noktada Striped Backup kavramı devreye girer.
Striped Backup, bir veritabanı yedeğinin tek bir hedef yerine, eş zamanlı olarak birden fazla dosyaya (veya aygıta) bölünerek yazılması işlemidir. SQL Server, veriyi bu dosyalar arasında eşit olarak paylaştırır.
Bu yöntem, işletim sistemindeki RAID 0 (Striping) mantığına benzer. Eğer yedeği 4 farklı dosyaya bölerek alırsanız, SQL Server her bir dosyaya paralel olarak yazar. Bu da teorik olarak yazma hızını ve bant genişliğini artırır.
Neden Striped Backup Kullanmalıyız
- Hız (I/O Paralelliği): Tek bir disk kafasının veya kanalının hızına takılmak yerine, birden fazla dosya üzerinden paralel yazma yaparak darboğazları aşarsınız.
- Dosya Boyutu Sınırları: Dosya sistemindeki (FAT32 gibi eski sistemler veya belirli bulut depolama limitleri) maksimum dosya boyutu sınırlarını aşmanızı sağlar.
- Zaman Tasarrufu: Özellikle “Backup Window” dediğimiz, yedekleme için ayrılan dar zaman aralıklarında kritik önem taşır.
AdventureWorks2019 veritabanımızı 3 farklı parçaya bölerek yedekleyelim. Aşağıdaki komut, yedeği tek bir .bak dosyası yerine üç farklı parçaya böler:
BACKUP DATABASE [AdventureWorks2019] TO
DISK = N'C:\Yedek1\AW2019_Part1.bak',
DISK = N'C:\Yedek2\AW2019_Part2.bak',
DISK = N'C:\Yedek3\AW2019_Part3.bak'
WITH NOFORMAT, NOINIT,
NAME = N'AdventureWorks2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Birden fazla disk yoluna backup işlemi gerçekleştirilecekse Add butonuna basılıp yedeklenecek diskler seçilmektedir.

Not: Striped backup alırken dosyaların farklı fiziksel disklerde (LUN) olması performansı maksimize eder. Eğer tüm dosyalar aynı disk üzerindeyse, performans artışı sınırlı kalabilir ancak dosya boyutu yönetimi kolaylaşır.
SQL Server, veriyi dosyalara neredeyse eşit dağıtır. Örneğin 300 GB’lık bir DB, 3 parçalı yedekte yaklaşık 100’er GB’lık dosyalar oluşturur.

Striped Backup kullanmanın en büyük sorumluluğu geri yükleme (restore) aşamasındadır. Yedeği geri yüklemek için tüm parçalara (stripes) aynı anda sahip olmanız gerekir. Eğer 3 parçadan biri kaybolursa veya bozulursa, yedek setiniz geçersiz hale gelir.

USE [master]
RESTORE DATABASE [AdventureWorks2019] FROM
DISK = N'C:\Yedek1\AW2019_Part1.bak',
DISK = N'C:\Yedek2\AW2019_Part2.bak',
DISK = N'C:\Yedek3\AW2019_Part3.bak' WITH FILE = 1,
MOVE N'AdventureWorks2019' TO N'C:\DataLogFile\AdventureWorks2019.mdf',
MOVE N'AdventureWorks2019_log' TO N'C:\DataLogFile\AdventureWorks2019_log.ldf',
NOUNLOAD, STATS = 5
GO
Not: SQL Server, tek bir yedek kümesi için 64 taneye kadar DISK veya TAPE aygıtını destekler.
Not: Striped backup ile WITH COMPRESSION argümanını kullanabilirsiniz. Bu, hem dosya boyutunu küçültür hem de paralel yazma sayesinde işlem süresini inanılmaz derecede optimize eder.
Not: Standart SQL Server Maintenance Plan arayüzü bazen striped backup yapılandırmasında kısıtlı kalabilir. Bu nedenle bu tür işlemler genellikle özel T-SQL scriptleri veya gelişmiş otomasyon araçlarıyla (Ola Hallengren gibi) yönetilir.
Striped backup ile sıkça karıştırılan bir diğer kavram Mirrored Backup‘tır.
- Striped: Veriyi böler (Hız için).
- Mirrored: Verinin aynısını başka bir hedefe daha yazar (Güvenlik için).
Örneğin, hem hızı artırmak hem de yedeği garantiye almak istiyorsanız 2 parçalı striped backup’ı 2 farklı konuma aynalayabilirsiniz.
Striped Backup, özellikle VLDB (Very Large Databases) yöneten DBA’ler için gizli bir silahtır. Veritabanınız büyüdükçe ve yedekleme süreleriniz uzamaya başladığında, altyapınızın izin verdiği ölçüde parçalı yedekleme stratejisine geçmek, sistemin sürdürülebilirliği açısından hayat kurtarıcı olacaktır.
Hızlı yedekleme bir lüks, hızlı geri yükleme ise bir zorunluluktur. Striped backup her ikisine de hizmet eder.
Başka makalede görüşmek dileğiyle..
Başkaları ile alay etmeyin. Hucurat-11