如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?

问题描述:
    如何通过
Web 方式把服务器端的数据库备份到本地的电脑硬盘中?

解决思路:

1.      
首先必须保证Web站点和数据库部署在同一台服务器上。
数据库备份时只能备份到本地硬盘上,如果数据库和 Web 服务器不在同一台服务器上,那么通过 Web 站点下载数据库服务器上的数据库备份比较麻烦,我们后面再介绍如何解决不在同一台服务器上的情况。

2.      
通过SQLDMO将数据库备份到服务器上的指定位置。
我们可以通过 SQLDMO 来实现数据库的备份,那么要访问 SQLDMO ,我们必须通过添加对 SQLDMO COM 组件的引用,通过添加 References ,弹出对话框中,选择 COM 选项卡,然后找到组件: Microsoft SQLDMO Object Library ,点击确定,把组件添加到我们的 Web Site 中,然后通过以下代码可以对数据库进行备份
其中, strFileName 是数据库备份保存的位置(服务器上的位置),为了下载的实现简单一点,我们通过将 strFileName 设置为 Web 项目的虚拟目录下,我们可以设置为根目录下 , 那么 strFileName = Server.MapPath(“/Db.bak”);
  
 1 public  bool  BackUPDB( string  ServerName,  string  UserName,  string  Password,  string  strDbName,  string  strFileName)
 2 {
 3
 4            SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
 5
 6            try
 7
 8            {
 9
10                svr.Connect(ServerName, UserName, Password);
11
12                SQLDMO.Backup bak = new SQLDMO.BackupClass();
13
14                bak.Action = 0;
15
16                bak.Initialize = true;
17
18                bak.Files = strFileName;
19
20                bak.Database = strDbName;
21
22                bak.SQLBackup(svr); 
23
24                return true;
25
26            }

27
28            catch (Exception err)
29
30            {
31
32                throw new Exception("备份数据库失败:" + err.Message);
33
34            }

35
36            finally
37
38            {
39
40                svr.DisConnect();
41
42            }

43
44}

45

3.      
下载数据库备份
根据 2. 中的数据库备份文件 ,我们知道待下载的备份文件为: file= Server.MapPath(“/Db.bak”); 这样我们就可以通过调用 Download(file) 下载数据库备份。
  
 1 public  void  Download( string  file)
 2
 3          {
 4
 5            FileInfo fi = new FileInfo(file);
 6
 7            Response.AddHeader("Content-Length", fi.Length.ToString());
 8
 9            Response.ContentType = "application/octet-stream";
10
11            Response.AddHeader("Content-Disposition"string.Format("attachment;filename={0}", HttpUtility.UrlEncode(file, Encoding.UTF8)));
12
13 
14
15            Response.WriteFile(file);
16
17        }

18
注意:为了能够让用户可以下载备份,我们必须将数据库备份到 Web 项目的 IIS 目录下

4.      
解决办法存在的不足和改进。
通过以上两个步骤就是实现通过 Web 方式备份数据库并保存到本地硬盘,但是前提是 Web 和数据库必须部署在同一台服务器上。
那么,如果 Web 站点和数据库部署在不同机器上如何解决呢?其实也类是,只要保证我们数据库的备份文件保存位置对 Web 项目来说是透明的,而且通过 Web 可以访问得到就可以了。
比如,我们可以通过在数据库服务器上建立一个虚拟目录,指向数据库备份的位置,然后 Web 中就可以根据虚拟目录访问到备份文件。或者也可以建立一个 ftp 目录指向数据库备份位置, Web 中通过 ftp 协议来下载备份文件。当然也可以通过 Remoting Service 来实现。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值