SQL Express Yedek Alma Rehberi (Otomatik)

Tolga CEYHAN
3 Min Read
Scheduled Backup Script + Batch Dosyası ile Tam Rehber

SQL Express Yedek Alma (Scheduled Backup)

SQL Express yedek alma işlemi, özellikle küçük ve orta ölçekli işletmeler için kritik bir güvenlik önlemidir. Ancak ne yazık ki, SQL Server Express sürümünde SQL Agent özelliği yer almaz. Bu nedenle, zamanlanmış görevleri doğrudan oluşturamazsınız.

İyi haber şu: Bu sınırlamayı basit bir SQL scripti ve batch dosyası ile aşabilirsiniz. Bu rehberde, SQL Express otomatik yedekleme işlemini adım adım anlatıyorum. Ayrıca, yalnızca birkaç dakikada kurulum yaparak günlük yedekleme işlemlerini sorunsuz şekilde gerçekleştirebilirsiniz. Eski yedekler de otomatik olarak silinir. Kulağa harika geliyor, değil mi?

Neden SQL Server Express?

SQL Server Express, ücretsiz olması nedeniyle küçük işletmelerde sıkça tercih edilen bir veritabanı yönetim sistemidir. Elbette bazı sınırlamaları vardır. Örneğin, veri boyutu limiti ve SQL Agent eksikliği gibi.

Yine de birçok uygulama için yeterlidir. Peki zamanlanmış yedekleme nasıl yapılır? Hemen açıklayalım.

Adım Adım SQL Express Yedekleme Kurulumu

Gerekli Dosyalar

İhtiyacımız olan yalnızca iki dosya:

  • backup.sql – Veritabanı yedeğini alan SQL scripti.

  • SQLBackup.cmd – SQL scriptini çalıştıran batch dosyası.

Aşama 1 : backup.sql Dosyasını Oluşturun

Aşağıdaki kodları bir dosyaya yapıştırın ve backup.sql olarak kaydedin:

DECLARE @path varchar(100)
DECLARE @day int
DECLARE @date varchar(30)
DECLARE @cmd varchar(250)
DECLARE @DeleteDate datetime

-- PARAMETRELER --
SET @path = 'D:\SQL-BACKUP\' -- Yedeklerin kaydedileceği klasör
SET @day = 5 -- Kaç günlük yedek saklanacak?
-- PARAMETRELER --

-- Tarihi dosya adına uygun hale getir
SET @date = CONVERT(varchar(16), GETDATE(), 120)
SELECT @date = REPLACE(@date, ':', '')
SELECT @date = REPLACE(@date, ' ', '')
SELECT @date = REPLACE(@date, '-', '')

-- Tüm veritabanlarını sırayla yedekle
SET @cmd = 'IF DB_ID(''?'')<>2 BACKUP DATABASE [?] TO DISK = ''' + @path + '?_backup_' + @date + '.bak'' WITH INIT'
EXEC sp_msforeachdb @cmd

-- Eski yedekleri sil
SET @DeleteDate = DATEADD(day, -@day, GETDATE())
EXECUTE master.sys.xp_delete_file 0, @path, N'bak', @DeleteDate, 0
GO

 Aşama 2: SQLBackup.cmd Dosyasını Oluşturun

Bir metin dosyası açın ve aşağıdaki satırları yazıp SQLBackup.cmd olarak kaydedin:

cd %windir%
SQLCMD -S .\SQLEXPRESS -U sa -P ŞİFRENİZ -i backup.sql -o D:\SQL-BACKUP\SQL_BKP_LOG_%date%.log

 Aşama 3: Görevi Zamanlayın (Task Scheduler)

  1. Görev Zamanlayıcı (Task Scheduler) uygulamasını açın.

  2. Yeni bir görev oluşturun.

  3. Tetikleyici olarak günlük bir zaman belirleyin (örneğin her gece 23:00).

  4. Eylem (Action) kısmında SQLBackup.cmd dosyasını seçin.

Yapmamız gerekenler bu kadar kolay!

Bu yöntemi uyguladığınızda, SQL Express veritabanlarınızı her gün düzenli olarak yedeklersiniz. Dahası, eski yedekler otomatik olarak silinir. Böylece hem veri güvenliğini sağlarsınız hem de disk alanınızı verimli kullanırsınız.

Sonuç olarak, birkaç dosya ve bir zamanlayıcı ile manuel işlem yapmadan yedekleme sürecini tamamen otomatikleştirebilirsiniz. Bu da sistem yöneticileri için büyük bir zaman tasarrufu sağlar.

Sorularınız varsa yorum yapmaktan çekinmeyin.
 Yazıyı faydalı bulduysanız paylaşarak başkalarının da yararlanmasını sağlayabilirsiniz. İyi çalışmalar dilerim.

Bu makaleyi paylaş
Takip et:
Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.
Yorum Yap

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir