Hoþgeldiniz           
   
"SQL Server baþvuru kaynaðýnýz"
Skip Navigation Links
=========
Anasayfa
Makaleler
Hatalar \ Çözümler
Duyurular
Diðer
Ýpuçlarý
Yararlý Adresler
Mesaj TahtasýExpand Mesaj Tahtasý
HakkýmdaExpand Hakkýmda
Ýletiþim
Kullanýcý Adý:
Þifre:
 

Ne Mutlu Türküm Diyene!

SQL Server ile ilgili soru sormak için buraya týklayýn!


Yazýlarýmý nasýl buluyorunuz?






En Son SQL Server ile Ýlgili Okuduðum Kitaplar
- Inside Microsoft SQL Server 2005: Query Tuning and Optimization - MS Press (Ýngilizce)
- Accelerated SQL Server 2008 - Apress (Ýngilizce)
- Designing and Optimizing Data Access by Using SQL Server 2005 - MS Press (Ýngilizce)
- Microsoft SQL Server 2005 Database Solutions Design - Wiley Publishing (Ýngilizce)- Optimizing and Maintaining a Database Administration Solution by Using SQL Server 2005 - MS Press (Ýngilizce)- Designing a Database Server Infrastructure Using SQL Server 2005 - MS Press (Ýngilizce)- SQL Server 2005 Implementation and Maintenance - MS Press (Ýngilizce)
- SQL Server 2005 Administrators Companion - MS Press (Ýngilizce)


       
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


 
Bu sitenin tüm haklarý, Ekrem Önsoy' a aittir.