|
|
|
SQL SERVER 2005 EXPRESS EDITON' da OTOMATÝK YEDEKLEME
|
Son güncelleme tarihi: 17 Kasým 2007
Merhaba arkadaþlar,
Bu makalede sizlere anlatmak istediðim þey SQL Server 2005 Express Edition'
da otomatik yedekleme sisteminizi nasýl oluþturabileceðiniz olacak.
SQL Server 2005 Express Edition, SQL Server 2005 serisinin ücretsiz
sürümüdür. Aynen SQL Server 2000' deki MSDE gibi. Fakat SQL Server
2005' in altyapýsýyla ve fazladan özelliklerle. Meselâ artýk veritabaný boyutu sýnýrý
2GB deðil, 4GB.
SQL Server 2005 Express Edition' da otomatik olarak yedek almak
isteyeceðiniz zaman muhtemelen ilk önce SQL Server Agent servisinin
olmadýðýný göreceksiniz. Belki bazýlarý da otomatik yedekleme ve diðer iþlemler
için Maintanence Plan' ý arayacaklar; fakat SQL Server Agent
olmadýðý için, bunu da bulamayacaklar.
SQL Server Agent servisi, SQL Server 2005' in Workgroup,
Standard, Developer ve Enterprise
sürümleriyle geliyor sadece. Ayrýca SQL Server 2005 Express Edition'
da, SSIS (SQL Server Integration Services) da yok. SSIS,
SQL Server 2000' deki DTS (Data Transformation Services)' in ardýlý.
Fakat SSIS tamamen baþtan yazýlmýþtýr ve DTS'
e kýyasla çok güçlüdür. Visual Studio ile tamamen entegre edilmiþtir.
Sonradan SQL Server 2005 Express Edition' ýn bir versiyonu daha
çýktý, bu da SQL Server 2005 Express Edition with Advanced Services.
Bu sürümde, SQL Server 2005 Express Edition' a oranla bazý yeni özellikler var; fakat bunda da SQL Server Agent yok.
Not: Bu özelliklerden burada bahsetmeyeceðim, çünkü konumuzun dýþýnda.
Peki bu yukarýda anlattýklarým, eðer SQL Server 2005 Express Edition
kullanýyorsak zamanlanmýþ \ otomatik (Scheduled) yedek alamayacaðýmýz anlamýna mý
geliyor? Tabii ki hayýr! Her zaman bir yol vardýr =)
Meselâ þöyle bir yol kullanabilirsiniz:
- Almak istediðiniz yedek ile ilgili bir T-SQL Script' i oluþturun.
- Script' i SQLCMD' ye aktararak, orada çalýþtýrýn.
- Windows Zamanlanmýþ Görevler (Windows Scheduled Tasks) kullanarak
bir görev zamanlayýn.
T-SQL Script' ine örnek:
BACKUP DATABASE [test_2000] TO DISK
= N'c:\test\test.bak' WITH NOFORMAT, INIT, NAME = N'test_2000-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
Not: BACKUP komutu hakkýnda daha fazla bilgi almak için aþaðýdaki adresi ziyaret
edebilirsiniz:
http://msdn2.microsoft.com/en-us/library/ms186865.aspx
Not: T-SQL Script' inizi pratik yoldan
oluþturmak:
SQL Server 2005 ile birlikte neredeyse her arayüz penceresinde Script' leme gibi bir özellik var. Meselâ aþaðýdaki çizdiðim yolu takip ederseniz bunu göreceksiniz.
- SQL Server Management Studio Express Edition' ý çalýþtýrýn. SQL Server Instance'
ýnýza baðlanýn.
- Yedeðini almak istediðiniz veritabaný üzerinde farenin sað tuþuna týklayýn ve
açýlan menüden de "Tasks" ardýndan da "Back Up..." öðelerine týklayýn.
- Açýlan "Back Up Database" penceresinde gerekli yedekleme ayarlarýnýzý yaptýktan
sonra, ayný pencerenin en üstünde yer alan iki düðme göreceksiniz. Bunlar: "Script"
ve "Help" düðmeleridir.
- "Script" düðmesinin hemen yanýndaki aþaðý ok düðmeciðine týklayýn ve "Script Action
to File" öðesini seçin. Sizden Script dosyasýný bir yere kaydetmenizi isteyecek.
Bu dosyayý, almak istediðiniz yedeði otomatikleþtirmek için kullanacaðýz. Ona göre
bir yere saklayýn.
Not: Benim örneðimde ben bu dosyayý "c:\Test" klasörü altýnda "OtoYedek.sql"
olarak saklayacaðým.
- Ýsterseniz dosyayý kaydettikten sonra gidip dosyanýn içeriðine bakabilir ve deðiþtirebilirsiniz.
SQLCMD:
SQLCMD.exe, SQL Server 2000' deki ve SQL Server 2005' dte de geriye
dönük destek vermek için hâlâ bulunan OSQL.exe' nin halefi. Bu komut satýrý uygulamasý
ile, SQL Server Instance' ýnýzda iþlemler yapabilirsiniz. Meselâ biz bu makalemizde
yukarýdaki örnekte oluþturduðumuz OtoYedek.sql dosyasýný SQLCMD ile birlikte çalýþtýracaðýz.
SQLCMD uygulamasýný da Windows Zamanlanmýþ Görevler ile çalýþtýracaðýz ve böylece
otomatik yedek almýþ olacaðýz.
Peki oluþturduðumuz OtoYedek.sql dosyasýný SQLCMD ile nasýl çalýþtýracaðýz? Þöyle:
- Bir komut satýrý açýn (Baþlat\Çalýþtýr metin kutusuna "cmd" yazýn ve Tamam düðmesine
týklayýn.)
- Komut satýrýný açtýktan sonra, OtoYedek.sql dosyamýz ile SQLCMD' nin nasýl çalýþtýðýný
görmek için þu komutu yazýn: "SQLCMD -S Ekrem-PC\SQLEXPRESS -E -i C:\Test\OtoYedek.sql"
Not: Bu komuttaki -S anahtarý Sunucu adýný temsil
ediyor. Bendeki sunucu adý "Ekrem-PC". Ayrýca kullandýðým SQL Server Instance' ý
bir "Named Instance". Eðer Default Instance olsaydý, o zaman sadece sunucu adýný
yazmam yeterli olacaktý. -E anahtarý ise Güvenli Baðlantý (yani
Windows Authentication' ý) ' yý temsil ediyor. Eðer SQL Server' da yetkilendirme
için Windows Authentication deðil de, SQL Server Login kullanýyorsanýz o zaman -E
anahtarýný kullanmayý, -U anahtarý ile kullanýcý adýnýzý, -P
anahtarý ile de þifrenizi girmeniz gerekecek. -i anahtarý ise,
kullanmak istediðimiz T-SQL Script dosyasýnýn yolunu tarif etmek içindir.
- Yukarýda vermiþ olduðum satýrý çalýþtýrdýktan sonra, Eðer siz de benimle ayný
yoldan gittiyseniz, ayný isimli klasör ve dosyalarý kullandýysanýz (ki daha önceden
"C:\Test" klasörünü oluþturmuþ olmanýz gerekiyor, yoksa hata alýrsýnýz) "C:\Test"
klasöründe "test.bak" isimli bir dosyanýn oluþtuðunu göreceksiniz.
Not: SQLCMD hakkýnda daha fazla bilgi edinmek istiyorsanýz ve diðer anahtarlarýný
da öðrenmek istiyorsanýz, komut satýrýndayken "SQLCMD - ?" yazýp Enter tuþuna basabilirsiniz.
Þimdi sýra Windows Zamanlanmýþ Görevler' e geldi.
Zamanlanmýþ Görevler:
- Denetim Masasý \ Zamanlanmýþ Görevler
- Zamanlanmýþ Görev Ekle
- Zamanlanmýþ Görev Sihirbazýndan: Gözat düðmesine týklayýn ve SQLCMD dosyasýn bulun
(Benim test makinemdeki yeri ve varsayýlan yeri örnek olarak þöyledir: "C:\Program
Files\Microsoft SQL Server\90\Tools\Binn")
- Ýhtiyacýnýza göre zamaný ayarlayýn,
- Görevin çalýþmasýný saðlayacak ve yeterli yetkilere sahip bir kullanýcý hesabýnýn
bilgilerini girin
- Görevi oluþturduktan sonra görevin özelliklerine girin ve Çalýþtýr mtin kutusundaki
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.exe" yazan satýra, yukarý
kullandýðýmýz anahtarlarý da ekleyin. (Örn: "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.exe
-S Ekrem-PC\SQLEXPRESS -E -i C:\Test\OtoYedek.sql"
Özet:
Özetle, Windows Görev Zamanlayýcýsýndan zamanladýðýnýz görevi,
SQLCMD' nin yazdýðýnýz TSQL Script' ini çalýþtýrmasý
için kullanarak veritabanýnýza ait veri ve log dosyalarýnýn yedeklerini alabilirsiniz.
"Neden veritabaný dosyalarýmýn (mdf, ndf, ldf vs.) yedeklerini doðrudan NTBackup
ile alamýyorum?" diye sorabilirsiniz, alamazsýnýz çünkü kullanýmda olan veritabaný
dosyalarý kopyalanamaz. Bu iþlem için ilk önce veritabanýnýn baðýný çözmeniz (Detach)
gerekir. Bu da, veritabanýnýzýn bir süreliðine de olsa kullanýlamaz hale gelmesi
demektir. Ayrýca yedekleme sistemini otomatikleþtirmesiyle de alâkasý yoktur ve
hiç pratik deðildir.
Ekrem Önsoy
|
|
Anasayfa |
|