备份数据库——
企业管理器:
--右键一个数据库
--所有任务
--备份数据库
--备份--选择"数据库--完全" (或者"数据库--差异")
--目的--备份到中选择添加
--输入一个备份的文件名(注意,如果原来有文件名,要删除它)
--确定--或用SQL语句(完全备份):
backup database 数据库 to disk='c:\你的备份文件名'

解决方案 »

  1.   

    我问的不是在数据库中怎样备份数据库,而是怎样用jsp做个页面,其中里面有个备份数据库的功能,要通过jsp去实现。
      

  2.   

    如果按: wangnewton(逍遥派掌门) 所说的做,不知道该数据库中的视图,触发器,存储过程是一起被备份了还是丢失了?谢谢
      

  3.   

    在Jsp中执行  Sql 备份语句。
      

  4.   

    把备份还原的sql语句写成存储过程,在jsp里调用。
      

  5.   

    不是吧?你要你的程序管理你的数据库系统?似乎很汗颜!
    备份数据库和再难恢复等等,都要么使用管理工具客户端,要么就在数据库服务器上进行。
    你通过jdbc驱动程序提供的接口,仅仅能够进行一些数据的操纵。
    因此我认为老兄大可不必在上边花时间。
      

  6.   

    还是用SQL SERVER来备份好....
      

  7.   

    完全可以用程序来实现数据库的备份和恢复。以下是我用delphi实现的MS SQL Server的数据库的备份与恢复,关键的创建存储过程部分应该是一样的,其它部分改改就应该可以了。希望对你有用。unit unitBackupRestore;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Buttons, StdCtrls,idglobal, ExtCtrls,shellapi,strutils, Menus,
      Grids, DBGridEh,SqlExpr;type
      TfrmBackupRestore = class(TForm)
        GroupBox1: TGroupBox;
        edtFileName: TEdit;
        btnView: TButton;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
        procedure FormShow(Sender: TObject);
        procedure btnViewClick(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure BitBtn2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmBackupRestore: TfrmBackupRestore;implementation
    uses
      unitData,unitCommon;
    {$R *.dfm}procedure TfrmBackupRestore.FormShow(Sender: TObject);
    begin
      if unitCommon.flag ='Backup' then
      begin
        caption:='系统数据库备份处理';
        groupbox1.Caption :='请设置备份文件存放目录';
        bitbtn1.Caption :='开始备份';
      end;
      if unitCommon.flag ='Restore' then
      begin
        caption:='系统数据库恢复处理';
        groupbox1.Caption :='请选择备份文件';
        bitbtn1.Caption :='开始恢复';
      end;
    end;procedure TfrmBackupRestore.btnViewClick(Sender: TObject);
    begin
      edtFileName.Text := getChooseFolder(handle,'请选择目录...');
    end;procedure TfrmBackupRestore.BitBtn1Click(Sender: TObject);
    var
      ls_dir : string;
      ls_String : String;
      text : String;
    begin
      if edtFileName.text = '' then
      begin
        application.MessageBox('请选择路径!','提示',mb_ok);
        //edtFileName.SetFocus;
        Exit;
      end;  ls_dir:=ExtractFilePath(application.ExeName);  ls_String:=edtFileName.text;
      if rightstr(ls_String,1)='\' then
        ls_String:=leftstr(ls_String,length(ls_String) - 1);  if bitbtn1.Caption ='开始备份' then
      begin
        modlData.adoDtst_master.Active:=false;
        modlData.adoDtst_master.CommandText:='';
        modlData.adoDtst_master.CommandText:='select * from dbo.sysobjects  where name=''Common_backup''';
        modlData.adoDtst_master.Active:=true;
        if modlData.adoDtst_master.RecordCount = 0 then
        begin
          text := 'create procedure dbo.Common_backup @sDBName varchar(50), @sPath varchar(500) as declare @sql varchar(500) ';
          text:= text + 'if exists(select * from dbo.sysdevices where name=''mydiskdump'')  exec sp_dropdevice ''mydiskdump'' ';
          text:= text + 'if exists(select * from dbo.sysdevices where name=''mydiskdumpLog'')  exec sp_dropdevice ''mydiskdumpLog'' ';
          text:= text + 'set @sql = ''sp_addumpdevice ''''disk'''',''''mydiskdump'''','''''' + @sPath+''\mydiskdump.dat'''''' exec(@sql) ';
          text:= text + 'set @sql = ''sp_addumpdevice ''''disk'''',''''mydiskdumpLog'''','''''' + @sPath +''\mydiskdumpLog.dat'''''' exec(@sql) ';
          text:= text + 'set @sql = ''BACKUP DATABASE '' + @sDBName +'' to mydiskdump'' exec(@sql) ' ;
          text:= text + 'set @sql=''BACKUP LOG '' + @sDBName + '' TO mydiskdumpLog'' exec(@sql) ';      modlData.adoQuery_master.Close;
          modlData.adoQuery_master.SQL.Clear;
          modlData.adoQuery_master.SQL.Add(text);
          modlData.adoQuery_master.ExecSQL;
        end;
        modlData.adoQuery_master.Close;
        modlData.adoQuery_master.SQL.Clear;
        modlData.adoQuery_master.SQL.Add('exec dbo.Common_backup ''veteran'','''+ls_String+'''');
        modlData.adoQuery_master.ExecSQL;    application.MessageBox('备份成功!','提示',mb_ok);
      end
      
      else
      begin
        if not FileExists(ls_String+'\mydiskdump.dat') then
        begin
          application.MessageBox('未找到备份文件!请重新选择!','提示',mb_ok);
          Exit;
        end
        else
        begin
          if modlData.adoConn.Connected=true then modlData.adoConn.Close;      modlData.adoDtst_master.Active:=false;
          modlData.adoDtst_master.CommandText:='';
          modlData.adoDtst_master.CommandText:='select * from dbo.sysobjects  where name=''Common_restore''';
          modlData.adoDtst_master.Active:=true;
          if modlData.adoDtst_master.RecordCount = 0 then
          begin
            text := 'create procedure dbo.Common_restore @sDBName varchar(50) as declare @sql varchar(500),@spid int ';
            text:= text + 'set @sql=''declare getspid cursor for select spid from sysprocesses where dbid=db_id('''''' + @sDBName + '''''')'' ';
            text:= text + 'exec(@sql) open getspid fetch next from getspid into @spid while @@fetch_status <>-1 begin ';
            text:= text + 'exec(''kill '' + @spid) fetch next from getspid into @spid end ';
            text:= text + 'close getspid deallocate getspid ';
            text:= text + 'set @sql = ''RESTORE DATABASE '' + @sDBName +'' from mydiskdump WITH NORECOVERY'' exec(@sql) ' ;
            text:= text + 'set @sql = ''RESTORE LOG '' + @sDBName +'' from mydiskdumpLog'' exec(@sql) ' ;        modlData.adoQuery_master.Close;
            modlData.adoQuery_master.SQL.Clear;
            modlData.adoQuery_master.SQL.Add(text);
            modlData.adoQuery_master.ExecSQL;
          end;
          modlData.adoQuery_master.Close;
          modlData.adoQuery_master.SQL.Clear;
          modlData.adoQuery_master.SQL.Add('use master');
          modlData.adoQuery_master.ExecSQL;
          modlData.adoQuery_master.SQL.Clear;
          modlData.adoQuery_master.SQL.Add('exec dbo.Common_restore ''veteran''');
          modlData.adoQuery_master.ExecSQL;      modlData.adoConn.Connected:=true;      application.messagebox('恢复成功!','提示',mb_ok);
        end;
      end;
    end;
    procedure TfrmBackupRestore.BitBtn2Click(Sender: TObject);
    begin
      close;
    end;end.
      

  8.   

    要是简单的备份的话,应该和增删改差不多吧,无非是sql语句变化一下!
      

  9.   

    在JSPK中像版主说的一样,要这样备份的话,有很多方法,可就是要看一个效率最大化的问题.我相信有很多人都能实现这个功能,但是我个人认为你这样做没有任何的实际意义!为什么不直接在DB中备份呢?不过你要是还是要这么做的话,我还是可以给一个方案的.
        你可以先设计一个JSP页面来实现一个按钮,然后给这个按钮一个响应事件就可以了,在响应时用SQL语句来实现数据库的备份就OK了.不过这样你可是绕了一圈,我认为效率不好.