转载:http://www.cnblogs.com/liulanglang/archive/2007/12/04/981812.html

上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过。经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享。

大家最常见的是使用sql命令来进行数据库备份,

最常用的sql语句如下:

backup [dbname]   to   disk=[路径+文件名]

restore [dbname]   from   disk=[路径+文件名]

另外可以使用SQLDMO来实现数据库备份的功能

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象。SQL-DMO 允许用支持自动化或 COM 的语言编写应用程序,以管理 SQL Server 安装的所有部分。SQL-DMO 是 SQL Server 2000 中的 SQL Server 企业管理器所使用的应用程序接口 (API);因此使用 SQL-DMO 的应用程序可以执行 SQL Server 企业管理器执行的所有功能。

在ASP.NET2005中要使用SQLDMO.DLL,首先要注册这个组件。注册SQLDMO.DLL组件的步骤:

1.“项目”——>“添加引用”——>“COM”——>“SQLDMO.DLL”这样就可以注册SQLDMO.DLL组件。

2.把在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目录下的动态链接库SQLDMO.DLL文件。

3. 把DLL文件持拷贝到C:\WINDOWS\system32目录下

4. 在C:\WINDOWS\system32目录下建立一个新文件夹:resources,在里面再建一个新文件夹2052,然后把RLL文件拷贝到2052中.即放在C:\WINDOWS\system32\resources\2052目录中

5.注册:在开始>>运行>>(输入)Regsvr32 C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll 回车。

注册过SQLDMO.DLL组件后,在C#中使用这个组件来进行开发的方式有点不同。

在C#的Web程序中使用这个组件,要在“解决资源管理器”中添加上SQLDMO.DLL组件的引用。然后在项目的命名空间中添加“using SQLDMO;”命名空间的引用,完成以上操作就可以在Web项目中使用这个组件了。

具体步骤:选中“解决资源管理器”的项目,右键,“添加引用”,然后在COM选项中选择SQLDMO.DLL组件进行添加。

在Windows项目中就不需要这么麻烦,只要完成SQLDMO.DLL组件的步骤的注册步骤,直接在Windows程序中可以添加此引用“using SQLDMO;”,就可以直接使用这个组件。

下面是用C#语言写的备份和恢复Microsoft SQL Server数据库的实现方式:

(提醒:首先要注册SQLDMO.DLL组件在WEB程序中使用SQLDMO.DLL组件,要添加SQLDMO.DLL的引用;在Windows项目中使用SQLDMO.DLL组件,注册后直接添加using SQLDMO;)

///<summary>

/// 数据库备份

/// 参数信息要备份的数据库的名称Backup .Database = "Northwind";

/// 另外一个是存放备份文件的路径和文件名称Backup .Files = @"c:\databak.bak";

///</summary>

private   void   Button1_Click(object   sender,   System.EventArgs   e)

{

SQLDMO.Backup Backup = new SQLDMO.BackupClass();

SQLDMO.SQLServer SQLServer = new SQLDMO.SQLServerClass();

try

{

SQLServer.LoginSecure = false;

SQLServer.Connect("IP", "USERNAME", "PWD");

Backup .Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMBackup _Database;

Backup .Database = "Northwind";//要备份的数据库的名称,例如Northwind

Backup .Files = @"c:\databak.bak";//存放路径,和备份文件的名称

Backup .BackupSetName = "Northwind";

Backup .BackupSetDescription = "数据库备份";

Backup .Initialize = true;

Backup .SQLBackup(SQLServer);

}

Catch(Exception ex)

{

Throw ex;

}

finally

{

SQLServer.DisConnect();

}

}

///<summary>

/// 数据库恢复

/// 参数信息要恢复的数据库的名称Restore .Database = "Northwind_Res";

/// 另外一个是存放数据库备份文件的路径和文件名称

/// Backup .Files = @"c:\databak.bak";用来恢复数据库

///</summary>

private   void   Button2_Click(object   sender,   System.EventArgs   e)

{

SQLDMO.Restore Restore = new SQLDMO.RestoreClass();

SQLDMO.SQLServer SQLServer = new SQLDMO.SQLServerClass();

try

{

SQLServer.LoginSecure = false;

SQLServer.Connect("IP", "USERNAME", "PWD");

Restore .Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMRestore _Database;

Restore .Database = "Northwind_Res";

Restore .Files = @"C:\ databak.bak";

Restore .FileNumber = 1;

Restore .ReplaceDatabase = true;

Restore .SQLRestore(SQLServer);

}

catch(Exception ex)

{

Throw ex;

}

finally

{

SQLServer.DisConnect();

}

}

}

其实这种方式是调用SQL-SERVER数据库自带的数据备份功能,这个功能是使用上面说过是两个sql语句,只不过是形成了存储过程的形式。在SQL-SERVER系统中有这两个SQL命令生成的存储过程,如下。

backup [dbname]   to   disk=[路径+文件名]

restore [dbname]   from   disk=[路径+文件名]
其实还有另外一种方式实现的数据库备份还原的方法,经过尝试我使用的是第二种方法。 这种方法是使用自定义的存储过程来实现的,声明下面这篇文章中的存储过程是转载的,但是方法很不错! http://www.cnblogs.com/liulanglang/archive/2007/12/04/981821.html

转载于:https://www.cnblogs.com/jameslif/p/4934782.html

动态备份SQL-SERVER数据库——SQLDMO相关推荐

  1. 自动备份SQL Server数据库中用户创建的Stored Procedures

    为了避免意外丢失/损坏辛苦创建的Stored Procedures,或者想恢复到以前版本的Stored Procedures,这样提供了一个有效方法,可以自动将指定数据库中的Stored Proced ...

  2. 动态创建Sql Server数据库相关(全)

    CREATE DATABASE 创建一个新数据库及存储该数据库的文件,或从先前创建的数据库的文件中附加数据库. 说明 有关与 DISK INIT 向后兼容性的更多信息,请参见"Microso ...

  3. 【转载】在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

    在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库 SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Mic ...

  4. SQL Server 数据库备份

    SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...

  5. 部分SQL Server数据库备份

    This article explores the partial backup SQL Database strategy in SQL Server and its usages for read ...

  6. 视频教程-C#SQL Server数据库技术-C#

    C#SQL Server数据库技术 二十多年的企业管理软件开发经历,熟知管理软件的整个开发流程,熟练掌握VFP语言,掌握VB语言,了解JAVA.asp.net.CSS.HTML/HTML5等语言,使用 ...

  7. [转贴]ASP.NET下对远程SQL SERVER数据库的备份和恢复的存储过程

    Sql server的帮助文档地址,在IE里面直接输入就行 mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Boo ...

  8. mysql2005备份_创建完整数据库备份 - SQL Server | Microsoft Docs

    完整数据库备份Create a Full Database Backup 09/12/2019 本文内容 适用于:Applies to: SQL ServerSQL Server(所有支持的版本)SQ ...

  9. [导入]VB实现SQL Server数据库备份/恢复

    VB实现SQL Server数据库备份/恢复 文章来源:http://blog.csdn.net/zjcxc/archive/2004/03/21/20099.aspx

  10. 《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式...

    数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不 ...

最新文章

  1. springmvc框架介绍_Java修行第071天 ---SpringMVC(上)
  2. JavaScript创建元素的三种方法特点及对元素的操作
  3. python request下载-Python使用requests下载文件问题
  4. python怎么帮助运营 进行数据管理_注意!这里手把手教你做数据运营管理
  5. Policy-based RL小结(Policy Gradient ; Natural policy gradient ;TRPO;ACKTR;PPO )
  6. boost::fusion::make_fused用法的测试程序
  7. AD 脚本kixtart运用之六(outlook邮件批量生成签名)
  8. 如何从一张图片里取出其中一部分_如何鉴别坑人的锌合金龙头
  9. 泛型:了解泛型与通配符
  10. linux方向键ascii_Linux
  11. 124. PHP 性能分析
  12. 3.1词典搜索的数据结构与通配符查询
  13. vlan端口的三种模式和基本配置
  14. 将文件中的单词及翻译导入数据库
  15. 剑桥口语 — 48 个音标标准口型与细节发音
  16. 基于 Verilog 的经典数字电路设计(7)JK 触发器与 T 触发器
  17. [听听音乐]吴金黛 音乐有意思 歌单
  18. 全屏css,CSS之全屏背景图
  19. Win10 无法加载操作系统,关键系统驱动程序丢失或错误 蓝屏错误代码0xc000007b
  20. kill和killall的区别

热门文章

  1. JavaScript OpenGL接口再设计
  2. Java try语句的嵌套
  3. java axisclient超时_调用webservice接口超时
  4. JZOJ 5414. 【NOIP2017提高A组集训10.22】幸运值
  5. 合作模式歌利亚机器人_智能时代挑战下的机器人教育新方向!
  6. ubuntu14.04安装完ros后常用的其他安装
  7. python args函数_Python函数参数*args和**kwargs
  8. 作研究需要的绣花功夫
  9. [codevs 1789] 最大获利(2006年NOI全国竞赛)
  10. ECCV 2018 《Triplet Loss in Siamese Network for Object Tracking》论文笔记