Forum

SQL express 2005 ba...
 
Bildirimler
Hepsini Temizle

SQL express 2005 bat dosyası ile yedekleme...

8 Yazılar
7 Üyeler
0 Likes
3,677 Görüntüleme
(@thismagic)
Gönderiler: 4
Active Member
Konu başlatıcı
 

Merhaba


sql express 2005 bat dosyası yaparak yedeklemek istiyorum.


gunluk yedekleme yapmak istiyorum..şu şekilde bi şey denedim..olmadı..


yardımcı olursanız sevinirim.. şimdiden teşekkürler...


net stop msdtc
    net stop sqlserveragent
    net stop mssqlserver
    net stop SQLAGENT$SQL2005
    net stop MSSQL$SQL2005
xcopy ..............................................yada başka rar yapacak bişeyde olur...
net start msdtc
    net start sqlserveragent
    net start mssqlserver
    net start SQLAGENT$SQL2005
    net start MSSQL$SQL2005 


 

 
Gönderildi : 21/01/2010 17:40

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

Merhaba


İlgili veritabanlarını sıkıştırmadan ntbackup ile ya da manuel olarak yedek almayı deneyin.


Ve herhangi bir hata verecek mi onu kontrol edin.

 
Gönderildi : 21/01/2010 18:12

(@thismagic)
Gönderiler: 4
Active Member
Konu başlatıcı
 

teşekkür ederim...sorumun cevabını şu şekilde buldum...


1.yöntem........................


@ECHO OFF
NET STOP MSSQL$SQLEXPRESS
XCOPY C:\MIKRO E:\YEDEK /S /Y
NET START MSSQL$SQLEXPRESS
exit


2.yöntem......................


T-SQL Script yaparak ve bu scripti SQLCMD ile bat dosyası haline


getirerek...


 


çok teşekkür ederim...


 


2 yöntem için buldugum kaynak şu şekildedir............


 


QL SERVER2005 EXPRESS Edition' da Otomatik Yedekleme


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.



 


 


 

 
Gönderildi : 21/01/2010 18:45

(@ahmetaltuntas)
Gönderiler: 731
Prominent Member
 

geri bildirim için teşekkürler.

 
Gönderildi : 21/01/2010 18:59

(@ZaferDOSEME)
Gönderiler: 23
Eminent Member
 

Scriptin biraz basitleştirilmişi aşağıdaki gibidir

 

DECLARE @name VARCHAR(50) -- database name  

DECLARE @path VARCHAR(256) -- path for backup files  

DECLARE @fileName VARCHAR(256) -- filename for backup  

DECLARE @fileDate VARCHAR(20) -- used for file name 

SET @path = 'e:\dbyedek\'  

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

DECLARE db_cursor CURSOR FOR  

SELECT name 

FROM master.dbo.sysdatabases 

WHERE name NOT IN ('master','model','msdb','tempdb')  

OPEN db_cursor   

FETCH NEXT FROM db_cursor INTO @name   

WHILE @@FETCH_STATUS = 0   

BEGIN   

       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  

       BACKUP DATABASE @name TO DISK = @fileName  

       FETCH NEXT FROM db_cursor INTO @name   

END   

CLOSE db_cursor   

DEALLOCATE db_cursor 

 

yukarıdaki scripti bir not defterine yazıp ardından  otoyedek.sql olarak kayıt ettiğinizi düşünürsek ve başka bir not defterine 

C:\Progra~1\MIcros~1\100\Tools\Binn\SQLCMD -S SQLSERVER_ADINI_BURAYA_YAZ -E -i e:\dbyedek\otoyedek.sql

bu komutu yazıp otoyedek.bat olarak aynı dizine koyarsanız otoyedek.bat dosyamızı çalıştırdıgımızda *.bak olarak yedeklememizi başlatmış oluruz unutmadan söyleyeyim SQLCMD.exe nin yolu SQL server versiyonlarına göre değişiklik gösterebilir kolay gelsin

 
Gönderildi : 10/11/2013 17:04

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

net stop mssqlserver
net stop sqlserveragent

xcopy C:\MUHASEBE\*.* \\192.168.1.34\Documents\Muhasebe_Yedek\ /d/e/s/y/c
"C:\Program Files\WinRAR\WinRAR.exe" a -r -df \\192.168.1.34\Documents\Muhasebe\%date%.rar \\192.168.1.34\Documents\Muhasebe_Yedek\*.*

net start mssqlserver
net start sqlserveragent

 
Gönderildi : 12/11/2013 18:25

(@ugurdemir)
Gönderiler: 9888
Illustrious Member
 

http://www.cozumpark.com/forums/thread/405143.aspx

 
Gönderildi : 24/11/2013 02:12

(@KadirCAKIR)
Gönderiler: 48
Trusted Member
 

Ben bu işlemi sıkıştırarak yapıyorum.


net stop sqlserveragent
net stop mssqlserver
RAR.EXE a -ag -r "G:\Backup\Winner\Winner.rar" D:\Winner\*.*
RAR.EXE a -ag -r "G:\Backup\Muhasebe\Muhasebe.rar" D:\Muhasebe\*.*
net start mssqlserver
net start sqlserveragent

 
Gönderildi : 25/11/2013 01:25

Paylaş: