SQL 数据库远程备份 语句

本文介绍了一种使用SQL Server的xp_cmdshell存储过程进行远程备份的方法。通过声明变量定义远程共享目录、用户账户和密码,执行命令连接远程服务器,创建数据库同名目录,并备份指定数据库到远程目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



DECLARE @DATABakPath VARCHAR(200) = N'\\192.168.0.22\DataBak'	--远程共享目录(备份文件夹根目录)
DECLARE @UserName VARCHAR(50) = N'192.168.0.22\dbuser'	--远程目录访问用户账户
DECLARE @UserPwd VARCHAR(50) = N'123456'	--远程目录访问用户密码
DECLARE @RemoteComand VARCHAR(200)
DECLARE @exeText VARCHAR(100)
DECLARE @DATABaseName VARCHAR(200)		--要备份的数据库名称
							
DECLARE @DATAFullName VARCHAR(200)

SET @RemoteComand = 'net use ' + @DATABakPath + ' ' + @UserPwd + ' /user:' +
    @UserName + ' /persistent:yes' 
EXEC MASTER..xp_cmdshell @RemoteComand		--连接远程服务器目录


SET @DATABaseName = 'db001' 
SET @exeText = 'mkdir ' + @DATABakPath + '\' + @DATABaseName --在根目录创建数据库同名目录 
EXEC xp_cmdshell @exeText,
     no_output
SET @DATAFullName= @DATABakPath + '\' + @DATABaseName + '\' + @DATABaseName + '.bak'     
BACKUP DATABASE @DATABaseName TO DISK = @DATAFullName

--继续下一个(如果比较多可以利用循环)

SET @DATABaseName = 'db002' 
SET @exeText = 'mkdir ' + @DATABakPath + '\' + @DATABaseName --在根目录创建数据库同名目录
EXEC xp_cmdshell @exeText,
     no_output
SET @DATAFullName= @DATABakPath + '\' + @DATABaseName + '\' + @DATABaseName + '.bak'     
BACKUP DATABASE @DATABaseName TO DISK = @DATAFullName

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieZhengChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值