zoukankan      html  css  js  c++  java
  • SQL Server数据库备份(异机)

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

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

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

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

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

    /******************************************************************************************************
    **  功能:远程异机备份数据库
    **  作者:Danny,Li
    **  日期:2013-09-04
    **    ---------------------------------------------------------------------------------------------------
    **    eg:EXEC [proc_RemoteBackupDB] 'DataBaseName','\DannyPcShareFolder','domaindanny','123456'
    **    
    *******************************************************************************************************/
    CREATE PROCEDURE [dbo].[proc_RemoteBackupDB]
        @databaseName varchar(50),            -- 需要备份的数据库名称
        @shareFolderPath varchar(250),        -- 共享目录路径(如:\DannyPcShareFolder)
        @shareFolderAccount varchar(50),    -- 共享目录读写权限帐户名(如:domaindanny)
        @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
  • 相关阅读:
    hdu4578 (多标记线段树)
    hdu4757 (可持久化字典树+LCA)
    CF940F Machine Learning (带修改莫队)
    csps模拟测试7576一句话题解
    csps模拟测试74梦境,玩具,飘雪圣域题解
    csps模拟测试7273简单的操作小P的2048小P的单调数列小P的生成树
    csps模拟测试707172部分题解myc
    莫队算法学习
    csps模拟69chess,array,70木板,打扫卫生题解
    csps模拟68d,e,f题解
  • 原文地址:https://www.cnblogs.com/dannyli/p/4160177.html
Copyright © 2011-2022 走看看