基本信息
源码名称:sqlserver远程备份方法
源码大小:4.37KB
文件格式:.zip
开发语言:SQL
更新时间:2015-09-15
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


--大家可以“新建维护计划”的方式自动定时备份,或者手动执行备份


--查询xp_cmdshell
SELECT  *
FROM    sys.configurations
WHERE   name = 'show advanced options'
        OR name = 'xp_cmdshell'
GO

--启用xp_cmdshell
sp_configure 'show advanced options', 1 
RECONFIGURE
GO
sp_configure 'xp_cmdshell', 1 
RECONFIGURE
GO

----禁用xp_cmdshell
--sp_configure 'show advanced options', 1 
--RECONFIGURE
--GO
--sp_configure 'xp_cmdshell', 0
--RECONFIGURE
--GO


---------------------------------备份开始---------------------------------

--EXEC master..xp_cmdshell 'net use z: \\[IP 或者 计算机名称]\[目录] "[登录密码]" /user:[IP 或者 计算机名称]\[用户名]' 
-- 创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;administrator是远程电脑的登录名)
EXEC master..xp_cmdshell 'net use Y: \\10.44.103.239\BackupTest "password" /user:10.44.103.239\administrator'

-- 执行备份
DECLARE @strPath NVARCHAR(200)
DECLARE @name SYSNAME
DECLARE userDB CURSOR
FOR
    SELECT  name
    FROM    master.dbo.sysdatabases
    WHERE   SID <> 0x01
            --AND name = 'HotelList1001' --写上你要备份的数据库名称,或者全部备份
OPEN userDB
FETCH NEXT FROM userDB INTO @name
WHILE ( @@FETCH_STATUS = 0 )
    BEGIN 
        SET @strPath = CONVERT(NVARCHAR(19), GETDATE(), 120)
        SET @strPath = REPLACE(@strPath, ':', '.')
        SET @strPath = 'Y:\'   @name   @strPath   '.bak'
        BACKUP DATABASE @name TO DISK = @strPath WITH NOINIT, NOUNLOAD, NOSKIP, STATS = 10, NOFORMAT

        FETCH NEXT FROM userDB INTO @name
    END
CLOSE userDB
DEALLOCATE userDB

-- 删除网络映射(Y是盘符,同上)
EXEC master..xp_cmdshell 'net use Y: /delete'
GO

---------------------------------备份结束---------------------------------