利用SQLSERVER代理达到自动备份
自行记录,如有问题欢迎讨论,作者也是个新手。
-
打开SQLSERVER 代理服务
-
新建维护计划向导
如图:
点击【下一步】
输入 名称、说明后,即可点击【下一步】
勾选 【备份数据库(完整)】,点击【下一步】再次点击【下一步】
选完数据库后,点击【下一步】
点击【下一步】
点击【完成】
新建(修改)每天执行时间:
根据自己的需求选择触发时间。
- SQL Server 代理 ------作业
当完成【维护计划向导】时,作业下方会出现维护向导的名称。如图:
接下来,查看【Maintenance Plan1.Subplan_1】的属性
可以设置此计划成功后,是【转入下一步】、还是【退出报告成功的作业】、还是【退出报告失败的作业】。
【转入下一步】:进入下一个计划执行
新建子计划、让第一个计划成功后转入此计划执行。
这里有个自动删除的bak后缀的文件sql(网上有很多可自己查找。)
网上找的,连接记不得了。
自动删除7天前当天的数据库备份文件 |
---|
declare @d Nvarchar(64);set @d =convert(varchar,dateadd(day,-7,getdate()),120); EXECUTE master.dbo.xp_delete_file 0,N’E:\OA数据份’,N’bak’,@d; |
参数说明
xp_delete_file用来删除数据库的备份文件和维护计划文本报告。示例:
EXECUTE master.dbo.xp_delete_file 0,N’E:\TEST’,N’bak’,@d;
第一个参数:表示文件类型,0表示备份文件,1表示文本报告
第二个参数:表示要删除的文件存放路径
第三个参数:表示要删除的文件后缀,不能带点号。比如写成bak,不能写成.bak
第四个参数:是一个日期,文件修改日期(不是创建日期)比这个参数旧的,就删除。(日期相等不删除)
第五个参数为0或1。0表示不查找子目录的文件,1表示在当前路径和下一层路径中查找要删除的文件(最多只遍历一层)。默认值是0,可以省略。
新建计划,设置执行时间。
- 完成