文档详情

VB实现SQL Server数据库备份和恢复的方法研究.doc

发布:2018-10-06约5.61千字共10页下载文档
文本预览下载声明
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
显示全部
相似文档