Arşiv Anasayfa SQL Server
Sayfalar: 1
MS SQL Server Veritabanı Yedeğini Alma/Yedekten Geri Yükleme Gönderen: dynamo Tarih: 30 May 2007 14:59:39
SQL Server veritabanı yedeğini alma:

backup database <veritabanıAdı> to disk=<YedekDosyaAdı>

örnek:
BACKUP DATABASE Northwind TO DISK = 'c:\Northwind.bak'

SQL Server veritabanını Yedekten geri alma:

restore database <veritabanıAdı> from disk=<YedekDosyaAdı>

örnek:
RESTORE DATABASE Northwind FROM DISK = 'c:\Northwind.bak'

veritabanını yedekleme ve yedekten geri alma için örnek bir uygulama yapalım.




Form->Show'da ini dosyadan bilgisyar adı/ip ve sa şifresi alınır.Yedek Dosya Adı'nın girildiği Edit'e o günün tarihini atar.

:
procedure TfrmYedekle.FormShow(Sender: TObject);
begin
   IniDosya := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.ini');
   try
      server:=IniDosya.ReadString('Database','Server','');
      sapassword:=IniDosya.ReadString('Database','SaPassword','');
   finally
      IniDosya.Free;
   end;

   PageControl1.ActivePage:=TabSheet1;

   dateseparator:=' ';
   shortdateformat:='ddmmyyyy';
   Edit1.Text:=DateToStr(Date);

end;

ShellTreeView ile yedeklemenin yapılacağı dizin seçilir:

:
procedure TfrmYedekle.ShellTreeView1Change(Sender: TObject;
  Node: TTreeNode);
begin
    Edit3.Text:=ShellTreeView1.Path;
end;

yedekleme işlemi yapma:

:
procedure TfrmYedekle.Button1Click(Sender: TObject);
var yol:string;
    hata:boolean;
    dosya_adi:string;

begin

   if trim(Edit1.Text)='' then
      Edit1.Text:=DateToStr(Date);
    dosya_Adi:=Edit1.Text+Label6.Caption;

   try
      ADOConnection1.Connected :=false;
      ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sa;Initial Catalog=master;Password ='+sapassword+';Data Source=' +server;
      ADOConnection1.Connected := true;
    except
      Application.MessageBox('Veritabanı Bağlantı Hatası...','Veritabanı Bağlantı',0+64);
    end;

    if (Application.MessageBox('Yedekleme işlemi için "Tamam" butonuna basınız...', 'YEDEKLEME',mb_okcancel+mb_iconstop)=idok) then
    begin
      Button1.Enabled:=false;
      yol:=Edit3.Text;
      if length(yol)>3 then
         yol:=yol+'\'+dosya_adi
      else
         yol:=yol+dosya_adi;

      try
         ADOQuery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add('use master BACKUP DATABASE STOKDB TO DISK = '''+yol+'''');
         ADOQuery1.ExecSQL;

         Application.MessageBox('Yedekleme İşlemi Başarı İle Tamamlanmıştır...', 'MESAJ',Mb_ok+mb_iconinformation)
      except
         Application.MessageBox('Yedekleme İşlemi Başarısızlıkla Sonuçlandı...', 'MESAJ',Mb_ok+MB_ICONSTOP);
      end;
         Button1.Enabled:=true;
    end;

end;


Yedekten geri yükleme için önce .bck uzantılı yedek dosyasının konumu Edit2'ye atılır:

:
procedure TfrmYedekle.SpeedButton1Click(Sender: TObject);
begin
    if OpenDialog1.Execute then
        Edit2.Text:=OpenDialog1.FileName;
end;


yedekten geri yükleme:

:
procedure TfrmYedekle.Button2Click(Sender: TObject);
var yol:string;
    hata:boolean;
    dosya_adi:string;

begin

   if Trim(Edit2.Text)='' then
   begin
      ShowMessage('Dosya Adını Giriniz....');
      exit;
   end;

   dosya_Adi:=Edit2.Text;

   try
      ADOConnection1.Connected :=false;
      ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sa;Initial Catalog=master;Password ='+sapassword+';Data Source=' +server;
      ADOConnection1.Connected := true;
   except
      Application.MessageBox('Veritabanı Bağlantı Hatası...','Veritabanı Bağlantı',0+64);
   end;

   if (Application.MessageBox('Yedekten Geri Yükleme için "Tamam" butonuna basınız...', 'YEDEKTEN GERİ ALMA',mb_okcancel+mb_iconstop)=idok) then
   begin
      Button1.Enabled:=false;
      yol:=Edit2.Text;
      try
         ADOQuery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add('use master RESTORE DATABASE STOKDB FROM DISK = '''+yol+'''');
         ADOQuery1.ExecSQL;

         Application.MessageBox('Yedekten Geri Alma İşlemi Başarı İle Tamamlanmıştır...', 'MESAJ',Mb_ok+mb_iconinformation)
      except
         Application.MessageBox('Yedekten Geri Alma Başarısızlıkla Sonuçlandı...', 'MESAJ',Mb_ok+MB_ICONSTOP);
      end;
         Button1.Enabled:=true;
   end;

end;


örnek uygulama ekte.

Ynt: MS SQL Server Veritabanı Yedeğini Alma/Yedekten Geri Yükleme Gönderen: Aktolgali Tarih: 29 September 2007 19:43:16
bu işlem firebird de nasıl yapılır...?
Ynt: MS SQL Server Veritabanı Yedeğini Alma/Yedekten Geri Yükleme Gönderen: FetihlerFatihi Tarih: 29 September 2007 21:56:13
bu işlem firebird de nasıl yapılır...?
http://www.delphidunyasi.net/index.php?topic=85.0