Anasayfa » SQL Server Express’te Otomatik Scheduled Backup Alma

Makaleyi Paylaş

SQL Server

SQL Server Express’te Otomatik Scheduled Backup Alma

Makalemizde size basit ama bana çok sorulan bir konudan bahsetmek istiyorum. Bildiğiniz gibi SQL Server’da otomatik backup alınabilmektedir. Örneğin her akşam saat 20.00’de backup alınsın diye bir job tanımlanabilir. Bu job’ı işleten servis ise SQL Server Agent’tır ve SQL Server’ın Express yani ücretsiz sürümünde SQL Server Agent’ı bulunmamaktadır.

 

Bugünkü makalemde SQL Server Express sürümünde Windows Scheduler servisini kullanarak nasıl otomatik backup alınacağını anlatıyor olacağım.

 

Giriş paragrafında da belirttiğim gibi Express sürümlerinde SQL Server Agent bulunmamaktadır. Dolayısıyla otomatik backup işlemini Windows’un kendi scheduler servisi ile yapacağız.

 

Yapacağımız işlem aslında basit. Backup alacak script i hazırlayıp bu scripti sqlcmd ile windows scheduler servisi vasıtasıyla istediğimiz zamanlar tetikleyeceğiz. Bu arada windows scheduler task SQL Server Agent gibi verilen taskları belirli periyotlarda çalıştırmaya yarar.

Sponsor

 

Ben bugünkü örneğimi Windows Server 2008 Standart ve SQL Server 2005 Express üzerinde gerçekleştireceğim. Diğer edition’larda ufak ekran farklılıkları olmakla birlikte işin ana mantığı aynıdır.

 

Şimdi adımlarımıza geçelim.

 

Backup almak istediğimiz DB için backup script i hazırlıyoruz.

 

BACKUP DATABASE [AdventureWorks]
TO DISK =
N’C:\AdventureWorksDailyBackup.bak’
WITH
INIT
GO

 

Bu script i “E:\SQLBackups\DailyBackup.sql” olarak kaydediyoruz.

 

Windows scheduler task’ında bu dosyayı aşağıdaki komutlar eşliğinde çalıştıracağız. İlk komut DB Server’a windows authentication bağlanmakta, 2.komut ise belirli bir SQL Login ile bağlanmakta. Hangisi sizin için uygunsa onu kullanabilirsiniz. Ben ilkini kullanacağım.

 

sqlcmd S serveradi\instanceadi i “E:\SQLBackups\DailyBackup.sql”

 

sqlcmd S serveradi\instanceadi U BackupAdmin P sifre i “E:\SQLBackups\DailyBackup.sql”

 

Bu arada serveradi\instance adi kısmını kendi server bilgilerinize göre düzenleyiniz. Instance adı Express sürümlerde genelde SQLExpress olmaktadır. Tam olarak ne olduğuna SQL Server Configuration Manager’dan bakabilirsiniz.

 

Şimdi Task tanımlamalarına başlamak için Task Scheduler’ı açıyoruz.

 

 

image001

 

 

Yani bir task tanımlamak için Task Scheduler Library >> Create Task a basıyoruz.

 

 

image002

 

 

General kısmını aşağıdaki gibi ihtiyacımıza göre dolduruyoruz.

 

 

image003

 

 

Schedule kısmında hangi sıklıkla bu task’ın çalışacağını belirliyoruz. Bizim taskımız her gece 11 de çalışacak.

 

 

image004

 

 

 

Action kısmında New Action’a basarak işi yapacak işlemi tanımlıyoruz. Bu işlemimiz bir program çalıştıracak. Browse kısmında sqlcmd.exe’sini seçiyoruz. Bu exe genelde C:\Program Files\Microsoft SQL Server\90\Tools\binn klasöründe bulunmaktadır. Son olarakta Add arguments kısmına daha önce yazdığım komutlardan hangisi size uyuyorsa o komutun sqlcmd den sonraki kısmını yazıyoruz. Örneğin aşağıdaki gibi;

 

 

sqlcmd S serveradi\instanceadi i “E:\SQLBackups\DailyBackup.sql”

 

 

Ok’e basarak bu ekranı kapatıyoruz.

 

 

image005

 

 

Artık Scheduler’ımız hazır. Scheduler’a sağ tıklayarak manuel olarak tetikliyoruz.

 

 

image006

 

 

Task çalışmasını bitirip sonlandığında ilgili klasöre backup’ların alındığını göreceğiz.

 

Makalemizde yazımda ücretsiz SQL Server sürümü olan Express Edition’da otomatik backup işleminin Windows Scheduler ile nasıl gerçekleştirebileceği üzerinde durdum. SQL Server Agent içermeyen bu sürümde Windows Scheduler kullanarak bu ihtiyacınızı yukarıdaki adımlar eşliğinde sorunsuzca halledebilirsiniz.

 

Makaleyi Paylaş

Cevap bırakın