Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Firebird Yedekleme ve Geri Yükleme
#5
(21-04-2021, Saat: 13:26)shooterman Adlı Kullanıcıdan Alıntı: Selamlar
Aşağıdaki linki takip edebilirsiniz.

https://www.delphican.com/showthread.php...+yedekleme

Hocam ta eskilerden kalma jedi komponent paketi var elimde. Yıllar önce kurmuştum ama şimdi kuramadım bir türlü. Onun için gönderdiğiniz linkteki dosyayı çalıştıramadım.

(21-04-2021, Saat: 13:53)mcuyan Adlı Kullanıcıdan Alıntı: Merhabalar. Ben FB Bckup ve Restore için FD bileşenlerini kullanıyorum. Kodlarımı alltadır. Restore işlemi de aynı mantıkla çalıştırabilirsiniz.. BCKup alıp Gün_ay_yıl şeklinde isimlendirdiğim için yukarıdaki değişkenler..

Bu arada Formunuza bir TFDIBBackup ve TFDIBRestore bileşeni eklemeniz gerekiyor.


 
  drm := copy(dm1.ib1.DatabaseName, 11, Length(dm1.ib1.DatabaseName) - 10);
   adres := copy(drm, 1, Length(drm) - 8);
   ad := copy(drm, Length(adres) + 1, 8);
   DecodeDate(Date, yil, ay, gun);
   DecodeTime(time, saat, dk, sn, ms);
   gun_ay_yil := IntToStr(yil) + IntToStr(ay) + IntToStr(gun);
   try
     sonuc := ShellWait('cmd.exe', PWideChar('/C ' + 'gfix -validate db\2013.snc -user sysdba -password masterkey'), '\', True, True, True, sonuc1);
     sonuc := ShellWait('cmd.exe', PWideChar('/C ' + 'gfix -kill db\2013.snc -user sysdba -password masterkey'), '\', True, True, True, sonuc1);
     sonuc := ShellWait('cmd.exe', PWideChar('/C ' + 'gfix -sweep db\2013.snc -user sysdba -password masterkey'), '\', True, True, True, sonuc1);
     // Burada bakımlar yapılıyor
   finally
     Sleep(50);
   end;

   FDPhysFBDriverLink1.DriverID := 'FB';
   FDPhysFBDriverLink1.VendorLib := GetCurrentDir() + '\fbclient.dll';
   Backup.UserName := 'SYSDBA';
   Backup.Password := 'masterkey';
   Backup.Database := adres + 'DB_ad_.FBD';
   Backup.Verbose := True;
   Backup.Host := 'localhost';
   Backup.BackupFiles.Clear;

   Backup.BackupFiles.Add(adres + gun_ay_yil + '.fbk');
   Backup.Backup;
   TRY
     zipFile(adres + gun_ay_yil + '.zip', adres + gun_ay_yil + '.fbk');
     FINALLY DeleteFile(adres + gun_ay_yil + '.fbk');

   END;

Hocam galiba sizin yönteminizde de komponent kurmak gerekli. Onun için bu yöntemi de kullanamam.

(21-04-2021, Saat: 17:02)MuhammedYasir Adlı Kullanıcıdan Alıntı: Yedeklemeyi şu şekilde yapmışım:
procedure TFYedekleme.BitBtn1Click(Sender: TObject);
var
 s: string;
 IniFile: TIniFile;
 yer: string;
begin
 IBBackupService1 := TIBBackupService.Create(nil);
 ForceDirectories(OnlineEdit2.Text);
 IniFile := TIniFile.Create(ExtractFileDir(Application.ExeName) +
   '\DataBase.ini');
 if IniFile.ReadString(FAna.Sirket, 'Adres', '') <> '' then
   yer := IniFile.ReadString(FAna.Sirket, 'Adres', '');
 s := OnlineEdit2.Text;
 if s[length(s)] <> '\' then
   s := s + '\';
 if FileExists(s + EditDosyaAdi.Text + '.gbk') then
 begin
   ShowMessage('Bu dosya ismi ile yedekleme yapılmış, lütfen dosya ismini değiştiriniz.')
     
 end
 else
 begin
   Memo1.Lines.Add('YEDEKLEME BAŞLADI !..');
   with IBBackupService1 do
   begin
     LoginPrompt := False;
     Params.Add('user_name=' + IniFile.ReadString(FAna.Sirket,
       'User', ''));
     Params.Add('password=' + IniFile.ReadString(FAna.Sirket,
       'Sifre', ''));

     Attach;
     try
       Verbose := True;
       DatabaseName := yer;
       if (OnlineEdit2.Text <> 'C:\') and (OnlineEdit2.Text <> 'c:\') and
         (OnlineEdit2.Text <> 'A:\') and (OnlineEdit2.Text <> 'a:\') and
         (OnlineEdit2.Text <> 'B:\') and (OnlineEdit2.Text <> 'b:\') and
         (OnlineEdit2.Text <> 'D:\') and (OnlineEdit2.Text <> 'd:\') and
         (OnlineEdit2.Text <> 'E:\') and (OnlineEdit2.Text <> 'e:\') and
         (OnlineEdit2.Text <> 'F:\') and (OnlineEdit2.Text <> 'f:\') then
         BackupFile.Add(OnlineEdit2.Text + '\' + EditDosyaAdi.Text + '.gbk')
       else
         BackupFile.Add(OnlineEdit2.Text + EditDosyaAdi.Text + '.gbk');

       ServiceStart;
       Memo1.Lines.Clear;
       Memo1.Lines.Add('YEDEKLEME BAŞLADI !..');
       While not Eof do
         Memo1.Lines.Add(GetNextLine);
     finally
       Active := False;
       Memo1.Lines.Add(s + EditDosyaAdi.Text + '.gbk');
       Memo1.Lines.Add('YEDEKLEME BAŞARI İLE TAMAMLANDI !..');
     end;
   end;
 end;
 IBBackupService1.Free;
end;

Geri yüklemeyi de şu şekilde yapmışım:
procedure TFYedekleme.BitBtn3Click(Sender: TObject);
var
 IniFile: TIniFile;
 yer: string;
begin
 IBRestoreService1 := TIBRestoreService.Create(nil);
 if MessageBox(handle, 'Geri yüklemek istediğinizden emin misiniz?', 'Uyarı',
   MB_YESNO) = mrYes then
 begin
   Memo2.Lines.Add('GERİ YÜKLEME BAŞLADI !..');

   DMVeri.IBVeri.Close;
   DMVeri.IBTVeri.Active := False;
   IniFile := TIniFile.Create(ExtractFileDir(Application.ExeName) +
     '\DataBase.ini');
   with IBRestoreService1 do
   begin

     LoginPrompt := False;
     Options := [Replace, CreateNewDB];
     Params.Add('user_name=' + IniFile.ReadString(FLikaPro.Sirket,
       'User', ''));
     Params.Add('password=' + IniFile.ReadString(FLikaPro.Sirket,
       'Sifre', ''));
     Params.Add('DEFAULT CHARACTER SET WIN1254');
     Attach;
     try
       Verbose := True;
       PageSize := 16384;
       BackupFile.Add(LabeledEdit1.Text);
       if IniFile.ReadString(FLikaPro.Sirket, 'Adres', '') <> '' then
         yer := IniFile.ReadString(FLikaPro.Sirket, 'Adres', '');

       DatabaseName.Add(yer);
       ServiceStart;
       Memo2.Lines.Clear;
       Memo2.Lines.Add('GERİ YÜKLEME BAŞLADI !..');
       While not Eof do
         Memo2.Lines.Add(GetNextLine);
     finally
       if Active then
         Detach;
       Memo2.Lines.Add('GERİ YÜKLEME BAŞARI İLE TAMAMLANDI !..'); 

     end;
   end;
 end;
 IBRestoreService1.Free;
end;

Hocam gönderdiğiniz kodları kendime göre düzenlemeye çalıştım. Öncelikle yedekleme kodları için uğraştım ama Attach komutunda çalışma zamanı hata veriyor. Bu konuda acemi olduğumdan da daha ileriye gidemedim.

Değerli arkadaşlar eski dökümanlarımı karıştırınca bir şeyler buldum ve olayı çözdüm. Biraz düzenleyeyim ihtiyaç duyan arkadaşların faydalanması için buraya eklerim. Yardımcı olan herkese teşekkürler.
Cevapla


Bu Konudaki Yorumlar
Firebird Yedekleme ve Geri Yükleme - Yazar: sunbeki - 21-04-2021, Saat: 13:21
Firebird Yedekleme ve Geri Yükleme - Yazar: shooterman - 21-04-2021, Saat: 13:26
Firebird Yedekleme ve Geri Yükleme - Yazar: mcuyan - 21-04-2021, Saat: 13:53
Cvp: Firebird Yedekleme ve Geri Yükleme - Yazar: MuhammedYasir - 21-04-2021, Saat: 17:02
Firebird Yedekleme ve Geri Yükleme - Yazar: sunbeki - 21-04-2021, Saat: 21:49
Firebird Yedekleme ve Geri Yükleme - Yazar: mcuyan - 21-04-2021, Saat: 22:49
Cvp: Firebird Yedekleme ve Geri Yükleme - Yazar: sunbeki - 22-04-2021, Saat: 10:08
Firebird Yedekleme ve Geri Yükleme - Yazar: COMMANDX - 21-05-2021, Saat: 15:56

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  firebird bağlantı hatası. Kamuran Alpkaya 17 19.146 06-08-2025, Saat: 14:20
Son Yorum: mcuyan
  FIREBIRD SIRALAMA Kral 10 1.934 15-10-2024, Saat: 19:04
Son Yorum: Kral
  Firebird bağlantı kopmaları (ZeosLib) boreas 0 773 12-06-2024, Saat: 16:08
Son Yorum: boreas
  Firebird Database Create Doğru mu? Altıner 2 1.311 02-05-2024, Saat: 11:00
Son Yorum: hi_selamlar
  pardusda dbeaver ıle fırebırd kullanımı hakkında sadikacar60 8 2.344 29-02-2024, Saat: 17:50
Son Yorum: Hayati



Konuyu Okuyanlar: 1 Ziyaretçi