在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊。 Sql server 的作业正好可以满足这一需求!
Sql server的作业可以按照规定的时间执行指定的sql脚本,下面我以用作业备份Northwind数据为例,介绍如何用sql server 2008 r2创建作业备份数据库。
第一步:创建SQL Server作业
第二步:设置作业执行步骤
备份数据库的sql脚本如下:
--定义变量,把备份数据库的QL脚本赋值给变量
declare @SqlBackupDataBase as nvarchar(1000)
set @SqlBackupDataBase=N'BACKUP DATABASE Northwind TO DISK = ''D:\TestBackupJob\Northwind-'+
CONVERT(varchar(11),GETDATE(),112)+REPLACE(CONVERT(varchar(12),GETDATE(),108),':','')+'.bak'''
--备份文件格式:Northwind-20150531323410.bak
exec sp_executesql @SqlBackupDataBase --调用系统存储过程,执行SQL
注:CONVERT()函数的第三个参数是时间样式ID;用REPLACE()函数替换掉了时间中的冒号(因为Windows中文件名不能包含该字符)
第三步:设置作业执行计划
最后,
手动执行作业,验证是否成功备份数据库,弹出下面错误:
错误很明显:sql server Agent服务没有启动,
启动这个服务:
再次手动执行作业,备份数据库成功:
查看备份数据库的磁盘路径,发现真的是每隔30秒自动备份了一次Northwind数据库,
如下图:
以上就是利用sql server数据库创建作业自动备份数据库,挺实用的。