SQL Server 2016 数据库自动备份之代理作业

[TOCM]

一、前言


通过使用 SQL Server 2016 数据库的 SQL Server 代理作业,达到自动执行数据库备份的目的。这需要安装数据库的 SQL Server 代理,并开启 SQL Server 代理服务,然后新建作业,定期执行 SQL 语句备份数据库。

友情提示:

  • 对于任何数据库而言,保证数据安全是第一位的,所以定期对数据库做备份,是保证数据安全最有效手段之一。
  • 备份数据库操作一般在夜间凌晨进行,因为此时用户都休息了,对数据操作最少,服务器空闲资源比较多。

除了使用数据库的 SQL Server 代理作业做自动备份,还有更简单的办法,那就是用数据库的维护计划做备份。请看这篇文章《SQL Server 2016 数据库自动备份之维护计划

二、开启 SQL Server 代理服务


打开 SQL Server 配置管理器,左边选择 SQL Server 服务,然后右边选择 SQL Server 代理,右键选择启动,如下图:

SQL Server 代理

对象资源管理器

三、新建作业


“作业”右键,选择“新建作业”。如下图:

新建作业

选择“常规”,填写作业“名称”。如下图:

作业常规

选择“步骤”,点击“新建”。如下图:

步骤新建

在“新建作业步骤”里选择“常规”,右边填写“步骤名称”,选择“类型”为“Transact-SQL脚本(T-SQL)”,选择“数据库”,填写“命令”也就是 SQL 语句。如下图:

新建作业步骤

数据库完整备份 SQL 语句:

  1. declare @filename varchar(255)
  2. set @filename = 'D:\Microsoft SQL Server\Backup\BlogDB_' +
  3. convert(varchar(50),getdate(),112) + '_' +
  4. cast(DATEDIFF(SS, '1970-1-1 00:00:00', GETUTCDATE()) as varchar) + '.bak'
  5. BACKUP DATABASE [Blog]
  6. TO DISK = @filename
  7. WITH NOFORMAT, NOINIT,
  8. NAME = N'BlogDB-完整数据库备份',
  9. SKIP, NOREWIND, NOUNLOAD,
  10. STATS = 1, compression

其中用到了 SQL Server 2008 以上版本数据库的新特性,数据库备份压缩,代码是compression,如果你的数据库不支持,去掉后再使用。关于备份压缩可查看这篇文章《SQL Server 数据库备份压缩

其中代码STATS = 1可以去掉,这段代码是 backup 语法的监视选项,用来监视执行进度,每到一个进度显示一条消息。

关于 backup 备份 SQL 数据库,微软官方文档介绍:BACKUP (Transact-SQL)

在“新建作业步骤”里选择“高级”,选择作业执行成功或失败时的操作。如下图:

新建作业步骤

在“新建作业”里选择“计划”并点击“新建”。如下图:

新建作业计划

在“新建作业计划”中按实际需求适当选择即可。如下图:

新建作业计划

“新建作业”的“警报”“通知”“目标”,可设置也可忽略,按实际需求即可。最后点击确定,完成新建作业。如下图:

新建作业

四、测试执行作业


完成新建作业后,不必等待数据库执行作业,可手动开始作业步骤,在作业右键,选择“作业开始步骤”,既执行作业。如下图:

作业开始步骤

作业结果

(完)