VB实现SQL Server数据库备份和恢复的方法研究.doc
文本预览下载声明
VB实现SQL Server数据库备份和恢复的方法研究
第6卷第3期
2006年6月
鸡西大学
JOURNALOFJⅨIUNIVERSITy
Vo】.3NO.6
Jun.2006
文章编号:1672—6758(2006)O3—0057—3
VB实现SQLServer数据库备份和恢复的方法研究
包贵鑫刘锋赵东劲
摘要:备份与恢复是数据库管理员维护数据库安全性和完整性的重要操作.本文分析并介绍用Access
备份SQL数据库的方法.同时,就Access数据库的安全接口作了简略探讨,以便备份后不致丧失数据,同时
提出了改进备份与恢复策略的一些建议.
关键词:SQLServer数据库;数据备份;数据恢复;Access
中图分类号:TP309.3文献标识码:A
对于一个数据库系统来说,它的数据的完整
性和可靠性是至关重要的,因此要根据具体情况
制订一个完善可行,确保系统安全的备份计划.
因为没有备份的系统是不可靠的,危险的,后果将
是不可估量的,尤其对一个信息化程度较高的企
业来说,最有价值的财产或许就是企业数据库中
的数据.一个系统中最重要的是大量的实时数
据,没有备份功能显然是不安全和不完善的.经
过实践摸索出VisualBasic6.0开发的备份程序,
能将数据库备份到Access数据库(Access为目前
流行的桌面型数据库产品,具有存储操作灵活,
便利等优点,并且因它与SQLServer同属微软数
据库产品,二者能很好地兼容)中,并对Access
数据库进行加密以防数据被非法访问.该程序还
能用Access备份库的数据恢复SQLServer数据
库,从而减少因误操作损坏数据内容而造成的损
失.使用该方法,用户不须添加额外设备,只须在
原有服务器上运行该备份程序,其界面简单方便,
适合普通用户使用.
备份是数据库管理员定期地将整个数据库复
制到磁带或另一个磁盘上保存起来的过程.常用
的数据备份类型有:完全备份,差异备份,事务日
志备份,文件或文件组备份.一个通用的备份策
略是:以较长的时间间隔执行完全备份,以适中的
时间间隔进行差异备份,并以较短的时间间隔进
行事务日志备份.当数据遭到破坏后就可以利用
备份来恢复数据库.恢复数据库是一个装载数据
库的备份,然后应用事务日志重建的过程.一个
通用的恢复策略是:首先恢复完全备份的数据,然
后恢复差异备份数据,最后根据事务日志备份进
行恢复.
一
备份方案
1.用控制面版的ODBC设置,给SQLServer
中的数据库添加一个数据源名称.
2.在Access中新建一个数据库,命名为
backup.mdb.
3.用VB定义两个主要过程:Attach_Table()
和Create—Table().Attach—Table的作用是将
SQLServer数据库中的所有需要备份的表链接到
Access数据库中,在此过程中要排除系统表,因为
那是SQLServer自创建的,表中无用户数据.
Create_Table的作用是在backup.mdb中创建目的
表,即在这个备份Access库中创建表用来保存所
有存在SQL数据库中的用户数据.另外,在链接
过程中,要去掉SQLServer自带的拥有者名称.
二程序的逻辑结构
1.通过第一步创建的ODBC数据源打开要
备份的SQL数据库;
2.使用Attach_Table()将该数据库中的所有
用户表链接到backup.mdb中,排除系统表的方
法是:
ForEachtdfinbackup—
db.TableDefs
If(tdf.attributesAnddbSystemObject)=0
//条件成立,说明该表是用户定义的表,可以
链接,否则跳过
Endif
Next
3.使用Create_Table()对每个表创建与之对
应的备份表,取名可遵循如下原则,若原表叫ta.
ble—name,则备份表叫b_table—name.
4.将table—name表中的所有记录复制到b—
table_name中.
5.从备份库删除对SQL数据表的链接.
三程序原码
采用微软DAO(DataAccessObject)数据模
型,打开Access本地数据库,并连接一个外部
ODBC数据表,拷贝该表结构完成,现对几个过
作者简介:包贵鑫,副教授,鸡西大学计算机系,黑龙江?鸡西.邮政编码:158100
?
57?
第3期鸡西大学2006血
程中重要部分说明如下:
//创建新表的过程
ForEachfldIntdfLinked.Fields
SetnewFil=tempTab.CreateField(fld.
Name,fld.Type,fld.Size)
newFil.OrdinalPosition=fld.OrdinalPosition
newFil.Require
显示全部