如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?
来源:互联网 发布:七牛云 外链域名 编辑:程序博客网 时间:2024/05/14 20:05
如何通过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”);
1public 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)下载数据库备份。
1public 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来实现。
如何通过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”);
1public 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)下载数据库备份。
1public 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来实现。
- 如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?
- 如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?
- 如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?
- [电脑问题]如何把3.5英寸的硬盘安装到没有硬盘架的新电脑
- 如何备份远程服务器上的ORACLE数据库到本地电脑
- 如何把本地数据库还原到远程服务器的数据库
- 如何将sql数据库的文件备份到本地?
- 把远程oracle数据库备份到本地
- SQL server 2008R2 采用脚本把远程连接的数据库备份到本地
- 教你怎么把服务器上的数据库备份到本地计算机
- 数据库备份之_如何将备份的数据包下载到本地
- 关于andriod数据库的创建和通过adb命令行下拉数据库文件到电脑本地
- 在远程Linux服务器中备份MySQL数据库,通过scp将远程Linux服务器中文件下载到本地Linux电脑中
- 怎么样把备份的BAK文件导入到新建的数据库中MSSQL数据库
- C#如何把Editor设计的内容上传到服务器端
- 通过Webservices在Web服务器端异步热备份Oralce数据库
- 如何把数据库的内容写入到Word文档中
- 如何把数据库的内容写入到Word文档中?
- 多表操作
- WSSF:ME - how to consume a service
- JAVA连接数据库大全
- imp oracle dump file
- 随笔!
- 如何通过Web方式把服务器端的数据库备份到本地的电脑硬盘中?
- 正则表达式
- jsp 内置对象详解
- 一点关于复制构造函数的问题
- 监控磁盘存储过程
- 中国计算机病毒发展简史
- 基于.NET平台的分层架构实战
- 逛了N年的论坛,最后还是要回家.
- Qt/QTE 编译安装问题与解决方法 (3)