码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server数据库备份(异机)

时间:2014-12-12 18:45:30      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   使用   sp   on   数据   

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

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数据库备份(异机)

标签:style   blog   io   ar   color   使用   sp   on   数据   

原文地址:http://www.cnblogs.com/dannyli/p/4160177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!