Firebird vt backup almak nasıl bir yol?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Firebird vt backup almak nasıl bir yol?

Mesaj gönderen gkimirti »

programımda kullandıgım firebird veritabanının backup'ını belirli saatlerde almak icin nasıl bir yontem izlemeliyim?
fdb dosyasının direk kopyasaını almak saglıklı bir cozum mu?
yoksa ibx bilesenlerinden ibbackupservice ile mi yapacagım?
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
şimal
Kıdemli Üye
Mesajlar: 516
Kayıt: 10 Kas 2003 09:36
Konum: ANKARA

Mesaj gönderen şimal »

merhaba gökmen bey
şair amcanın öğrettiği bir yöntem var.
interbase de
create shadow 1 auto 'c:\Yedek\yedek.gdb'

ile aynı dike online yedek alıyordu. Yani heran veritanaından iki kopya oluyor.

farklı bir diske almak için ise
create shadow 1 auto '\\192.168.0.3\C\Yedek\yedek.gdb'


şeklinde yada makina ismi verilebilir. Kolay gelsin
Boş Başak Dik Durur...
Santranç bitince şah da piyon da aynı torbaya girermiş...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

bu islem surekli insert yapacagım icin isletimi yavaslatır diye dusunuyorum.
o yuzden ayarlanabilien bir zamanda otomatik backup alsın

arama yapınca nasıl backup alınacagına dair bilgiler buldum :oops:
lakin backup aldıgım dosya boyutu database yanında cok kucuk (20-30 kb)
simdi databasede bir bozulma oldugunda en son yedekten donmek icin ne yapmak lazım?

aklıma sıfır bir db olusturup backup dosyasını bunun uzerine restore etmek geliyor
acaba bu sekildemi yapılıyor.

ayrıca arama sonucu

viewtopic.php?t=2220&highlight=ibbackupservice
viewtopic.php?t=1928&highlight=ibbackupservice
viewtopic.php?t=302&highlight=ibbackupservice

her zaman arama derken atladık sazan gibi :lol:
ÜŞENME,ERTELEME,VAZGEÇME
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

hocam bir de bu linkte bazı programlar var
Backup Watcher for Interbase v2.0.1 baya iyi gibi görünüyor ama denemedim.
viewtopic.php?t=1844
;)
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

Hocam, ifab denilen bir program belli periyotlarda yedek alabiliyor.

Kolay gelsin...
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ben bunu kullanıyorum program çıkışında yedek almaya zorluyorum..
sizde bir timerla isterseniz alabilirsiniz sanırım.

sSecondFileName eğer ikinci dosyayı uzak bir pc seçerseniz ikinci yedeği sağlama alıyorum...

Kod: Tümünü seç

procedure TSistPrmForm.BtnYedekleClick(Sender: TObject);
var
 gun, ay, yil : Word;
 sSecondFileName : string;
begin
if ..... OR (iOtoManMode <> MANUAL) then
 begin
  MessageDlg('Lütfen Yedekleme işlemini Manuel Durumda İken Yapınız...', mtWarning	, [mbOk], 0);
  Exit;
 end;


  DecodeDate(Date, yil, ay, gun);
  sSecondFileName := 'data_'+IntToStr(gun) + '_' + IntToStr(ay) + '_' + IntToStr(yil)+'.gbk';
  Memo1.Lines.Clear;
  DBYedekle(sDBBackupFileName);

  if CBSecondBackup.Checked then
    DBYedekle(sSecondFileName);

end;

Kod: Tümünü seç

Procedure TSistPrmForm.DBYedekle(BackupFileName:string);
begin
 with IBBackupService do
  begin
    LoginPrompt := False;
    Params.Clear;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active := True;
    try
      DatabaseName := sDBFileName;
      BackupFile.Clear;
      BackupFile.Add(sDBBackupFilesDir + BackupFileName);

      Memo1.Lines.Add('Yedekleme işlemi başlıyor.');
      Memo1.Lines.Add('Dosya: '+ sDBBackupFilesDir + BackupFileName);
      ServiceStart;
      While not Eof do
        Memo1.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;
end;
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

diyelim ki bu adamın gdb yada fdb dosyası tamamen bozuldu
elinizdeki bu yedekten gdb yada fdb dosyasını nasıl olusturacaksınız?
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

databasae check olayını yaptıktan sonra eğer hata varsa database recovery yapsınmı diye sooruyor evet ise kullanıcı kurtar derse kurtarıyor ve tekrar check olmadı eyvallah kapat :)

Kod: Tümünü seç

     {BURADA CHECK ALL ...}
     if NOT CheckAll then
       begin
        iAnswer:= MessageDlg('Program Veri tabanında hata tespit etti!'+#13+
                             'Verilerin yedeklerden geri alınmasını istermisiniz?',mtError,[mbYes, mbNo], 0);
        if iAnswer = mrYES then
          begin
             DatabaseRecover;
             if NOT CheckAll then
               begin
                iAnswer:= MessageDlg('Veritabanı geri kurtarma işlemi başarısız oldu.'+#13+
                                     'Programı veritabanı desteği olmadan Başlatmak istermisiniz',mtError,[mbYes, mbNo], 0);
                if iAnswer = mrYES then
                    Exit
                 else
                    Halt;
                end;{if NOT Check}
          end
         else
          Exit; {if iAns..}
       end;{if NOTCheck}

Kod: Tümünü seç

Procedure TfmDataBase.DataBaseRecover;
begin
  with IBRestoreService do
  begin
    LoginPrompt := False;
    Params.Clear;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active := True;
    try {finally}
     try {except}
        DatabaseName.Clear;
        BackupFile.Clear;
        DatabaseName.Add(sDBFileName);
        BackupFile.Add(sDBBackupFilesDir + sDBBackupFileName);
        ServiceStart;
        //While not Eof do Memo2.Lines.Add(GetNextLine);
     except
      {Do Nothing}
     end;
    finally
      Active := False;
      Sleep(2000);
    end;
  end;
end
sleep i koymayınca bende problem yarattı.. :) bende kasmadım zaten 2 saniyeden ne olacak dimi :D
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

backup islemini yaparken

Kod: Tümünü seç

While not Eof do
        Memo1.Lines.Add(GetNextLine); 
ekledigimde bir muddet calısıyor sonra ekrana
"error reading data from the connection" diye bir mesaj veriyor
ama backup dosyası olusuyor
ibexpert ile tekrar bu backuptan restore yapıp yeni bir db olusturabiliyorum
bir problem yok gibi gorunuyor ama su hata mesajına gıcık oldum
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bu anda kayıt falan ekleniyor olabilirmi?
bende pek problem yok ama bilemicem
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

log yazma satırlarını kaldırınca problem yok
ama bunu ekleyince

Kod: Tümünü seç

While not Eof do
        Memo1.Lines.Add(GetNextLine);
sapıtıyor.
neyse pekte onemli degil
boyle de is gorur
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla