动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   程序开发 → 阅读文章

 利用VB进行SQL2000的数据备份和恢复

作者来源: 
阅读 数 590 人次 , 2006-5-18 11:50:00 

一、数据备份

  备份有两中形式完全备份和差异备份

  完全备份:是对数据库进行完整备份,周期比较长,如1周等

  差异备份:是对更新备份的数据进行备份,周期比较短,如1小时

  命令介绍: Backup Database [数据库名] To Disk=[保存路径和名称] With [其他属性]


  代码注释:ServerIP :SQLServer所在机器的 IP
       jtsg:SQLServer中数据的名称

Public Cn As ADODB.Connection
Set Cn = New ADODB.Connection
strcon = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=jtsg;Data Source=" + ServerIp + ";" + _
"use procedure for prepare=1;auto translate=true;" + _
"use encryption for data=false;tag with column collation when possible=false"
Cn.ConnectionString = strcon
On Error Resume Next
Cn.Open
If Cn.Errors.Count > 0 Then
For i = 0 To Cn.Errors.Count - 1
If Cn.Errors(i).Number = -2147467259 Then
MsgBox "网络不通或服务器未开,请确认后再试", vbOKOnly + vbInformation, "提醒"
Unload Me
Exit Sub
Exit For
End If
Next i
End If



二、完全备份

Private Sub BackupAll()
Cn.Execute "backup database jtsg to disk='" + App.Path + "\backup\myjtsgall.bak' with name='jtsg backup all',description='Full Backup Of jtsg'"
MsgBox "数据完全备份已经完成", vbOKOnly + vbInformation, "提醒"
End Sub



三、差异备份

Private Sub BackupDif()
Cn.Execute "backup database jtsg to disk='" + App.Path + "\backup\myjtsgdif.bak' with differential ,noinit,name='jtsg backup dif',description='Differential Backup Of jtsg'"
MsgBox "数据差异备份已经完成", vbOKOnly + vbInformation, "提醒"
End Sub



四、数据恢复

  数据恢复,问题很多,要区分用户的备份形式。一般备份的默认形式是 Append to media,即添加到备份设备已有内容后面。前面介绍的备份方式就这种。还有一种备份形式是 OverWrite,即覆盖设备原有内容。这两中备份形式决定恢复的方式也不一样。

  命令介绍: Restore Database [数据库名] From [保存备份的路径和名称] With[其他属性]

  在其他属性中重点介绍:File 、 NORECOVERY和 RECOVERY

  1.FILE
  这是不同备份形式的重要参数,用来指定从设备上的第几个备份中恢复,比如采用APPEND形式备份,作了两次备份,恢复第一个备份时应该在恢复命令中使用“FILE=1”;恢复第二个备份时则使用“FILE=2”的选项。
  当然如果备份形式是OVERWRITE,备份中就只有一次备份,所以使用 FILE=1的选项;

  2.RECOVERY
  如果使用RECOVERY选项,那么恢复完成后,SQLSERVER回滚被恢复数据库中所有未完成的事务,以保证数据库的一致性。在恢复后用户就可以访问数据库。所以RECOVERY用来恢复最后一个备份。NORECOVERY则相反。默认为RECOVERY。

  代码解释:还原备份的文件可以选择,完全备份和差异备份

Private Sub RestoreData()
Cn.Execute "restore database jtsg from disk='" + App.Path + "\backup\myjtsgall.bak' with FILE=1"
MsgBox "数据恢复已经完成", vbOKOnly + vbInformation, "提醒"
End Sub


  
 本文Tags备份  恢复  数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:vb高手搜集-常见问题总结(3)
· 下一篇:vb高手搜集-常见问题总结4(终章)
· 程序员趣味读物:谈谈Unicode编码
· 建模过程的盲点:软件集成中的软知识
· PB6中报表输出的技巧二则
· java的quoted-printable解码器源代码
· 如何将JAVA生成可执行文件?


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077