• SqlServer 远程备份


    CREATE PROC bakup_Folder_Pro
        -- 备份本地文件夹到远程计算机
        -- 包括备份数据库
    AS
        DECLARE    @dbName            VARCHAR(50)        --需备份的数据名称
        DECLARE    @fileTitle        VARCHAR(200)        --  文件标题
        DECLARE    @folder            VARCHAR(200)        --   文件夹名称
        DECLARE @fileName         VARCHAR(200)        --          备份文件名
        DECLARE    @localFolderPath    VARCHAR(200)        --         本地文件夹路径
        DECLARE    @localBckPath        VARCHAR(200)        --          本地备份文件夹路径
        DECLARE    @netPath        VARCHAR(200)        --                       远程文件夹路径
        DECLARE    @netFolderPath        VARCHAR(200)        --          新建的远程文件夹路径
        DECLARE    @netUserName        VARCHAR(200)        --         远程计算机用户名
        DECLARE    @netUserPwd        VARCHAR(200)        --       远程计算机密码
        DECLARE    @netSqlStr        VARCHAR(500)        --      映射字符串
        DECLARE    @copySqlStr        VARCHAR(500)        --   copy到远程计算机字符串
        DECLARE    @delSqlStr        VARCHAR(500)        --   del本地备份文件字符串
        DECLARE    @flag            VARCHAR(50)        --   标记,是否删除本机文件

        SET    @dbName            =    'DB_ESPC'
        SET    @fileTitle        =    REPLACE(REPLACE(REPLACE(CONVERT(CHAR(20),GETDATE(),120),':',''),' ',''),'-','')
        SET    @folder            =    @fileTitle    --  文件夹自动生成
        SET    @fileName        =    @fileTitle    +    '.bak'
        SET    @localFolderPath    =    'E:\YY_SQJZGL'
        SET    @localBckPath        =    @localFolderPath+'\bck\'+@fileName
        SET    @netPath        =    '\\172.19.169.136\sqjzxxglxt'
        SET    @netFolderPath        =    @netPath +'\'+@fileTitle
        SET    @netUserName        =    '172.19.169.136\yy'
        SET    @netUserPwd        =    '119041'
        SET    @netSqlStr        =    'net use ' +     @netPath + ' "' + @netUserPwd + '" /user:' + @netUserName
        SET    @copySqlStr        =    'XCOPY    '  +     @localFolderPath + '    /i/e    ' + @netFolderPath
        SET    @delSqlStr        =    'DEL    '  +    @localBckPath
        SET    @flag            =    'True'

        -- 将数据库备份到本机目录下,WITH INIT 表示覆盖相同文件
        BACKUP    DATABASE    @dbName    TO    DISK=@localBckPath    WITH    INIT   

        -- 映射
        EXEC    master..xp_cmdshell    @netSqlStr

        -- 将本机文件夹copy到远程计算机
        EXEC    master..xp_cmdshell    @copySqlStr

        -- 删除映射
        EXEC master..xp_cmdshell 'net use * /del /y'

        -- 选择是否删除本机文件
        IF(@flag = 'True')
        EXEC    master..xp_cmdshell    @delSqlStr

    GO

  • 相关阅读:
    ref out param 区别
    SQL语句执行顺序以及oracle基本查询优化
    Ext.LoadMask遮罩的效果几种实现方式
    用ajax技术实现无闪烁定时刷新页面
    ExtJs 实现动态列,动态多表头 在这里添加日志标题
    Ajax中文乱码问题解决方法(服务器端用servlet)
    订购国际机票的常用指令
    ETERM航班销售控制指令
    线程wait()和sleep()的区别
    JSt中对象的prototype属性
  • 原文地址:https://www.cnblogs.com/joey0210/p/2020020.html
Copyright © 2020-2023  润新知