需求:将A机器的数据库远程备份到另B机器
在B机器新建文件夹并赋予everyone的读写权限
A机器存储过程如下:
create proc [dbo].[usp_backupinfo]
@backupdir varchar(500),@dblist varchar(max)
as
declare @pos int
declare @dbname varchar(100)
set @pos=CHARINDEX(';',@dblist,0);
while (@pos>0)
begin
set @dbname=SUBSTRING(@dblist,0,@pos);
set @dblist=SUBSTRING(@dblist,@pos+1,LEN(@dblist)-@pos)
set @pos=CHARINDEX(';',@dblist,0);
declare @data nvarchar(100)
set @data=@backupdir+@dbname+'_'+convert(varchar(10),getdate(),112)+'.bak'
if exists(select 1 from sys.databases where name=@dbname)
begin
BACKUP DATABASE @dbname TO DISK = @data
end
end
A机器调用存储过程如下:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE
exec master..xp_cmdshell 'net use \\B机器IP\B机器共享文件夹 "B机器系统密码" /user:B机器IP\B机器用户名 '
exec usp_backupinfo '\\B机器IP\B机器共享文件夹','数据库;'
--多个数据库用分号(;)来标识
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE