>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.

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
Yani bir task tanımlamak için Task Scheduler Library >> Create Task a basıyoruz.
General kısmını aşağıdaki gibi ihtiyacımıza göre dolduruyoruz.
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.
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.

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

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.

Kaynak : Çözümpark
http://www.cozumpark.com/blogs/sql/archive/2010/10/24/sql-server-express-te-otomatik-scheduled-backup-alma.aspx

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s