Web环境下SQL中数据的磁带备份与恢复
1 引言
实现磁带备份数据的功能有两方面的困难:首先,MS SQL Server(以下简称SQL)所提供的数据库的整体备份及恢复功能不能直接满足本系统要求的数据滚动备份。其次,需要解决如何在Web环境下实现磁带数据备份功能。【来源:开店乐KaiDianLe.Com】
利用SQL中现有的数据库备份和恢复的命令以及NT中的IDC技术,实现SQL数据库中数据滚动备份到磁带的功能。本系统所实现功能既能保证近一段时间的数据总在数据库中,又能保证系统管理员可随时恢复备份数据,供用户查询。本文所实现的功能具有普遍的意义,特别适用于中小型企业开发基于Intranet技术的管理信息系统。
2 磁带数据备份及恢复的工作过程
为了充分利用SQL中现有的数据库备份与恢复功能,以降低实现磁带数据备份的代价,我们特地在硬盘上建立了一个与磁带的容量相当的数据库,我们称之为桥数据库,如FJJDBBK。可方便地实现数据的滚动备份了。其工作过程是:管理员把某月的数据从主数据库移到桥数据库中;然后用SQL的备份功能把桥数据库备份到磁带上。用户需要查看磁带中的历史数据时,系统又用SQL的恢复备份功能把磁带中的数据恢复到桥数据库中,用户直接在桥数据库中查阅历史数据。此外,在数据备份到磁带后,在进行下次数据备份前,必须清空备份数据库中的数据。为了提高工作效率,我们建立了一个空白桥数据库(没有数据时的桥数据库)。每次进行磁带备份数据之前,就用此空白数据库恢复桥数据库。空白数据库文件建立后要保存好,不可随便删除。
建立该备份空白数据库过程为:先建立主数据库FJJDBBK,然后在FJJDBBK中建立与当前数据库中一样结构的表。建立这些表结构时最好的方法是先用Enterprise Manager的Object菜单下的Generate SQL Scripts功能生成建立这些表的Scripts文件,然后选择FJJDBBK数据库,用Enterprise Manager的Tools菜单下的Query Analyzer功能运行该文件,就建立了这些所需表。显然,这时的FJJDBBK为空数据库。我们再利用备份命令或运行Tools菜单下的 Backup/Restore功能备份该空数据库。
3 磁带数据备份及恢复的实现
在NT中,Web服务器IIS(Internet Information Server)提供了完善的访问SQL的技术IDC。IDC是一个DLL文件
(HTTPODBC.DLL),其实,它通过ODBC接口可访问各种数据库。在具体实现Web页面访问数据库时,需建立两种类型的文件:IDC文件(*.idc)和HTML模板文件(*.htx)。IDC文件用于控制数据库的访问。它一般由两部分组成:
.文件头 指明系统数据源,模板文件名,用户名及口令。有时还包括一些有关检索数据库方面的参数设置。
. 文件主体 这部分内容以"SQLStatement:"为起始标志,然后写操纵数据库的标准SQL语句。注意,每条语句以"+"号开头,它作为区分每条 SQL语句的标志。需要强调的是,对于MS SQL数据库,IDC可用其任何标准的命令及函数。例如定义变量,控制数据流等(见实例)。
IDC的处理流程如下:
首先,Web服务器IIS分析浏览器传来的URL字符串。如果当前字符串以"*.idc"结尾,就将该IDC请求传给IDC接口模块,IDC将依次读取并解释IDC文件的内容,通过ODBC模块向数据库服务器发服务请求;数据库服务器将执行结果通过ODBC接口返回给IDC模块。接着IDC模块把结果插入指定的的模板文件,形成一个实际的HTML文件交给IIS;最后由IIS将该HTML返回浏览器。
在Web信息系统中要实现完整的磁带数据备份及恢复功能需要实现以下三个功能:"数据备份"功能、"数据恢复"功能和"清理数据"功能。"数据备份 "功能在保证系统管理员操作的前提下,根据用户输入的所要备份数据的起始日期和终止日期,从主数据库把要备份的数据转存到桥数据库中,然后运用SQL的 DUMP命令实现该功能。"数据恢复"功能则在保证系统管理员操作的前提下,提供"恢复桥数据库"和"恢复空白桥数据库"的功能。只要运用SQL的 LOAD命令就可实现上述功能;同样,"清理数据"功能也要保证在系统管理员操作的前提下,根据用户输入的所要删除数据的起始日期和终止日期,运用SQL 中的DELETE命令删除当前数据库中数据。因此。为了"数据备份"功能和"清理数据"功能的顺利实施,要求每个表都有归档时间字段。
实现本系统磁带数据备份与恢复功能的部分IDC文件如下:
/*BKUP.IDC*/
Datasource: Web SQL
Template: BKUP.htx
Username: sa
Password: sa
SQLStatement:
+if %jb%=1
+/*判断系统维护员*/
+SELECT qsrq=convert(varchar(12),getdate(),1),
zzrq=convert(varchar(12),+dateadd(day,1,getdate()),1)
+/*预置起始日期和终止日期*/
/*BKUPCZ.IDC*/
Datasource: Web SQL
Template: BKUPCZ.htx
Username: sa
Password: sa
SQLStatement:
+INSERT FJJDBBK.DBO.JKLD SELECT * FROM FJJDB.DBO.JKLD
+where convert(varchar(12),gdsj,1)>=′%QSRQ%′
and convert(varchar(12),gdsj,1)< =′%ZZRQ%′
…………
+/*把当前数据库中选定的数据转存到桥数据库中*/
+DUMP DATABASE FJJDBBK TO TAPE = ′\\.\tape0′ WITH INIT, NOUNLOAD
+/*备份数据*/
+SELECT TS=′备份数据库操作已完成!′
/*HUIF.IDC*/
Datasource: Web SQL
Template: HUIF.htx
Username: sa
Password: sa
SQLStatement:
+if %jb%=1
+begin
+LOAD DATABASE FJJDBBK FROM TAPE=′\\.\TAPE0′ WITH
NOUNLOAD
+/*恢复备份数据*/
+SELECT TS=′恢复数据库操作已完成!′+/*
+end
/*QLSJKCZ.IDC*/
Datasource: Web SQL
Username: sa
Password: sa
Template: QLSJKCZ.htx
SQLStatement:
+delete FJJDB.DBO.JKLD
where convert(varchar(12),gdsj,1)>=′%QSRQ%′ and
convert(varchar(12),gdsj,1)<=′%ZZRQ%′
…………
+/*删除当前数据库中选定的数据*/
+SELECT TS=′删除操作已完成!′
在本系统中,主数据库保证存储4个月数据。系统规定,系统管理员每月月初备份上月的数据到磁带。然后删除前第4个月的数据。实现了当前数据与历史数据的同步查阅,这是Web系统的一个显著的优点。
4 结语
本文介绍了一种特殊的数据磁带备份与恢复的具体实现方法。需要指出的是,数据库备份操作是数据库管理系统非常重要的环节,而数据库备份操作过程又比较复杂,因此,要求我们必须建立完善的规章制度,由专业的系统管理员进行数据库备份和恢复操作。
【日期:2006-8-7】【作者:不祥】【转载自:开店乐】
相关文章:
最好的网上开店系统:凡人网络购物系统免费下载
SQL Server存储过程编写和优化措施
SQL Server日志文件丢失的恢复方法
SQL Server2000数据库系统表的应用
品味SQL Server 2005的几个新功能
SQL Server2000 索引结构及其使用
SQL Server 中的几个函数要记录
用SQL存储过程实现批量插入数据
获取SQL Server服务器的当前连接数
记存储过程中经常用到的本周\本月\本年函数
数据库安全--应用IDS保卫数据库
远程连接SQL Server服务器的解决方案
SQL Server数据库定时自动备份
升级到SQLServer2005的10大理由
攻破SQL服务器的十种方法
SQL Server安全规划全攻略
SQL Server 服务器安装剖析
大型数据库的SQL查询优化技巧
优化SQL Server服务器内存配置的策略
SQL服务器外网IP测试故障解决
SQL SERVER 2000 SP4新特性概述
Access与Sql Server之ASP代码比较
通过作业定时同步服务器上的数据
比较两个数据库的表结构差异
不破坏原加密存储的存储解密
优化--让你的SQL运行速度明显提高
SQL Server数据库的备份与恢复
数据库学习:查询区分大小写
查询指定的表在那些数据库中存在
Web环境下SQL中数据的磁带备份与恢复
SQL Server里函数的两种用法
SQL语法参考手册
SQL数据库的六种数据移动方法
Access转换成为SQL Server
数据变换和转换注意事项(SQL)
SQL语句性能调整原则
SQL实现从数据库中随机抽N条记录
怎样能限制SQL Server只能让指定的机器连接
SQL存储过程入门与提高
SQL Server端口更改后的数据库连接方式
怎样设置SQL Server的用户及权限
关于SQL语句查询分页数据的解决方案
关于sql数据库维护失败的问题查找方法
SQL Server与Excel数据互导
减少动态SQL语句的预编译时间
一个完整的SQL SERVER数据库全文索引的示例
如何让你的SQL运行得更快
MS-SQL server数据库开发精典技巧
MSSQL按分页返回查询结果的存储过程
MySQL 4.1.0 中文参考手册[连载]
数据库访问技术
SQL语言快速入门
JDBC驱动程序的类型
Microsoft的MSDN里面对ODBC的介绍
JDBC1.2中几个最重要的接口和类
SQL7.0储存过程调试
UDA技术综述
SQL Server的存储过程调用Com组件
通过HTTP访问SQL Server 2000
数据库应用程序需注意的问题
SQL Server安全性简介
用COM自动服务扩展SQL Server功能
全面接触SQL语法
SQL Server 2005数据库升级要点和技巧
多条件数据库查询的优化方法
如何解决SQL Server服务器耗尽内存的情况
SQL Server的空值处理策略
利用数据库日志恢复数据到时间点的操作
得出SQL语句的执行时间的方法
SQL Server2000数据库文件损坏时如何恢复
在SQL Server 2000里设置和使用数据库复制
修改系统密码后SQL服务器无法启动解决
远程检测MS SQL Server账号安全性
基于角色的方式管理SQL Server安全
针对MS SQL SERVER的安全防御方案
SQL Server补丁安装常见问题
保护SQL Server:为安全性而安装
SQL Server数据库安全规划全攻略
SQL Server 2000 客户端实用程序小技巧
SQL Server到Oracle连接服务器的实现
把Access数据库移植到SQL
避免Access和SQL Server的空值冲突
用SQL Server保持会话状态
两个SQL Server维护技巧
Sql Server全文搜索中文出错的问题
SQL Server备份的三个恢复模型
利用BCP恢复SQL Server 2000数据库
常用SQL字符串函数问题集锦
SQL语句--如何替换字符串中的个别字符?
MSSQL Ntext中的字段替换处理存储过程
SQL中将一列数据分成三列来显示的方法
SQL SERVER中替换text,ntext列中的字符串
SQL存储过程来建立自动备份数据库
Microsoft SQL Server 数据库维护计划
两台Sql Server数据同步解决方案
用SHA1或MD5 对用户身份验证的简单实现
SQL Server开发的二十一条军规
一个四用户信息同步更新的存储过程
SQL Server中如何计算农历
SQL Server安全设置清单列表
SQL Server存储过程入门与提高
版权所有:Kaidianle.Com 联系方式:Shnxn@Yhaoo.Com.Cn 京ICP备06028743号 在线留言