Merhaba arkadaşlar,
Bugün sizlere C# kodu ile bilgisayarınızda yüklü olan veritabanının yedeğini nasıl alabileceğinizden bahsedeceğim.
Aşağıdaki kodu kullanarak gerekli anaları doldurup bilgisayarınızda ki veritabanının rahatlıkla yedeğini alabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Backup bkpDBFull = new Backup(); bkpDBFull.Action = BackupActionType.Database; bkpDBFull.Database = "DatabaseName"; bkpDBFull.Devices.AddDevice(@"LocalPath", DeviceType.File); bkpDBFull.BackupSetName = "DatabaseSetName"; bkpDBFull.BackupSetDescription = "DatabaseSetDescription"; bkpDBFull.Initialize = false; Server server = new Server("ServerName"); bkpDBFull.SqlBackup(server); |
Yukarıdaki kod parçacığında aşağıdaki alanları doğru şekilde doldurursanız sorunsuz bir şekilde istediğiniz veri tabanının yedeğini alabilirsiniz.
DatabaseName : Yedeğini almak istediğiniz veritabanı adı. (ÖR : yunusemrearacDB)
LocalPath : Veritabanı yedeğini almasını istediğiniz yer. (ÖR : D:\yunusemrearacDB.bak)
DatabaseSetName : Veritabanı atanacak isim. (ÖR : yunusemrearac Database Backup)
DatabaseSetDescription : Veritabanı atanacak açıklama. (ÖR : yunusemrearac Database Backup – Full Backup)
ServerName : Veritabanının bulunduğu server ismi. (ÖR : yunusemrearacPC)
Yukarıdaki bilgileri eksiksiz ve doğru şekilde doldurduğunuz zaman belirttiğiniz yere veritabanınızın yedeğini alabilirsiniz.
NOT : Veritabanının yedeğinin olduğu yere tekrar üstüne yedek alacaksanız eğer ve bu devamlı olacaksa kod ile yada elle eski yedek dosyasını silmenizi tavsiye ederim. Çünkü her seferinde dosya boyutu katlanarak artmaktadır. 5 MB bir veri tabanı dosyanız beş altı yedek almadan sonra 20 MB olarak görebilirsiniz.
Bide şu Backup(); metodunun hangi sınıfdan geldiğini söylesen çok güzel olacak.
Projene referans olarak “Microsoft.SqlServer.Smo” ve “Microsoft.SqlServer.SmoExtended” eklemen gerekmektedir.
DeviceType.File ne? nerede tanımladın? tam olarak kodu paylaşmak çok mu zor?
Kodun tamamını paylaştım zaten. DeviceType.File dediği de kaydedilecek yedek tipi tanımlaması. Gereksiz atarlı yorum yapmadan kodu denemek, kullanmak ya da internetten bakmak çok mu zor ?
Bunun RESTORE ‘sini de istiyorummmm….. Bu arada SERVER kısmına ne yazarsam yazıyım yedek alıyor 😀
Projene referans olarak “Microsoft.SqlServer.Smo” ve “Microsoft.SqlServer.SmoExtended” eklemen gerekmektedir. demişsiniz ancak benim vs2010 da çıkmıyor bunlar
Merhabalar, bu dll leri external dll olarak indirip projenize dışardan referans verebilirsiniz.
dll sorunlarını sql serverın altında bulunan asamblies altındaki klasörden aldım ilginiz için teşekkür ederim.
yalnız bu seferde bu şekilde bir hata mesajı aldım.
Backup failed for Server ‘A00067140\SQLEXPRESS’.
Sorunu çözdüm. Dosyaya isim verdirmeden direk klasöre kadar yol tanımlamışım. Olmayan dosyayı aramış meğer.
Peki Restore olayı nasıl oluyor onu da anlatabilir misiniz?
Merhabalar, restore işlemi içinde yazı yazdım.
http://yunusemrearac.com/2020/04/02/c-kodu-ile-sql-server-veritabani-yedegini-geri-yukleme/
adresinden ulaşabilirsiniz.
bu hatayı nasıl çözdün detay verebilir misin
Merhaba, öncelik ile emeğine sağlık, senden bir ricam olacaktı combobox da görüntülemek istiyorum datalarımı nasıl yaparım
Aşağıdaki hatayı alıyorum. Çözümünü bilen varmı?
“An unhandled exception of type ‘System.IO.FileNotFoundException’ occurred in System.Windows.Forms.dll
Additional information: ‘Microsoft.SqlServer.SqlEnum, Version=15.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91’ dosyasını veya bütünleştirilmiş kodunu ya da bağımlılıklarından birini yükleyemedi. Sistem belirtilen dosyayı bulamıyor.”