sql serve的备分与还原

原创 2006年06月15日 12:14:00

                                      sql serve的备分与还原

用sql语句backup 'RESTORE 等,也可以用sql server中的存储过程
下面的例子是我贴来的,不知道能不能用,不过大概可以起个引导作用。

procedure TBak.btnRestoreClick(Sender: TObject);
var
  Qry:TADOQuery;
begin
  if FileExists(self.edtReStorePath.Text) then
    begin
      DM.Conn.Connected:=False; //断开系统数据库连接
      Qry:=TADOQuery.Create(self);
      Qry.CommandTimeout:=120;
      //把连接转移到master库
      Qry.ConnectionString:='Provider=SQLOLEDB.1;Password='+Login.GetDBServerInfo('Pwd')+';Persist Security Info=True;User

ID='+Login.GetDBServerInfo('User')+';Initial Catalog=master;Data Source='+Login.GetDBServerInfo('Server');
      //-------------------端开rxd_CRM库------------------------------------------
      Qry.Close;
      Qry.SQL.Clear;
      Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET OFFLINE WITH ROLLBACK IMMEDIATE';
      Qry.Prepared;
      Qry.ExecSQL;
      //------------------- 端开rxd_CRM库结束-------------------------------------
      Qry.Close;
      Qry.SQL.Clear;
      Qry.SQL.Text:='RESTORE DATABASE rxd_CRM FROM DISK='''+self.edtReStorePath.Text+''' with replace';
      Qry.Prepared;
      try
        Qry.ExecSQL;
        Login.MsgInfo('成功恢复数据!');
      finally
        //-------------------重新连接rxd_CRM库------------------------------------
        Qry.Close;
        Qry.SQL.Clear;
        Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET ONLINE WITH ROLLBACK IMMEDIATE';
        Qry.Prepared;
        Qry.ExecSQL;
        //-------------------重新连接rxd_CRM库结束--------------------------------
        Qry.Free;
        DM.Conn.ConnectionString:=Login.GetDBServerInfo('DBStr');
        try
          DM.Conn.Connected:=True;
        except
          Login.MsgError('连接数据库失败,请尝试重启系统!');
        end;
      end
    end
  else
    begin
      Login.MsgInfo('数据文件不存在,请重新选择!');
      self.edtReStorePath.SetFocus;
    end;
end;

至于异地,根据ip地址连接sql server就可以了。
下面这段代码应该可以用

备份:
procedure TBackupFrm.BitBtn2Click(Sender: TObject);
begin
  if Edit1.Text= '' then
    begin
      Showmessage('无选择要保存的文件名');
      exit;
    end;
  try
    try
      dmData.adoQryTmp.Active:= false;
      dmData.adoQryTmp.SQL.Clear;
      dmData.adoQryTmp.SQL.Add('BACKUP DATABASE [dzyl] TO DISK = '''+edit1.text+''' WITH INIT');
      dmData.adoQryTmp.ExecSQL;
    finally
      begin
        dmData.adoQryTmp.Active:= false;
        Showmessage('数据库备份成功!');
      end;
    end;
  except
  on e:exception do
    begin
      ShowMessage('数据库备份失败!');
    end;
  end;
end;
---------------
恢复
procedure TBackupFrm.BitBtn4Click(Sender: TObject);
begin
  if Edit2.Text = '' then
    begin
      showmessage('未选择要恢复的数据库文件!');
      exit;
    end;
  with dmData do
  begin
    try
      adocmmd.CommandText:='use master';
      adocmmd.Execute;
      adocmmd.CommandText:=' alter database dzyl set offline with rollback immediate';
      adocmmd.Execute;
      adocmmd.CommandText:='restore database dzyl from disk= '''+edit2.Text+''' with recovery ';
      adocmmd.Execute;
      adocmmd.CommandText:=' alter database dzyl set online with rollback immediate';
      adocmmd.Execute;
      showmessage('数据库恢复成功!');
      application.Terminate;
    except
    on e:exception do
      begin
        showmessage('数据库恢复失败!'+e.Message);
      end;

    end;
  end;
 

end;

SQL Server 的备份与恢复

备份的三种形式:日志备份,差异备份,全备份
  • wujiandao
  • wujiandao
  • 2016年06月23日 22:19
  • 2347

SQL Server 2005的备份、还原及分离、附加基本操作

1.备份 连接好数据库引擎后,我本地有2个实例,分别是sqlserver、sqltest,如图(1-1)。 (图1-1) 以备份sqlserver为例,右击->任务->备份,如图(1-2)。 ...
  • kanglongyao
  • kanglongyao
  • 2016年04月09日 23:17
  • 4302

SQL Server 2008数据库创建,备份,还原图解及注意点

SQL Server 2008数据库创建,备份,还原图解及注意点 一、新建数据库 步骤1:点击“新建数据库”。 步骤2:输入数据库名称,设置数据库文件保存位置(注意点:最好自己设置数...
  • haiross
  • haiross
  • 2014年06月30日 11:22
  • 17827

ASP数据库服务器SQL Serve

ASP数据库服务器SQL Server 微软的SQL Server是一个关系数据库,它是一项完美的客户/服务器系统。SQL Server需要安装在Windows NT的平台上,而Windows NT...
  • u014739787
  • u014739787
  • 2014年04月25日 10:28
  • 232

sql serve存储过程

存储过程一.概念:预先编译好的sql程序,可以包含:操作数据、变量、控制语句,增删改查操作都可以,存储过程是保存在数据库中      的一个对象。二.好处:         1.安全性更高      ...
  • qq_34137397
  • qq_34137397
  • 2016年11月05日 18:32
  • 223

SQL Serve2008的一些操作

今天花了一下午的时间在熟悉SQL serve的一些操作,在此记录下学习到的东西: 利用SQL语言分离数据库: use mastergosp_detach_db '数据库名'go注:在备份数据库...
  • mumusan2016
  • mumusan2016
  • 2016年05月20日 18:42
  • 157

Java、SQL Serve ----简单的增删查改

笔记
  • qq_38689356
  • qq_38689356
  • 2017年06月12日 15:56
  • 119

python3爬虫爬取豆瓣电影并保存到sql serve数据库

使用python爬虫,爬取豆瓣电影的简介,评分,以及评价人数,并将数据保存到本地数据库,并可对数据进行分析。...
  • chj_orange
  • chj_orange
  • 2017年03月25日 15:47
  • 2091

MS SQL Serve中的.mdf和.ldf

在MS SQL Server7/2000中摒弃了以前版本中的设备对象,一个数据库文件包含两个文件:.mdf和.ldf。在系统瘫痪之前把这两个文件从SQL Server的安装目录的data子目录里拷贝出...
  • faihtua
  • faihtua
  • 2012年04月12日 23:38
  • 339

r技术内幕sql serve2本全-全本

  • 2017年12月31日 17:19
  • 49B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql serve的备分与还原
举报原因:
原因补充:

(最多只允许输入30个字)