动态备份SQL-SERVER数据库——SQLDMO
转载: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相关推荐
- 自动备份SQL Server数据库中用户创建的Stored Procedures
为了避免意外丢失/损坏辛苦创建的Stored Procedures,或者想恢复到以前版本的Stored Procedures,这样提供了一个有效方法,可以自动将指定数据库中的Stored Proced ...
- 动态创建Sql Server数据库相关(全)
CREATE DATABASE 创建一个新数据库及存储该数据库的文件,或从先前创建的数据库的文件中附加数据库. 说明 有关与 DISK INIT 向后兼容性的更多信息,请参见"Microso ...
- 【转载】在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库
在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库 SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Mic ...
- SQL Server 数据库备份
SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...
- 部分SQL Server数据库备份
This article explores the partial backup SQL Database strategy in SQL Server and its usages for read ...
- 视频教程-C#SQL Server数据库技术-C#
C#SQL Server数据库技术 二十多年的企业管理软件开发经历,熟知管理软件的整个开发流程,熟练掌握VFP语言,掌握VB语言,了解JAVA.asp.net.CSS.HTML/HTML5等语言,使用 ...
- [转贴]ASP.NET下对远程SQL SERVER数据库的备份和恢复的存储过程
Sql server的帮助文档地址,在IE里面直接输入就行 mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Boo ...
- mysql2005备份_创建完整数据库备份 - SQL Server | Microsoft Docs
完整数据库备份Create a Full Database Backup 09/12/2019 本文内容 适用于:Applies to: SQL ServerSQL Server(所有支持的版本)SQ ...
- [导入]VB实现SQL Server数据库备份/恢复
VB实现SQL Server数据库备份/恢复 文章来源:http://blog.csdn.net/zjcxc/archive/2004/03/21/20099.aspx
- 《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式...
数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不 ...
最新文章
- springmvc框架介绍_Java修行第071天 ---SpringMVC(上)
- JavaScript创建元素的三种方法特点及对元素的操作
- python request下载-Python使用requests下载文件问题
- python怎么帮助运营 进行数据管理_注意!这里手把手教你做数据运营管理
- Policy-based RL小结(Policy Gradient ; Natural policy gradient ;TRPO;ACKTR;PPO )
- boost::fusion::make_fused用法的测试程序
- AD 脚本kixtart运用之六(outlook邮件批量生成签名)
- 如何从一张图片里取出其中一部分_如何鉴别坑人的锌合金龙头
- 泛型:了解泛型与通配符
- linux方向键ascii_Linux
- 124. PHP 性能分析
- 3.1词典搜索的数据结构与通配符查询
- vlan端口的三种模式和基本配置
- 将文件中的单词及翻译导入数据库
- 剑桥口语 — 48 个音标标准口型与细节发音
- 基于 Verilog 的经典数字电路设计(7)JK 触发器与 T 触发器
- [听听音乐]吴金黛 音乐有意思 歌单
- 全屏css,CSS之全屏背景图
- Win10 无法加载操作系统,关键系统驱动程序丢失或错误 蓝屏错误代码0xc000007b
- kill和killall的区别
热门文章
- JavaScript OpenGL接口再设计
- Java try语句的嵌套
- java axisclient超时_调用webservice接口超时
- JZOJ 5414. 【NOIP2017提高A组集训10.22】幸运值
- 合作模式歌利亚机器人_智能时代挑战下的机器人教育新方向!
- ubuntu14.04安装完ros后常用的其他安装
- python args函数_Python函数参数*args和**kwargs
- 作研究需要的绣花功夫
- [codevs 1789] 最大获利(2006年NOI全国竞赛)
- ECCV 2018 《Triplet Loss in Siamese Network for Object Tracking》论文笔记