简单的远程异机备份数据库功能,通过这个存储过程,讲远程其他机器上的数据库备份到本地。其主要原理为:

1.通过XP_CMDSHELL执行Windows命令,将本机的共享目录映射为远程机器的网络驱动器。

2.通过SQL脚本将数据库备份到网络驱动器中。

3.通过XP_CMDSHELL执行命令删除映射的网络驱动器。

使用的时候注意开启XP_CMDSHELL配置(见存储过程注释部分)。

/******************************************************************************************************
** 功能:远程异机备份数据库
** 作者:Danny,Li
** 日期:2013-09-04
** ---------------------------------------------------------------------------------------------------
** eg:EXEC [proc_RemoteBackupDB] 'DataBaseName','\\DannyPc\ShareFolder','domain\danny','123456'
**
*******************************************************************************************************/
CREATE PROCEDURE [dbo].[proc_RemoteBackupDB]
@databaseName varchar(50), -- 需要备份的数据库名称
@shareFolderPath varchar(250), -- 共享目录路径(如:\\DannyPc\ShareFolder)
@shareFolderAccount varchar(50), -- 共享目录读写权限帐户名(如:domain\danny)
@shareFolderPassword varchar(50) -- 共享目录读写权限帐户密码
AS
BEGIN
-- 启用 XP_CMDSHELL 配置
--SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1
--RECONFIGURE
--GO
--SP_CONFIGURE 'XP_CMDSHELL', 1
--RECONFIGURE
--GO DECLARE @sqlStr VARCHAR(1000); -- 映射网络驱动器
SET @sqlStr = 'EXEC MASTER..XP_CMDSHELL ''NET USE L: '+ @shareFolderPath +' "'+ @shareFolderPassword +'" /USER:'+ @shareFolderAccount +''';'; -- 备份数据库
DECLARE @BackupFile VARCHAR(200);
SET @BackupFile = @databaseName + CONVERT(VARCHAR(100), GETDATE(), 12) + '.BAK';
SET @sqlStr = @sqlStr + ' BACKUP DATABASE '+ @databaseName +' TO DISK = ''L:\'+ @BackupFile +''' WITH INIT;'; -- 删除网络驱动器映射
SET @sqlStr = @sqlStr + ' EXEC MASTER..XP_CMDSHELL ''NET USE L: /DELETE'';'; -- 执行SQL语句
PRINT(@sqlStr);
EXEC(@sqlStr);
END

SQL Server数据库备份(异机)的更多相关文章

  1. SQL Server数据库备份(本机)

    基础的SQL Server数据库备份存储过程 /**************************************************************************** ...

  2. SQL Server数据库备份的镜像

    SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GO BACKUP DATABASE [testdatabase] TO DISK = N'C:\testdata ...

  3. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  4. (图解版)SQL Server数据库备份与还原

        本文介绍了SQL Server数据库备份的两种方式.一种是直接拷贝数据库中的文件mdf 和日志文件ldf,另一种是生成脚本语言. 第一种方式:     选中需要备份的数据库,将数据库从运行的数 ...

  5. SQL server数据库备份还原问题备忘(亲测有效)

    问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BA ...

  6. sql server数据库备份单个表的结构和数据生成脚本

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  7. sql server 数据库备份历史记录

    sql server 数据库备份历史记录 SELECT ),SERVERPROPERTY('Servername'))AS Server, bs.database_name, bs.backup_st ...

  8. SQL server 数据库备份至服务器本地磁盘和其他服务器磁盘

    前言 因工作需要将数据库每日备份至服务器本地磁盘和其他服务器磁盘,对网上的例子进行改造,解决了SQL server数据库备份的问题. 一.将指定数据库备份到本地 将数据库affair_stydy全备份 ...

  9. sql server数据库备份单个表的结构和数据生成脚本【转】

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  10. SQL Server数据库备份&还原

    一.备份 1.登录数据库 2.找到要还原的数据库 右键-任务-备份-添加(路径只写一个,刚开始二个总是报错)-确定 二.还原数据库 这个之间报错了二次 1.报错1:备份集中的数据库与现有数据库“XXX ...

随机推荐

  1. wpf 父控件透明子控件不透明

    在wpf开发中遇到子控件会继承父类控件属性的问题, 例如: <StackPanel Orientation="Horizontal" Grid.Row="1&quo ...

  2. [转]MVC自定义数据验证(两个时间的比较)

    本文转自:http://www.cnblogs.com/zhangliangzlee/archive/2012/07/26/2610071.html Model: public class Model ...

  3. MySQL中的保留字

    本文转载自:http://www.cnblogs.com/lawdong/archive/2010/08/08/2357903.html ADD ALL ALTER ANALYZE AND AS AS ...

  4. hdu 2196 树形dp

    思路:先求以1为根时,每个节点到子节点的最大长度.然后再次从1进入进行更新. #include<iostream> #include<cstring> #include< ...

  5. 高效的网络流dinic算法模版

    #include <cstring> #include <algorithm> #include <vector> #define Maxn 120010 #def ...

  6. HttpClient(4.3.5) - HTTP Execution Context

    Originally HTTP has been designed as a stateless, response-request oriented protocol. However, real ...

  7. HTTP - 摘要认证

    基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与 ...

  8. MySQL查询不使用索引汇总

    众所周知,增加索引是提高查询仍然不使用索引,这种情况严重影响性能,这里就简单总结几条如果如果列key均匀分布在1和100之间,下面的查询使用索引就不是很好:select * from table_na ...

  9. 第一篇、jQuery的使用

    1.jquery 的优势 >轻量级 >强大的选择器 >出色的DOM操作封装 >完善的事件和事件对象的兼容机制 >完善的ajax >不污染全局变量($可以随时交出控制 ...

  10. 拿到内存中dom元素的最后样式进行修改obj下的currentStyle方法

    在用dom操作在对页面中的<style></style>里的样式进行操作时,发现时无效的,我觉得是因为页面DOM解析时此标签的样式内容才会被读到内存中,因此JS操作时取不到此标 ...