Bu rehber, Ola Hallengren’in meşhur SQL Server Bakım Çözümü’nü kullanarak, Cumartesi Tam (Full) ve hafta içi Diferansiyel (Differential) yedekleme stratejinizi adım adım nasıl kuracağınızı anlatır.
Adım 0: Kurulum Öncesi Hazırlık ve Script İndirme (Kritik!)
Bu adım, DatabaseBackup prosedürünün çalışması için gereken altyapıyı oluşturur.
0.1. Gerekli Scriptleri İndirme
- Resmi Kaynağa Gidin: Tarayıcınızı açın ve Ola Hallengren’in SQL Server Bakım Çözümü sayfasına gidin.
- Scriptleri İndirin: Yedekleme stratejiniz için aşağıdaki üç temel
.sqldosyasını indirin:CommandLog.sqlCommandExecute.sqlDatabaseBackup.sql
0.2. Yedekleme Klasörünü Hazırlama
- Dizin Oluşturun: Yedekleme dosyalarınızın tutulacağı, sunucunuzda veya ağ üzerinde bir dizin oluşturun.
- Örnek:
C:\SQLBackups\veya\\PaylasimAdiniz\SQLBackups\
- Örnek:
- Yetki Kontrolü: SQL Server hizmet hesabınızın (genellikle
NT Service\MSSQLSERVERveya etki alanı hesabı) bu dizine Yazma/Değiştirme iznine sahip olduğundan emin olun.
0.3. Scriptleri Kurma
Tüm scriptler, sunucunun ana yönetim veritabanı olan master veritabanına kurulmalıdır.
- SSMS’yi Açın ve Bağlanın.
- master Veritabanını Seçin: Yeni bir Sorgu Penceresi (
Ctrl + N) açın ve bağlandığınızın sol üstteki açılır menüdemasterolarak ayarlandığından emin olun. CommandLog.sqlKurulumu: İndirdiğinizCommandLog.sqldosyasını açın ve sorgu penceresinde çalıştırın. Bu, yedekleme sonuçlarının kaydedileceği tabloyu oluşturur.CommandExecute.sqlKurulumu: İndirdiğinizCommandExecute.sqldosyasını açın ve sorgu penceresinde çalıştırın.DatabaseBackup.sqlKurulumu: İndirdiğinizDatabaseBackup.sqldosyasını açın ve sorgu penceresinde çalıştırın.
Bu adımlarla artık dbo.DatabaseBackup saklı yordamını kullanmaya hazırsınız.
Adım 1: Haftalık Tam Yedekleme (FULL) İşini Kurma
Bu iş, zincirin başlangıcını oluşturur ve 7 günlük temizliği yönetir.
1.1. SQL Server Agent İşini Oluşturma
- SSMS’de SQL Server Agent $\rightarrow$ Jobs klasörüne sağ tıklayın ve New Job seçeneğini seçin.
- General (Genel) sayfasında bir isim verin:
01-FULL_Haftalik_Yedekleme
1.2. Adımı (Step) Tanımlama
- Steps (Adımlar) sayfasına gidin ve New butonuna tıklayın.
- Type (Tip):
Transact-SQL Script (T-SQL) - Database:
master - Command (Komut): Aşağıdaki komutu yapıştırın. (Yolu değiştirmeyi unutmayın!)
EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES', -- Sadece kullanıcı veritabanlarını yedekle
@Directory = N'C:\SQLBackups\', -- !!! YEDEKLEME YOLUNUZU BURAYA YAZIN !!!
@BackupType = 'FULL', -- Tam Yedekleme tipi
@Verify = 'Y', -- Yedekleme bütünlüğünü kontrol et
@CleanupTime = 168, -- 7 gün (7 * 24 saat) süresince tut
@CleanupMode = 'BEFORE_BACKUP', -- Yeni yedeklemeden önce eskileri temizle
@Compress = 'Y', -- Yedeklemeyi sıkıştır
@Checksum = 'Y',
@LogToTable = 'Y' -- CommandLog tablosuna kayıt tut
GO
1.3. Zamanlamayı (Schedule) Ayarlama
- Schedules (Zamanlamalar) sayfasına gidin ve New butonuna tıklayın.
- Name (Ad):
Cumartesi_2330 - Occurs (Tekrarlama):
Weekly - On (Gün): Sadece Saturday (Cumartesi) seçeneğini işaretleyin.
- Saat:
23:30:00(Gece 11:30)
Adım 2: Günlük Diferansiyel Yedekleme (DIFF) İşini Kurma
Bu iş, Tam yedeklemeden sonraki değişen verileri kaydeder.
2.1. SQL Server Agent İşini Oluşturma
- Yeni bir iş oluşturun.
- General (Genel) sayfasında bir isim verin:
02-DIFF_Gunluk_Yedekleme
2.2. Adımı (Step) Tanımlama
- Steps (Adımlar) sayfasına gidin ve New butonuna tıklayın.
- Type (Tip):
Transact-SQL Script (T-SQL) - Database:
master - Command (Komut): Aşağıdaki komutu yapıştırın. (Yolu Adım 1’deki ile aynı tutun!)
EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@Directory = N'C:\SQLBackups\', -- !!! AYNI YEDEKLEME YOLU !!!
@BackupType = 'DIFF', -- Diferansiyel Yedekleme tipi
@Verify = 'Y',
@CleanupTime = 168, -- 7 gün boyunca tut
@CleanupMode = 'BEFORE_BACKUP',
@Compress = 'Y',
@Checksum = 'Y',
@LogToTable = 'Y'
GO
2.3. Zamanlamayı (Schedule) Ayarlama
- Schedules (Zamanlamalar) sayfasına gidin ve New butonuna tıklayın.
- Name (Ad):
Pazar_Cuma_2330 - Occurs (Tekrarlama):
Weekly - On (Gün): Cumartesi hariç tüm günleri işaretleyin (Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma).
- Saat:
23:30:00(Gece 11:30)
🏁 Sonuç: Temizlik ve Yönetim
- Temizlik Garantisi: Her iki komuttaki
@CleanupTime = 168ayarı sayesinde, sistem 7 günden eski olan ve geri yükleme zincirini kırmayacak tüm yedekleri otomatik olarak silecektir. - İzleme:
@LogToTable = 'Y'ayarı, her yedekleme işleminin sonucunumasterveritabanındakidbo.CommandLogtablosuna yazar. Hata kontrolü için bu tabloyu düzenli olarak kontrol edin.







Leave a Reply to %s