• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 小学学习 > 正文

    [VB中实现SQL,Server数据库备份和恢复]备份数据库

    时间:2020-03-10 07:16:38 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要: 阐述数据备份和恢复技术对数据库系统的重要性,提出数据备份和恢复的方法和策略,并且通过VB实现SQLServer数据库的备份和恢复功能,同时给出关键的程序代码。
      关键词: VB;SQLServer;数据库系统;备份;恢复
      中图分类号:TP309.3 文献标识码:A 文章编号:1671-7597(2011)1210028-01
      随着计算机信息系统的不断发展,用户的核心业务越来越依赖于信息系统的可靠运行,信息系统中的关键业务数据已经成为用户最为重要的资产,对于一个数据库系统来说,数据的安全性和可靠性是至关重要的。尽管数据库管理系统中采取了各种保护措施以保护数据库的安全性和完整性,但是,计算机系统中的软硬件故障、用户误操作、病毒、自然灾难等都可能会导致数据库系统灾难性的破坏。所以,做好数据库的备份工作极为重要。
      考虑到数据库应用系统大多采用Microsoft Visual Basic 6.0添加SQL Server的结构,设计一个通过前台操作实现数据库备份与恢复的程序,这样可以通过简单的界面就能方便的实现数据库的备份与恢复,既能避免操作人员对SQL Server的操作,同时保证了数据库的安全。
      1 数据库备份和恢复技术
      1.1 基本概念。备份就是在某种介质上存储数据库或者其中一部分的拷贝,以便在数据库遭到破坏的时候能够及时的还原和恢复数据。SQLServer提供了完全备份、差异备份、事务日志备份、文件和文件组备份等四种常用的备份方式。恢复是指从一个或多个备份中还原数据,并在还原最后一个备份中恢复数据库的操作。
      1.2 数据备份和恢复策略。完全备份可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。
      差异备份只包含自上次完全备份以来所改变的数据库,占用空间比完全备份小,存储和恢复速度快。推荐每天做一次差异备份。
      事务日志备份记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以备份时间较短,推荐每小时备份一次事务日志。
      文件备份可以把数据库分成多个文件存储。如果数据库非常大,那么可以使用文件备份每晚备份数据库的一部分。
      当数据遭到破坏后就可以利用备份来恢复数据库。常用的恢复策略是,首先恢复完全备份,然后恢复差异备份数据,最后根据事务日志备份进行恢复。
      1.3 数据备份的注意事项。1)不要将数据库或事务日志备份到数据库所在的同一物理磁盘上。因为如果磁盘设备发生故障,将无法还原数据库。2)备份数据时不能只做完全备份。只有完全备份,是不能将数据库恢复至某个时间点,所以,需要结合完全备份和日志备份。3)在未做完DBCC检查之前,不能删除旧备份文件,以防新的备份存在问题。4)如果数据库服务器磁盘空间有限,那么必须要经常登录服务器来删除旧备份,否则当磁盘空间用完时,就会影响备份工作。
      2 备份功能的设计与实现
      
      图1 数据备份和恢复窗体运行界面
      在VB工程中,创建“数据备份”和“数据恢复”两个窗体,窗体的设计界面如图1所示。通过选择不同的按钮,实现不同的备份操作,本文只实现常用的三种备份。当恢复时首先要选择要备份文件和备份类型,单击“恢复数据库”按钮。
      2.1 备份数据库
      在模块或窗体通用区定义变量:
      Public cn As New ADODB.Connection
      public bfpath as string "备份路径
      在窗体的load事件中完成数据库的连接和打开,stu是要备份的数据库名称,代码如下:
      cn.ConnectionString = "driver={sql server};server=dxz;uid=a;
      Pwd=1234;database=stu"
      cn.Open
      实现数据备份功能的重点代码:
      Private Sub Cmdqbf_click() "完全备份按钮
      Dim bfname as string "备份文件的名称
      Bfpath=text1.text+"\"
      Err.Number = 0
      Bfname="stu" & Date & ".bak"
      Cn. Execute "backup database stu to disk="" + bfpath + bfname + """
      If Err.Number = 0 Then
       MsgBox "数据备份成功!", 64, "提示"
       Unload Me
      Else
       MsgBox "数据备份失败!请检查数据库是否正在打开!", 16, "提示"
      End If
      cn.Close
      End sub
      差异备份的方法与完全备份类似,只需在备份语句后加参数“with differential”即可,事务日志备份的语句是backup log ,具体的备份语句如下:
      conn.Execute "backup log stu to disk =""+bfpath+bfname+"""
      在备份时,不同类型的备份文件的名称最好区分一下,这样恢复的时候不会混淆。
      2.2 恢复数据库。数据恢复时要区分用户的备份形式,不同备份的恢复方法不同,在恢复数据库时,必须断开数据库的所有连接,以独占的方式打开。
      “数据库恢复”按钮的主要代码如下:
      bfwjm= commondialog1.filename
      Select case combo1.text
      Case"完全备份" "file参数后的1为还原备份的备份号
       Bfstr="restore database stu from disk="" + bfwjm + ""with FILE=1",norecovery
      Case "差异备份”
      Bfstr="restore database stu from disk=""+bfwjm+""with FILE=2",
      
      Recovery
      Case"事务日志备份"
       Bfstr="Restore log stu from disk=""+ bfwjm+"",recovery"
      end select
      Cn.Execute bfstr
      在恢复差异备份时,必须先恢复最后一次的完整备份。
      3 结束语
      本文使用VB设计出简单方便的用户界面,用户通过对前台的操作来实现数据库的备份与恢复操作,无需任何SQLServer知识,使得数据库的维护工作变得非常简单方便,杜绝了数据库误操作的可能性,提高了数据的安全性,适合普通用户使用。
      
      参考文献:
      [1]申伟,利用VB实现SQLSERVER数据库的备份与恢复,装备制造技术,2007,4:49-50.
      [2]龚雄涛,SQL Server数据库恢复技术研究,科技信息,2009,27:201-202.
      [3]张生,数据库应用技术SQLSERVER2005提高篇,机械工业出版社,2008:99-113.

    推荐访问:备份 恢复 数据库 VB中实现SQL Server数据库备份和恢复 sql数据库备份方法 备份数据库sql语句

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章