Asp.net实现数据库的备份
|
为了保证用户数据的安全性,避免计算机在操作过程中出现意外,以及种种原因而引发的数据的丢失,应对数据库及时进行备份。以便日后能够对相关数据进行恢复,减少由于意外而造成的损失。 1.方案分析 备份主要是对SQL Server数据库或事务日志进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。在SQL Server中提供了BACKUP DATABASE语句用于实现备份数据库。数据库的备份主要是对数据库的完全备份,包括所有的数据以及数据库对象。 说明:由于是对数据库的完全备份,所以这种备份类型不仅速度较慢,而且将占用大量磁盘空间,正因为如此,在进行数据库备份时常将其安排在晚间,因为此时整个数据库系统几乎不进行其他事务操作,从而可以提高数据库备份的速度。 在对数据库进行完全备份时,所有未完成的事务或者发生在备份过程中的事务,都不会被备份。通常情况下,可以一边进行备份一边进行其他操作,但是,在备份过程中不允许执行以下操作 l 创建或删除数据库文件。 l 创建索引。 l 执行非日志操作。 l 自动或手工缩小数据库或数据库文件大小。 如果以上各种操作正在进行当中且准备进行备份,则备份处理将被终止。如果在备份中打算执行以上任何操作,则操作失败,而备份继续进行。 本实例应用了两个技术要点:应用SQL存储过程查找企业管理器中所有数据库和bcp实用工具。 l 应用SQL存储过程查找企业管理器中所有数据库 为了使软件更加智能化,利用SQL中自带的存储过程查找管理器中所有数据表,并将数据填充到下拉列表框中,主要用到的存储过程是sp_helpdb。下面介绍sp_helpdb的语法结构和用法 语法: sp_helpdb[[@dbname=]’name’] 参数: [@dbname=]’name’:是要为其提供信息的数据库名称。Name的数据类型为sysname,无默认值。如果没有指定name,则sp_helpdb报告master.dbo.systdatabases中的所有数据库。 权限:执行默认授予public角色。 sp_helpdb必须访问服务器上的数据库以确定要显示的有关数据库的信息。因此,服务器上的每个数据库都必须满足下列条件之一。 2 执行sp_helpdb的用户必须拥有访问数据库的权限。 2 guest用户帐号必须处于数据库中。 如果无法访问数据库,那么sp_helpdb将显示错误信息15622和有关数据库信息。示例代码: 返回有关某一个数据库的信息。 Exec sp_helpdb pubs 返回所有数据库信息 Exec sp_helpdb l bcp实用工具。 bcp实用工具用于SQL Server2000实例和数据文件之间指定的格式复制数据。以下介绍bcp实用工具中几个重要的参数说明。 2 In|out|queryout|format:指定大容量复制的方向。In是从文件复制到数据库表或视图,out是指从数据库表或视图复制到文件。 2 -c:使用字符数据类型执行大容量复制操作。 2 -q:在bcp实用工具和SQL Server实例的连接中执行SET QUOTED_IDENTIFLERSON语句。 2 -S server_name[/instance_name]:指定要连接到的SQL Server实例。 2 -U login_id:指定用于连接到的SQL Server实例。 2 -P password:指定登录ID的密码 cmdtxt2+="out"+this.txtPath.Text.Trim()+".xls-c-q-S.-Usa-P"+this.txtPwd.Text.Trim()+"""; 该语句主要应用了bcp实用工具中几个重要的参数,读者可根据以上内容的介绍来进一步理解上述代码的意义。 2.实施过程 实例主要应用BACKUP DATABASE语句备份数据库到指定磁盘的文件中。 具体实施过程: (1)新建一个网站,将其命名为20,默认主页为Index.aspx。 (2)在Index.aspx页添加1个DropDownList控件,1个TextBox控件和1个Button控件,用于选择要备份的数据库、输入备份数据库的新名称和路径和执行备份操作。 (3)主要程序代码。 在Page_Load事件中,根据条件从数据库中检索出相应的数据,并将结果集中的数据填充到DropDownList中,代码如下。 protectedvoidPage_Load(objectsender,EventArgse) 双击【备份数据库】按钮触发该按钮的Click事件,在该事件中执行数据库备份操作,代码如下。 注意:此代码需要引用System.Data.SqlClient和System.IO命名空间 |
