SQL Server 2016 数据库自动备份之代理作业
一、前言
通过使用 SQL Server 2016 数据库的 SQL Server 代理作业,达到自动执行数据库备份的目的。这需要安装数据库的 SQL Server 代理,并开启 SQL Server 代理服务,然后新建作业,定期执行 SQL 语句备份数据库。
友情提示:
- 对于任何数据库而言,保证数据安全是第一位的,所以定期对数据库做备份,是保证数据安全最有效手段之一。
- 备份数据库操作一般在夜间凌晨进行,因为此时用户都休息了,对数据操作最少,服务器空闲资源比较多。
除了使用数据库的 SQL Server 代理作业做自动备份,还有更简单的办法,那就是用数据库的维护计划做备份。请看这篇文章《SQL Server 2016 数据库自动备份之维护计划》
二、开启 SQL Server 代理服务
打开 SQL Server 配置管理器,左边选择 SQL Server 服务,然后右边选择 SQL Server 代理,右键选择启动,如下图:
三、新建作业
“作业”右键,选择“新建作业”。如下图:
选择“常规”,填写作业“名称”。如下图:
选择“步骤”,点击“新建”。如下图:
在“新建作业步骤”里选择“常规”,右边填写“步骤名称”,选择“类型”为“Transact-SQL脚本(T-SQL)”,选择“数据库”,填写“命令”也就是 SQL 语句。如下图:
数据库完整备份 SQL 语句:
declare @filename varchar(255)
set @filename = 'D:\Microsoft SQL Server\Backup\BlogDB_' +
convert(varchar(50),getdate(),112) + '_' +
cast(DATEDIFF(SS, '1970-1-1 00:00:00', GETUTCDATE()) as varchar) + '.bak'
BACKUP DATABASE [Blog]
TO DISK = @filename
WITH NOFORMAT, NOINIT,
NAME = N'BlogDB-完整数据库备份',
SKIP, NOREWIND, NOUNLOAD,
STATS = 1, compression
其中用到了 SQL Server 2008 以上版本数据库的新特性,数据库备份压缩,代码是compression
,如果你的数据库不支持,去掉后再使用。关于备份压缩可查看这篇文章《SQL Server 数据库备份压缩》
其中代码STATS = 1
可以去掉,这段代码是 backup 语法的监视选项,用来监视执行进度,每到一个进度显示一条消息。
关于 backup 备份 SQL 数据库,微软官方文档介绍:BACKUP (Transact-SQL)
在“新建作业步骤”里选择“高级”,选择作业执行成功或失败时的操作。如下图:
在“新建作业”里选择“计划”并点击“新建”。如下图:
在“新建作业计划”中按实际需求适当选择即可。如下图:
“新建作业”的“警报”“通知”“目标”,可设置也可忽略,按实际需求即可。最后点击确定,完成新建作业。如下图:
四、测试执行作业
完成新建作业后,不必等待数据库执行作业,可手动开始作业步骤,在作业右键,选择“作业开始步骤”,既执行作业。如下图:
(完)