用作业实现自动备份MSSQL数据库到远程服务器

--此代码实现SQL数据库远程备份,放到作业里面执行可以自动备份数据库、自动删除@keepNDays天前备份。
--此代码将本地所有的用户数据库备份到共享目录“//backupServerIp/ShareName/数据库备份”下。
--并删除天前的备份文件。要备份成功必须能够对共享目录有操作权限!

sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO

--创建映射
execmaster..xp_cmdshell 'net use T: //backupServerIp/ShareName "password" /user:uonun',NO_OUTPUT
GO

declare@keepNDays int,@s nvarchar( max),@del nvarchar( max)
select @keepNDays = 30,@backupSql= '',@delSql= ''

select
  
@backupSql=@backupSql+
        char(13)+ 'DBCC SHRINKDATABASE(N'''+ Name+ ''', 10, TRUNCATEONLY)'+    --收缩数据库
       
char(13)+ 'backup database  '+ quotename( Name)+ '  to disk =''T:/数据库备份/'+ Name+ '_'+ convert( varchar(8), getdate(),112)+ '.bak''  with init',    --备份数据库
   
@delSql=@delSql+
        char(13)+ 'exec master..xp_cmdshell '' del T:/数据库备份/'+ Name+ '_'+ convert( varchar(8), getdate()-@keepNDays,112)+ '.bak'', NO_OUTPUT'   --删除过期备份

frommaster..sysdatabases wheredbid>6 order bydbid asc   --不备份系统数据库(sql 2008),如果是Sql 2000,则为“dbid>6”。

exec(@del)
exec(@s)
GO

--删除映射
execmaster..xp_cmdshell 'net use T: /delete', NO_OUTPUT
GO

sp_configure 'xp_cmdshell',0
GO
RECONFIGURE
GO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值