Heim >Datenbank >MySQL-Tutorial >数据库备份和还原

数据库备份和还原

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:42:011248Durchsuche

1.备份 if (DirectoryExists(EdtLJ.Text))=false then // EdtLJ.Text备份绝对路径 begin ForceDirectories(EdtLJ.Text); end; strsql:=' backup database Demo to disk=' ; strsql:=strsql+#39+EdtLJ.Text+'/'+EdtMC.text+#39; //EdtMC.text备份文件名称 Dia

 1.备份

if (DirectoryExists(EdtLJ.Text))=false then  //  EdtLJ.Text备份绝对路径
 begin
 ForceDirectories(EdtLJ.Text);
 end;
 strsql:=' backup database Demo to disk=' ;
 strsql:=strsql+#39+EdtLJ.Text+'/'+EdtMC.text+#39;  //EdtMC.text备份文件名称
 Dialogs.ShowMessage(strsql);
 with adoquery2 do
  begin
    close;
    sql.Text:=strsql;
    execSql;
    showmessage('备份成功!');
  end;

或者

//开始备份

      with adoquery1 do
       begin
             close;
             sql.Clear;
             sql.Add('Backup database library to disk=:p1 with init');
             parameters.ParamByName('p1').Value:=self.SaveDialog1.FileName;
            try
                Execsql;
               ShowMessage('备份成功!!');
            except
                ShowMessage('备份失败!!');
                exit;
            end;
       end; //End of 备份

2.还原

方法1

use master  --这样避免正在使用要还原的库
go

declare cur cursor for
  select spid from sysprocesses where dbid=db_id('Demo')
open cur
declare @spid int

declare @str varchar(100)

fetch next from cur into @spid
while @@fetch_status=0
begin
   set @str=ltrim(@spid)
   exec ('kill '+@str)
   fetch next from cur into @spid
end
close cur
deallocate cur

go

restore database Demo from  disk='d:/111.bak' with replace

方法2 
alter database Demo set offline with rollback immediate
restore database Demo from disk='E:/1.bak'  //还原语句
alter database Demo set online with rollback immediate

 

以上程序仅供参考,有什么不对的地方还请多多指教!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn