SQL Server Agent ile Otomatik Veritabanı Yedekleme
- Ali
- | 07 May 2025
- | SQL
Herkese merhaba Ben Ali,
SQL Server Agent, SQL Server'ın sunduğu, zamanlanmış görevleri otomatik olarak gerçekleştirebilen güçlü bir hizmettir. Bu servis sayesinde veritabanı yedekleme, e-posta gönderme, düzenli veri aktarımı gibi birçok işlemi zamanlayarak belirli aralıklarla otomatik hale getirebiliriz.
Bu uygulamada, SQL Server Agent kullanarak belirli aralıklarla FULL (tam) ve DIFFERENTIAL (farklı yedek) yedeklemeler alacak bir yapı kuracağız. Böylece hem temel yedekleme kavramlarını hem de bu işlemlerin nasıl zamanlanacağını öğreneceğiz.
CREATE DATABASE BACKUPTEST
GO
USE BACKUPTEST
GO
CREATE TABLE DATES (
ID INT IDENTITY PRIMARY KEY,
DATE_ DATETIME
)
DECLARE @I INT
SET @I = 0
WHILE @I < 10
BEGIN
INSERT INTO DATES (DATE_)
VALUES (GETDATE())
SET @I = @I + 1
END
Bu işlem sayesinde tabloya, GETDATE()
fonksiyonu aracılığıyla sistem saatine göre kayıtlar eklenmiş olur.
Full Backup (Tam Yedekleme)
- SSMS üzerinden Object Explorer’da BACKUPTEST veritabanına sağ tıklayın.
- Tasks > Back Up seçeneğini seçin.
- Backup Type: Full olarak ayarlayın.
- Sol üstteki Script butonuna tıklayarak script'i alın.
Differential Backup (Farklı Yedekleme)
- Aynı işlemleri yaparak bu kez Backup Type: Differential olarak ayarlayın.
SQL Server Agent aktif değilse önce servisi başlatmalısınız. Management Studio'da "SQL Server Agent" üzerine sağ tıklayıp Start seçeneğini kullanabilirsiniz.
FULL Backup Job Oluşturma
- Object Explorer > SQL Server Agent > Jobs > Sağ Tık > New Job
- Name: Full BACKUP
- Step Name: Full Backup
- Database: master
- Command: (Daha önce aldığınız FULL BACKUP script'i)
- Name: Günde 4 Kez
- Schedule Type: Recurring
- Frequency: Daily
- Occurs every 6 hours
DIFFERENTIAL Backup Job Oluşturma
- Object Explorer > SQL Server Agent > Jobs > Sağ Tık > New Job
- Name: DIFF Backup
- Step Name: DIFF Backup
- Database: master
- Command: (Daha önce aldığınız DIFFERENTIAL BACKUP script'i)
- Name: Her Dakika
- Schedule Type: Recurring
- Frequency: Daily
- Occurs every 1 minute
Differential yedeklemelerin çalışabilmesi için öncelikle bir kez Full backup alınması gerekir. Bunun için:
- SQL Server Agent > Jobs > Full Backup job’ına sağ tıklayın.
- Start Job at Step seçeneği ile manuel olarak çalıştırın.
Bu uygulamada temel düzeyde SQL Server Agent kullanımı ile yedekleme işlemlerini otomatik hale getirmeyi öğrendik. Bu süreç şunları kapsar:
- SQL Server Agent kavramına giriş
- Temel veritabanı oluşturma ve veri ekleme
- Full ve Differential backup script'lerinin oluşturulması
- Job planlamaları ile zamanlama yapılandırmaları