Asp.net实现数据库的恢复(还原)

原创 2008年09月28日 18:35:00
对于一个大型网站来说,具有数据恢复功能尤为重要。因为数据恢复功能可以在数据遭到破坏时,将数据恢复到系统中,保证系统重新正常运转,从而避免因数据遭到异常丢失所带来的损失。

1.方案分析

    还原数据库是使用数据库的备份文件对数据库进行还原操作。由于病毒的破坏,磁盘损坏或操作员操作失误等原因会导致数据丢失、不完整或数据错误,此时,需要对数据库进行还原。

在实际应用中选用怎样的数据库备份方案将直接对数据库的恢复产生影响,而且也决定了数据库在遭到破坏前后的一致性水平,所以在做出选用什么样的数据库备份方案时必须认识到以下几个问题。

1)如果进行数据库的完全备份,那么在恢复数据库时将无法恢复自最近一次数据库备份以来的数据库中所发生的所有事务,这种方案的优点是简单,而且在进行数据库恢复时操作也很方便。

2)如果在进行数据库备份时也进行事务日志备份,可以将数据库恢复到失败点。

2.实施过程

 

 

     本实例主要应用RESTORE DATABASE语句还原数据库

 

 

具体实施过程:

1)新建一个网站,将其命名为FileRevert,默认主页为Index.aspx

2)在Index.aspx页添加1DropDownList控件,1FileUpload控件,1个Button控件,用于选择要恢复的数据库、选择要恢复数据库的文件和执行还原数据库操作。

4)主要程序代码。

Page_Load事件中,根据条件从数据库中检索出相应的数据,并将结果集中的数据填充到DropDownList中,代码如下。

 

 

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string cmdtxt1 = "Server=(local);DataBase=master;Uid=sa;Pwd=";
            string cmdtxt2 = "Exec sp_helpdb";
            SqlConnection Con = new SqlConnection(cmdtxt1);
            Con.Open();
            SqlCommand mycommand = new SqlCommand(cmdtxt2, Con);
            SqlDataReader dr = mycommand.ExecuteReader();
            this.dropSqlName.DataSource = dr;
            this.dropSqlName.DataTextField = "name";
            this.dropSqlName.DataBind();
            dr.Close();
            Con.Close();
       }
 }    
双击【恢复数据库】按钮触发该按钮的Click事件,在该事件中执行数据库还原操作,代码如下。

 

 

<?XML:NAMESPACE PREFIX = O />

protected void btnRestore_Click(object sender, EventArgs e)
    {
        string path = this.fileShow.PostedFile.FileName; //获得备份路径及数据库名称
        string last = path.Substring(path.LastIndexOf(".") + 1);//获取文件的后缀名
        string dbname = this.dropSqlName.SelectedValue;
        if (last == "bak")   //判断是不是数据库备份文件
        {
            string cmdtxt1 = "Server=(local);database='" + this.dropSqlName.SelectedValue + "';Uid=sa;Pwd=";
            string cmdtxt2 = "use master restore database " + dbname + " from disk='" + path + "'";
            SqlConnection Con = new SqlConnection(cmdtxt1);
            Con.Open();
            try
            {
                SqlCommand Com = new SqlCommand(cmdtxt2, Con);
                Com.ExecuteNonQuery();
                Response.Write("");
            }
            catch (Exception ms)
            {
                Response.Write(ms.Message);
                Response.Write("");
            }
            finally
            {
                Con.Close();
            }
        }
        else
        {
            Response.Write(""); 
        }
    }
注意:在编写上述代码前,需要在命名空间区域添加“using System.Data.SqlClient“和”

把.sql文件恢复到mysql数据库方法

1. 进入mysql命令行, Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id ...
  • xuwenwen_2013
  • xuwenwen_2013
  • 2016年03月05日 11:39
  • 3255

ASP.NET中使用代码来进行备份和还原数据库

Sql代码   -- 备份数据库  backup database db_CSManage to disk='c:\backup.bak'  -- 还原数据库,必须先备份该数据库的日志文件到...
  • hbgyjs98235
  • hbgyjs98235
  • 2014年03月18日 00:14
  • 1522

用SQL语言,实现数据库的备份/恢复的功能

体现了SQL Server中的四个知识点: 1.   获取SQL Server服务器上的默认目录 2.   ...
  • feng19821209
  • feng19821209
  • 2006年03月24日 09:32
  • 2358

用mysqldump备份出来的还原回去很慢解决办法

转自 http://hi.baidu.com/mnsch/blog/item/e1c11b290bfca9de98250a63.html  MySQL导出的SQL语句在导入时有可能会非...
  • skykingf
  • skykingf
  • 2012年05月08日 10:50
  • 4777

oracle数据库还原,如何将dmp文件还原到oralce库

 最近用到从oracle的dmp文件中还原数据由于没有这方面的资料,在网上搜集了一些,相信有以下这些资料,我们可以成功地将dmp文件用命令行的方式还原回去在这里我用的是oracle10g的版本,我的机...
  • sunbingzibo
  • sunbingzibo
  • 2007年06月15日 20:25
  • 27465

数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)

了解数据库备份还原顺序关系
  • roy_88
  • roy_88
  • 2014年09月19日 18:59
  • 3215

asp.net还原备份数据库(C#)

因为做项目的时候用到对数据库的还原和备份,第一次接触,所以上网查了关于这方面的资料,网络果然是个好东西,该有的都有了,这里我就把原文中的代码直接粘贴过来了。   using System; us...
  • laner0515
  • laner0515
  • 2013年02月16日 14:18
  • 1959

C# SQLSERVER2008数据库备份和还原的两种方法 (有进度条)

:方法一(不使用SQLDMO): /// ///备份方法 /// SqlConnectionconn=newSqlConnection("Ser...
  • senlin20
  • senlin20
  • 2013年03月15日 11:12
  • 4119

RMAN 系列(五) ---- RMAN 还原 与 恢复

一. RMAN 还原与恢复基础在RMAN 用于中,还原与恢复是两个不同的概念。 还原(restore):指访问先前生成的备份,从中得到一个或多个对象,然后在磁盘上的某个位置还原这些对象。 恢复(rec...
  • tianlesoftware
  • tianlesoftware
  • 2010年06月28日 22:32
  • 13244

SQLServer数据库还原无独占的访问权限解决办法

解决方法: 1,设置数据库在单用户模式下工作。 设置方法:在需要还原的数据库上右击,在右键菜单命令上选择”属性”- >”选项”- >”状态”- >”限制访问”- >”Single”。这是SQLSE...
  • coder_chen
  • coder_chen
  • 2017年03月14日 11:13
  • 534
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Asp.net实现数据库的恢复(还原)
举报原因:
原因补充:

(最多只允许输入30个字)