Backup ve Restore

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
cunsey
Üye
Mesajlar: 31
Kayıt: 13 Haz 2003 10:03

Backup ve Restore

Mesaj gönderen cunsey »

Merhaba arkadaşlar Delphi ve MS SQL de proje geliştiriyorum

iki tane ekranım olacak birisi backup birisi restore
backup ta bir buton olcak backup butununa bastığımda bir diyalog kutusu açılacak mdf dosyasını seçtiğimde istediğim yere bunu backup alabilmeliyim birde ziplenmiş haliyle kayıt edicem şöyle bir sorun var MS SQL servisleri çalışırken o dataları taşımam normalde olmuyor.Restorede de zip filesı seçerek herhangi bir tere o dataları geri yükleyebilmeliyim bu işlemleri nasıl yaparım
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

genel bir backup yazilimi olacaksa calisan harici mdf dosyalarini nasil yedekleyebilirsiniz bunu bilemiyorum. Cunku MsSQL kullanmadım.

Fakat mevcut projenize bir backup modulu eklemek istiyorsanız bunun benzerini ben Sybase projelerimde yapiyorum.

Veritabanında belirli peryotlarda tetiklenen eventler ekleyerek (mesela her gun gece saat 3:00 de gibi...) o eventler isene yazidimiz

Kod: Tümünü seç

backup database directory 'c:\YEDEK\PERSEMBE\'
gibi bir kod ile belirledigimiz dizinlere veya disklere otomatik olarak yedek aldiriyoruz.

Ayrica de dediginz gibi kullanıcı o an yedek almak isterse de bu kodu o an calistirarak istenilen dizine yedek aliyoruz. Tabi bunlar dedigim gibi o an calisan database icin uygulanabilecek yontemler....
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Bizim yedekleme yöntemimiz de (SQL Server kullanıyoruz). Bir job tanımlı. O job her gece belli bir saatte çalışıyor ve şu komutu çalıştırıyor:

Kod: Tümünü seç

BACKUP DATABASE [DATABASE_NAME] TO  DISK = N'C:\YEDEK\DATABASE_NAME.BAK' WITH  FORMAT, INIT
cunsey
Üye
Mesajlar: 31
Kayıt: 13 Haz 2003 10:03

Mesaj gönderen cunsey »

peki istediğim yere yedekleyebilmem mümkünmü yani zipli bir şekilde ve aynı şekilde restore yapabilmem
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu komutlar database üzerinde calistigi icin sadece database'in yedegini alirlar. Siz yedek alama isini yaptirmak icin komutu calistirip yedegi aldiktan sonra bu dosyayi Delphi tarafinda sıkıstırma amaclı kullanacaginiz bir component ilse sıkıstırmalısınız.

Restore islemine gelince umarım hic ihtiyacınız olmaz. Ama bunun otomatik yapılması bence riskli. Cunku yine database üzerinden calistirabileceginiz bir restore komutu var ve bu komut ile o an calisan database'e bir yedegi restore etmek demek. Mevcut database'in ustune yedegi kopyalamak ile ayni etkiyi yapar. Yani mevcut verileriniz gider. Eger bir restore islemine ihtiyac var ise genelde eldeki databsae sorunludur acilmiyordur filan. Yani zaten restore komutunu calistirma ortamına giremiyorsunuzdur. Bu durumda yedegi el ile calismayanin yerine kopyalamanız ya da programa kopyalatmanız gerekiyor. Program icinden restore komutu calistirmanin sakincasi ise bir kullanıcı hatasi sonucu guncel database'in üstüne 1 ay onceki database'i restore edilmis bulma ihtimalidir :(
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Restore işlemini de yine job ile şu şekilde yapabilirsin

Kod: Tümünü seç

RESTORE DATABASE 'MODUL2003'
  FROM DISK = '\\172.20.0.4\YEDEK\MODUL2003.BAK'
  WITH
  MOVE 'MODUL2003_DATA' TO 'C:\DATABASE\MODUL2003_DATA.MDF',
  MOVE 'MODUL2003_LOG' TO 'C:\DATABASE\MODUL2003_LOG.LDF',
  REPLACE
END
Cevapla