基于Web的数据备份与恢复

2009-07-16 09:33:54
新媒体研究 2009年8期
关键词:数据恢复数据备份信息安全

鲍 通

[摘要]随着计算机的普及和信息技术的进步,特别是计算机网络的飞速发展,信息安全的重要性日趋明显。但是,作为信息安全的一个重要内容数据备份的重要性却往往被人们所忽视。只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补和估量的。

[关键词]数据备份 数据恢复 信息安全 丢失

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420050-02

一、背景简介

随着计算机的普及和信息技术的进步,特别是计算机网络的飞速发展,信息安全的重要性日趋明显。但是,作为信息安全的一个重要内容数据备份的重要性却往往被人们所忽视。只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补和估量的。因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。

二、需求分析

学生信息管理系统是利用C#.NET+SQL2005数据库采用B/S模式实现的方便学生网上查询个人成绩和选课信息的管理平台。学生可以通过系统会员注册的方法得到权限,进入查询页面查询考试成绩、进入编辑页面进行选课;管理员可以通过系统管理权限,录入或更改以及删除学生的考试成绩及选课信息,以供学生查询。避免了学生的长久等待,方便了学生在短期内得知自己近段时间学习的情况以及相关信息。

目前需要在脱离数据库自动备份功能的条件下,设计功能模块“一键备份(完整备份)、一键还原”,嵌入至系统中。确保数据的完整性和安全性;尽量减少占用网络资源;尽量不影响系统的运行效率;充分有效地利用存储资源;模块采用B/S模式,且具有较好的移植性。

作用例:如果系统管理员身在北京出差,随处可用笔记本电脑网上登陆该系统,点击“一键备份”。期间不幸得知南京服务器上的该系统数据库被删除或被攻击,身在北京的管理员可随处再度登陆该系统,点击“一键还原”,即可对南京服务器上的该系统数据库恢复最后一次备份时间之前的所有数据,以确保系统的正常运行。

三、主要研究的内容和目标

(一)内容分析

1.适应性:在脱离数据库群集技术的条件下,研究数据怎样才能更快捷、更准确无误地,并且有选择性地进行备份,然后当系统发生问题时,能及时地进行还原或恢复,以尽可能地减少损失。如果基于数据库群集技术,那么这种数据备份也可以防止服务共享磁盘损坏带来的后果,即便所有子服务器的数据库都瘫痪掉,数据的备份文件依然存在,但需要提前对备份文件进行备份。

2.智能性:系统管理员在客户端对数据库做备份时,能得知数据备份的进度,临时情况,以及结果,且可快捷恢复。

3.安全性:对数据备份进行加密,只有操作员或具有管理角色的用户可对其进行恢复。可从任意断点进行恢复,选择性地恢复。对数据备份文件进行再备份,以免人为误删。

4.移植性:相对独立的备份还原功能(低耦合),不会影响系统其他功能的正常运转,从而可将此功能模块嵌入至系统中。

(二)研究目标

客户端对服务器端的数据可进行一键备份,一键还原,确保安全,确保完整。

四、采用的方法

(一)分析

Visual Studio 2005基于文件的工程开发;母版页面;用户控件可视化;泛型;支持嵌入式资源;Visual Studio ASP.NET代码编辑器。

用C#设计的组件可以很容易的转换成Web服务,可以以任意操作系统的任意语言从Internet上调用。开发此应用程序时使用.NET框架和C#语言创建了多线程的服务。对此系统来说,C#这个面向对象的编程语言看起来是最合适做应用程序设计的了;实际上,因为有了来自.NET框架对核心编程任务的支持,我们发现使用C#比使用VB更容易,且运行效率会更高。

(二)设计

该模块利用C#语言基于Web完成对SQL2005数据库备份和还原的功能,实现一键备份和一键还原,方便快捷易操作。此为系统管理员具备的权限,故此功能模块欲嵌入至系统后台。

把数据库的备份文件都整合到一个文件夹下,用一个相对路径来识别这个文件夹,从而准确无误地找到这个数据库备份设备以进行还原。这个所谓的“定位”和备份功能封装到一起,操作简便;内部划分模块,分别继承自备份功能,这样可面对不同的数据库对象,而不至于只可针对同一个数据库,为今后的升级做铺垫。对于本系统,因数据库为固定名称,故可对.NET中的Web.config文件进行配置。搭建完SQL数据库环境之后实现与.NET相连结,数据库此时要满足允许远程连接的状态条件。之后按照详细设计进入编码阶段。

五、模块的实现(附主干代码)

(一)服务器端的布置

1.设置SQL2005的验证模式为“Windows与SQL混合验证”;

2.设置SQL允许sa帐户,密码设置为1;

3.设置SQL允许远程访问;

4.测试连接,确保服务正常运行;

5.检查数据库默认备份路径。

(二)系统的后台操作

1.备份数据库到服务器端默认本地路径.backup文件夹下(系统管理员权限);

2.还原数据库默认寻找该路径下已备份的.bak文件;

3.若已备份,则覆盖之前的备份,数据更新至最后一次的备份时间,待备还原;

4.若无备份,还原功能因寻找不到相应的备份文件而无法实现;

5.连续重复还原不会对该系统造成影响,但会降低服务器端相关的运行效率。

(三)备份功能的实现

//**************************数据库备份**********************

******

//引用Web.config的数据库连接字符串优点是数据库移植的时候可直接对Web.config的数据库连接字符串中的IP进行更换。 此处省略连接数据库的代码

SqlCommand cmdBK = new SqlCommand();

cmdBK.CommandType = CommandType.Text;

cmdBK.Connection = conn;

cmdBK.CommandText = @"backup database SMS to disk='..BackupSMS" + ".bak'" + " with init"; //通过执行SQL语句对数据库进行备份

//接下来可对执行的语句进行判断,若备份成功就弹出备份成功提示框;否则会因服务器连接失败,或者要备份的数据库不存在于服务器中,则弹出备份失败提示框。此处可用try…catch…语句来实现。代码略。

//此处要杀死所有正在使用要备份数据的数据库进程,代码见“还原功能的实现”,此处略。

conn.Open();cmdBK.ExecuteNonQuery();

System.Web.HttpContext.Current.Response.Write("<Script>alert('数据库备份或更新备份成功!');</Script>");

效果:此时找到SQL默认backup路径下,会生成数据库备份文件SMS.bak。

(四)还原功能的实现

此时假设数据库SMS已经不存在(包括数据库崩溃),测试中我们人为地删除数据库SMS,那么可采用“一键还原”功能,如下:

//**************************数据库还原**********************

*****

//此处省略连接数据库的代码

//杀死所有正在使用要还原数据的数据库进程

SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.

dbid AND sysdatabases.Name='SMS'", conn);

SqlDataReader dr;

dr = cmd.ExecuteReader();

ArrayList list = new ArrayList();

while (dr.Read())

{ list.Add(dr.GetInt16(0)); }

dr.Close();

for (int k = 0; k < list.Count; k++)

{ cmd = new SqlCommand(string.Format("KILL {0}", list[k]), conn); cmd.ExecuteNonQuery(); }

SqlCommand cmdRT = new SqlCommand();cmdRT.CommandType = CommandType.Text;

cmdRT.Connection = conn;

cmdRT.CommandText = @"restore database SMS from disk= '..BackupSMS" + ".bak'" + " ";

cmdRT.ExecuteNonQuery(); //通过执行SQL语句对数据库进行还原

//接下来可对执行的语句进行判断,成败两种情况,依然可用try…catch…语句来实现。代码略

效果:数据库SMS还原成功,截止最后一次备份的时间之前的所有数据被还原。

六、结论

Asp.net主要是面向程序员的一次改革,它使编写大型的Web应用程序更为简便和符合现代软件工程。就这一点而言,Web应用可以看成是传统C/S结构的分布式扩展。对比这两种方式,我们会发现它们会越来越相似,最后的区别只在于客户端是什么。Web应用与C/S的主要不同只在于Web应用的客户端是基于浏览器的,而C/S应用的客户端则五花八门,什么都有。它们的优缺点也将主要由这一点决定。

参考文献:

[1]微软公司著,面向.NET的Web应用程序设计,北京:高等教育出版社,2004.

[2]微软公司著,基于C#的Windows应用程序设计,北京:高等教育出版社,2004.

[3]微软公司著,高级编程技术,北京:高等教育出版社,2004.

[3]陈克力著,SQL Server2005编程基础,北京:清华大学出版社,2008.

[4]张海藩著,软件工程导论,北京:清华大学出版社,2008.

[7]开发视界论坛,http://www.sf.org.cn/bbs.

[8]CSDN网站,http://blog.csdn.net.

猜你喜欢
数据恢复数据备份信息安全
泉州高速公路收费系统远程数据备份研究
海洋数据备份平台的设计和实现
程控交换机的数据备份与恢复技术分析
No.4 IDC:2019年上半年数据备份与恢复市场同比增长10.0%
保护信息安全要滴水不漏
高校信息安全防护
消费导刊(2017年20期)2018-01-03 06:26:38
常见硬盘数据丢失的分析与恢复
科技视界(2016年26期)2016-12-17 23:55:07
浅议数据安全与恢复
基于Android—x86的windows恢复系统研究与设计
软件导刊(2016年9期)2016-11-07 18:29:36
保护个人信息安全刻不容缓