怎么让SQL数据库自动定时备份
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么让SQL数据库自动定时备份相关的知识,希望对你有一定的参考价值。
参考技术A 1、依次单击:开始、程序、MicrosoftSQLServer、企业管理器、SQLServer组、管理、数据库维护计划;2、在右侧空白处右键单击,新建维护计划、勾选要备份的数据库、下一步;
3、指定数据库备份计划、调度、单击"更改"、设置备份的时间,备份周期、下一步;
4、每日频率即是每天什么时间开始进行备份;
5、发生频率即是执行的周期;
6、指定备份磁盘目录、修改"使用此目录"的路径作为备份数据库的存放路径、勾选删除早于此时间的文件、我这里选择一周、即是数据库备份文件把一周前的进行删除;
7、给此任务计划填写一个名字:back2单击"完成",就可以在数据库维护计划中看到刚才新建的计划。
注意事项:一定要开启sqlserveragent服务。
MS SQL Server 定时任务实现自动备份
SQL Server Express 版本是没有SQL 代理服务的,从而导致不能使用SQL Server的定时自动备份功能。真心感觉这就是一个坑,虽然Express是学习的版本,但是精简的也太多了。另外一点不能忍受的是居然没有SQL Profile 监控执行语句数据功能,[手动cry]
好了,来说一下如果你使用了Express,如何进行SQL Server 的自动备份吧:
①方法就是:SQL备份数据库语句 + windows 定时任务计划
②目录结构为:
③DBBacUp.bat 备份的脚本
set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% set PathDir="C:数据库备份" set "filename= %PathDir%\\%YYYYmmdd%.log" echo Start BackUp,Time: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% >>%filename% sqlcmd -S . -i C:UsersJuanFeiDesktopDBBackup.sql >>%filename% echo. >>%filename%
DeleteTask.bat 删除7天前的,冗余备份,防止备份数据过多,占用空间
:: 删除7天以前的备份记录 set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% set PathDir="C:数据库备份" set "filename= %PathDir%\\%YYYYmmdd%.log" echo Start Delete,Time: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% >>%filename% forfiles /p %PathDir% /m *.bak /d -7 /c "cmd /c del /f @path" forfiles /p %PathDir% /m *.log /d -7 /c "cmd /c del /f @path" echo. >>%filename%
DBBackup.sql 重点:备份的SQL语句
GO DECLARE @backupTime VARCHAR(20) DECLARE @fileName VARCHAR(1000) SELECT @backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ‘:‘, ‘‘)) SELECT @fileName=‘c:数据库备份PX_Traceability_‘+@backupTime+‘.bak‘ backup database PX_Traceability to disk=@fileName with INIT,COMPRESSION
④使用windows任务计划创建定时任务
参考地址:https://jingyan.baidu.com/article/154b463130041128ca8f41c7.html
网上教程很多,就不赘述了,如果有不懂得,可以评论提问联系我
以上是关于怎么让SQL数据库自动定时备份的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2005怎么自动定时删除3天前的备份文件?