经常会有定时备份SQL Server数据库的需要。定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里。
下面就分享一份在网上找了之后,自己再简单整理过的代码,配合 SQL Server 代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次。
复制代码 代码如下:
-- 创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;account是远程电脑的登录名)
exec master..xp_cmdshell 'net use Y: 192.168.0.69sqlbackup "password" /user:192.168.0.69account'
-- 按日期时间做文件名(注意路径中的文件夹,需要先建立好)
declare @filename varchar(200)
select @filename = 'Y:DB' + replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ','-'),':','') + '.bak'
-- 执行备份(DB是要备份的数据库名称)
backup database [DB] to disk = @filename
-- 删除网络映射(Y是盘符,同上)
exec master..xp_cmdshell 'net use Y: /delete'