1.用sqlserver的维护计划
在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个‘备份数据库’任务和一个‘清除维护’任务。
需要注意的点:
1)有备份任务里边选择备份的库尽量选‘所有用户数据库’这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份。
2)选项验证备份集完整性和压缩备份尽量都选上。
3)备份的路径尽量别选磁盘根目录。
2.通过脚本+作业的方式备份数据库(非xp_cmdshell)。如果是多个库的话自己写个游标用动态sql的方式即可实现多库备份,我这里就提供个思路偷懒就不整理了。
复制代码 代码如下:
DECLARE @filename VARCHAR(500)
DECLARE @date DATETIME
DECLARE @OLD_DATE DATETIME
SET @date=GETDATE()
SET @OLD_DATE=GETDATE()-5 –超过5天的备份即将被删除
SET @FILENAME = ‘E:/存放位置/数据库名称-‘+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+’-‘+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+’-‘+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+’.BAK’
BACKUP DATABASE [数据库名称] TO DISK = @filename WITH COMPRESSION
EXECUTE master.dbo.xp_delete_file 0,N’E:/存放位置’,N’bak’,@OLD_DATE,1
DECLARE @date DATETIME
DECLARE @OLD_DATE DATETIME
SET @date=GETDATE()
SET @OLD_DATE=GETDATE()-5 –超过5天的备份即将被删除
SET @FILENAME = ‘E:/存放位置/数据库名称-‘+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+’-‘+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+’-‘+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+’.BAK’
BACKUP DATABASE [数据库名称] TO DISK = @filename WITH COMPRESSION
EXECUTE master.dbo.xp_delete_file 0,N’E:/存放位置’,N’bak’,@OLD_DATE,1
GO
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/234871.html
赞 (0)